Sayt 1000 ta foydalanuvchi kirganda ham ishlashi kerak. JMeter bilan qanday tekshiriladi? Metrikalar nima ma'no anglatadi?
Siz testlarda hammasi yaxshi deb bildingiz. Lekin Black Friday kuni 10,000 odam saytga kirdi va sayt to'xtab qoldi. Kim aybdor?
Functional testing โ sayt to'g'ri ishlayaptimi deb tekshiradi. Performance testing esa โ sayt qanchalik tez va qancha yuklamaga chidaydi deb tekshiradi.
Performance muammolari release dan oldin topilishi kerak. Release dan keyin topilsa โ biznes zarar ko'radi, mijozlar ketadi. Bu โ QA ning muhim vazifasi.
4 ta asosiy tur โ har biri turli savolga javob beradi.
Oddiy kutilayotgan yuklamada ishlash. "500 ta foydalanuvchi kirganda sayt ishlayaptimi?"
Chegarani topish. "Qachon sayt buziladi? 1000? 5000? 10000 foydalanuvchi?"
To'satdan ko'p foydalanuvchi. "Aksiya e'loni bo'ldi โ 1 daqiqada 5000 kishi kirdi"
Uzoq vaqt โ 8-24 soat. "Tun bo'yi ishlasa, memory leak bo'ladimi?"
Performance test natijalarini o'qish uchun 4 ta metrikani bilish kifoya.
p95 = 1.8 sek degani: 100 ta so'rovdan 95 tasi 1.8 sekunddan tez javob berdi. Faqat 5 tasi sekinroq.
p99 = 3.2 sek degani: 99 tasi 3.2 sekunddan tez. Faqat 1 tasi sekinroq.
O'rtacha vaqt aldaydi โ 1 ta juda sekin so'rov o'rtachani ko'tarmaydi. p95/p99 haqiqiy holatni ko'rsatadi.
Response Time p95 < 2 sek ยท Error Rate < 1% ยท Throughput > 100 req/sec ยท Availability > 99.9%
JMeter โ performance testing uchun eng mashhur bepul asbob. Apache Foundation tomonidan yaratilgan. 1998 yildan buyon.
Apache JMeter โ Java'da yozilgan, bepul, ochiq kodli performance testing asbob. GUI va CLI rejimida ishlaydi.
Oddiy qilib: JMeter โ minglab virtual foydalanuvchilarni yaratib, serverga so'rov yuboradigan dastur. Server qanchalik chidashini tekshiradi.
100 ta virtual foydalanuvchi ยท 30 sekundda asta-sekin qo'shiladi ยท 60 sek davomida ishlaydi
jmeter.apache.org โ Binary ZIP yuklab, Java kerak (JDK 8+). Mac'da: brew install jmeter
JMeter'ni oching โ File โ New. Test Plan nomini "TestShop Load Test" qiling.
Test Plan ustiga o'ng klik โ Add โ Threads โ Thread Group. Number of Threads: 100, Ramp-Up: 30, Loop Count: 5.
Thread Group ustiga o'ng klik โ Add โ Sampler โ HTTP Request. Server: testshop.uz, Path: /api/products, Method: GET.
Thread Group โ Add โ Listener โ Summary Report va View Results Tree. Natijalar shu yerda ko'rinadi.
โถ Start tugmasi โ JMeter 100 ta virtual foydalanuvchi bilan so'rov yuborishni boshlaydi. Summary Report'da natijalar ko'rinadi.
| Label | #Samples | Avg (ms) | Min | Max | Error% | Throughput |
|---|---|---|---|---|---|---|
| GET /products | 500 | 342 | 120 | 1840 | 0.20% | 98.5/sec |
| POST /login | 500 | 1240 | 480 | 4200 | 0.60% | 42.3/sec |
| GET /checkout | 500 | 3820 | 920 | 9800 | 4.80% | 18.1/sec |
Tahlil: GET /products โ yaxshi (342ms, 0.2% xato). POST /login โ ๏ธ biroz sekin (1240ms). GET /checkout โ muammo (3820ms, 4.8% xato โ optimizatsiya kerak!)
Slayderlarni o'zgartiring va natijani ko'ring:
2 hafta qoldi Black Friday'ga. Uzum Tech Lead Kamol aka sizga keldi: "O'tgan yili Black Friday kuni saytimiz 2 soat ishlamadi. Bu yil siz QA sifatida performance testini o'tkazing. Kutilgan yuklama: 5000 ta bir vaqtdagi foydalanuvchi."
Sizdagi asbob: JMeter. Qabul qilish mezonlari: p95 < 2 sek, Error Rate < 1%.
Siz nima qilasiz?
3 ta qadam โ real performance test o'tkazing.
Java kerak (JDK 11+). Windows, Mac, Linux uchun. GUI va CLI rejimida.
๐ JMeter Yuklab olishreqres.in/api/users) โ Summary Report. Start tugmasini bosing!JMeter .jmx fayli + Screenshot (Summary Report) + Tahlil hujjati (Word/PDF) โ bu Junior'larning 99%'da yo'q! Intervyu'da: "Men JMeter bilan load test o'tkazganman, natijalarni tahlil qila olaman" โ ajralib chiqasiz.
๐ก Har savol ustiga bosing โ professional javobni ko'rasiz.
Javob: "Performance testing โ tizimning tezligi, barqarorligi va yuklamaga chidamliligini tekshirish."
Nima uchun kerak:
Pro javob: "Black Friday, yangi yil aksiyasi kabi yuqori yuklamalarda sayt buzilmasligi uchun oldindan test qilinadi."
Javob: "Thread Group โ JMeter'da virtual foydalanuvchilar guruhi. Har thread โ bitta foydalanuvchi."
Asosiy sozlamalar:
Misol: 100 thread, 30 sek ramp-up = har 0.3 sekundda 1 foydalanuvchi qo'shiladi. Real hayotga yaqin!
Javob: "p95 โ percentile. p95 = 1.8 sek degani: 100 ta so'rovdan 95 tasi 1.8 sekunddan tez bajarildi."
Nima uchun o'rtacha yetarli emas:
Pro javob: "Men doim p95 va p99 ko'raman. O'rtacha aldaydi."
Javob: "Summary Report'dan 4 ta narsaga e'tibor beraman:"
Qabul qilish mezonlari bilan solishtiramiz: "p95 < 2 sek va Error Rate < 1% โ test o'tdi deb hisoblanadi."
Bottleneck โ tizimning eng sekin qismi. Hamma yuklama shu yerda to'planadi.
Topish usullari:
/checkout 3820ms, /products 342ms โ checkout bottleneckDasturchi bilan: "Bottleneck topildi โ dasturchiga report โ optimizatsiya โ qayta test."
Pro javob:
"Men JMeter bilan load test o'tkazganman. TestShop API'iga 100 ta virtual foydalanuvchi bilan test qildim:"
Bu โ Junior darajasida zo'r tajriba. Amalda bajarganman.
Bu darsdan eslab qolishingiz kerak bo'lgan eng muhim g'oyalar