Sobes.tech
Middle

Mik a teljesítményteszt fő szempontjai, és milyen eszközöket használt a megvalósításhoz?

sobes.tech MI

Válasz az MI-től

Teljesítménytesztelés magában foglalja:

  • Terheléses teszt (Load Testing): A rendszer viselkedésének értékelése a várható terhelés alatt. Meghatározza a felhasználók vagy tranzakciók maximális számát, amit a rendszer el tud viselni, mielőtt a teljesítmény romlani kezd.
  • Stressz teszt (Stress Testing): A rendszer tesztelése extrém terheléseken, amelyek meghaladják a várakozásokat, hogy meghatározzuk a hibapontot és a rendszer viselkedését ilyen körülmények között. Cél – biztosítani, hogy a rendszer helyreáll a túlterhelés után.
  • Kitartási teszt (Endurance/Soak Testing): A rendszer hosszú időn keresztül történő tesztelése jelentős terhelés alatt, hogy azonosítsuk a memória szivárgásokat vagy más problémákat, amelyek idővel jelentkeznek.
  • Csúcs terhelés teszt (Spike Testing): A rendszerre hirtelen terhelés növelése, hogy ellenőrizzük a rendszer reakcióját a hirtelen aktivitás növekedésekre.
  • Adatmennyiség teszt (Volume Testing): Nagy adatmennyiség tesztelése az adatbázisban vagy fájlrendszerben, hogy értékeljük a rendszer teljesítményét nagy mennyiségű információval.
  • Skálázhatósági teszt (Scalability Testing): A rendszer képességének meghatározása a terhelés növelésére hardver erőforrások hozzáadásával vagy szoftver optimalizálásával.

A teljesítmény teszteléséhez az alábbi eszközöket használták:

  • Apache JMeter: Nyílt forráskódú, többfunkciós Java eszköz, amely támogatja a különböző protokollokat (HTTP, HTTPS, FTP, JDBC stb.). Lehetővé teszi összetett tesztesetek létrehozását, paraméterezést, korellációt, naplózást és részletes jelentések generálását.
    // HTTP kérés példája JMeter-ben (JMX fájl)
    <HTTPSamplerProxy guiclass="HttpTestSampleGui"
                       testclass="HTTPSamplerProxy"
                       testname="Sample"
                       enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain">example.com</stringProp>
      <stringProp name="HTTPSampler.port">80</stringProp>
      <stringProp name="HTTPSampler.protocol">http</stringProp>
      <stringProp name="HTTPSampler.path">/api/users</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
    </HTTPSamplerProxy>
    
  • LoadRunner (Micro Focus): Kereskedelmi eszköz, amely ismert a protokollok támogatásában és az eredmények elemzésében nyújtott széleskörű lehetőségeiről. Gyakran használják nagyvállalati projektekben.
  • Gatling: Modern nyílt forráskódú eszköz Scala nyelven. Ismert a magas teljesítményéről és a tesztszkriptek kifejező nyelvéről (DSL).
    // Gatling szkript példája (Simulation.scala)
    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    import scala.concurrent.duration._
    
    class BasicSimulation extends Simulation {
    
      val httpProtocol = http
        .baseUrl("https://example.com")
        .acceptHeader("application/json")
    
      val scn = scenario("Felhasználók")
        .exec(http("Felhasználók lekérése").get("/api/users"))
    
      setUp(scn.inject(rampUsers(100) during (5.minutes))).protocols(httpProtocol)
    }