Middle
Performans testlerinin temel yönleri nelerdir ve uygulama için hangi araçları kullandınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Performans testi şunları içerir:
- Yük Testi (Load Testing): Sistemin beklenen yük altında davranışının değerlendirilmesi. Sistem, performansın bozulmaya başlamasından önce dayanabileceği maksimum kullanıcı veya işlem sayısını belirler.
- Stres Testi (Stress Testing): Sistemi, beklenenden fazla aşırı yük altında test etmek, arıza noktasını ve bu koşullardaki davranışını belirlemek. Amaç, sistemin aşırı yüklenmeden sonra toparlanıp toparlanmadığını doğrulamaktır.
- Dayanıklılık/Soak Testi (Endurance/Soak Testing): Sistemi uzun süre boyunca yüksek yük altında test ederek, bellek sızıntıları veya zamanla ortaya çıkan diğer sorunları tespit etmek.
- Ani Yük Artış Testi (Spike Testing): Sistemde ani yük artışları yaparak, sistemin ani kullanıcı aktivitesi artışlarına tepkisini gözlemlemek.
- Hacim Testi (Volume Testing): Büyük veri hacmiyle veritabanı veya dosya sistemini test ederek, sistemin büyük miktarda bilgiyle nasıl başa çıktığını değerlendirmek.
- Ölçeklenebilirlik Testi (Scalability Testing): Sistemin, donanım kaynakları ekleyerek veya yazılımı optimize ederek yük artışlarına ne kadar dayanabildiğini belirlemek.
Performans testi gerçekleştirmek için kullanılan araçlar şunlardır:
- Apache JMeter: Çeşitli protokolleri (HTTP, HTTPS, FTP, JDBC vb.) destekleyen açık kaynaklı Java aracı. Parametrizasyon, korelasyon, kayıt ve detaylı raporlar oluşturmayı sağlar.
// JMeter'da HTTP isteği örneği (JMX dosyası) <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Örnek" 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): Kurumsal projelerde sıkça kullanılan, protokol ve sonuç analizi konusunda geniş özelliklere sahip ticari araç.
- Gatling: Scala tabanlı modern açık kaynaklı araç. Performansı ve test senaryosu dili (DSL) ile tanınır.
// Gatling senaryosu örneği (Simulation.scala) import io.gatling.core.Predef._ import io.gatling.http.Predef._ class BasicSimulation extends Simulation { val httpProtocol = http .baseUrl("https://example.com") .inferHtmlResources() .proxy(Proxy("localhost", 8888).httpsPort(443)) val scn = scenario("Kullanıcılar") .exec(http("Kullanıcıları al").get("/api/users")) setUp(scn.inject(rampUsers(100) during (5 minutes))).protocols(httpProtocol) }