Middle
İş performans testlərinin əsas aspektləri nələrdir və onun həyata keçirilməsi üçün hansı alətləri istifadə etdiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Performans testi aşağıdakıları əhatə edir:
- Yük testi (Load Testing): Sistemin gözlənilən yüklənmə zamanı davranışını qiymətləndirmək. Sistemin dayanıqlığını itirmədən əvvəl istifadəçi və ya tranzaksiya sayının ən yüksək həddini müəyyən edir.
- Stres testi (Stress Testing): Sistemi gözləniləndən çox yüklə sınaqdan keçirmək, qəza nöqtəsini və belə şəraitdə sistemin davranışını müəyyən etmək. Məqsəd – sistemin yüklənmədən sonra bərpa olunmasını təmin etmək.
- Əzm testi (Endurance/Soak Testing): Sistemi uzun müddət yüksək yüklə sınaqdan keçirmək, yaddaş sızması və ya zamanla ortaya çıxan digər problemləri aşkar etmək.
- Ani yüklənmə testi (Spike Testing): Sistəmə ani yüklənmənin artırılması, istifadəçi fəaliyyətində ani artışlara sistemin reaksiyasını yoxlamaq.
- Həcmi testi (Volume Testing): Verilənlər bazası və ya fayl sistemində böyük məlumat həcmi ilə sınaq, sistemin böyük məlumat həcmi ilə işləmək qabiliyyətini qiymətləndirmək.
- Ölçülənmə qabiliyyəti testi (Scalability Testing): Sistemin yüklənmənin artmasına cavab verə bilmə qabiliyyətini, hardware resurslarının əlavə olunması və ya proqram təminatının optimizasiyası ilə müəyyən etmək.
Performans testini həyata keçirmək üçün aşağıdakı alətlər istifadə olunub:
- Apache JMeter: Açıq mənbəli çoxfunksiyalı Java aləti, müxtəlif protokolları dəstəkləyir (HTTP, HTTPS, FTP, JDBC və s.). Çətin ssenarilərin yaradılmasına imkan verir, parametrizasiya, korelyasiya, qeydiyyat və ətraflı hesabatların yaradılmasını əhatə edir.
// JMeter-də HTTP sorğusunun nümunəsi (JMX faylı) <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): Ticarət aləti, protokollar və nəticələrin analizi üçün geniş imkanlara malikdir. Böyük korporativ layihələrdə tez-tez istifadə olunur.
- Gatling: Müasir açıq mənbəli alət, Scala əsasında. Yüksək performans və ssenarilərin yaradılması üçün ifadəli dil (DSL) ilə tanınır.
// Gatling ssenarisinin nümunəsi (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("İstifadəçilər") .exec(http("İstifadəçiləri əldə et").get("/api/users")) setUp(scn.inject(rampUsers(100) during (5.minutes))).protocols(httpProtocol) }