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) }