0%
22-dars

Performance Testing

Sayt 1000 ta foydalanuvchi kirganda ham ishlashi kerak. JMeter bilan qanday tekshiriladi? Metrikalar nima ma'no anglatadi?

75 daqiqa
JMeter asbob
5 ta interaktiv

Nima uchun Performance Testing?

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.

๐Ÿ’ก Ko'prik misoli
Functional vs Performance
Functional testing: ko'prik to'g'ri qurilganmi? (1 mashina o'tadi). Performance testing: ko'prik 1000 ta mashinani ko'tara oladimi? Ikkalasi ham kerak!

Real misollar โ€” Performance muammolari

QA uchun ahamiyati

Performance muammolari release dan oldin topilishi kerak. Release dan keyin topilsa โ€” biznes zarar ko'radi, mijozlar ketadi. Bu โ€” QA ning muhim vazifasi.

Performance Testing turlari

4 ta asosiy tur โ€” har biri turli savolga javob beradi.

๐Ÿ“ˆ

Load Testing

Oddiy kutilayotgan yuklamada ishlash. "500 ta foydalanuvchi kirganda sayt ishlayaptimi?"

๐Ÿ’ฅ

Stress Testing

Chegarani topish. "Qachon sayt buziladi? 1000? 5000? 10000 foydalanuvchi?"

โšก

Spike Testing

To'satdan ko'p foydalanuvchi. "Aksiya e'loni bo'ldi โ€” 1 daqiqada 5000 kishi kirdi"

๐ŸŒŠ

Soak Testing

Uzoq vaqt โ€” 8-24 soat. "Tun bo'yi ishlasa, memory leak bo'ladimi?"

TestShop uchun misol
  • Load: Kuniga 500 ta xaridor โ†’ kutilgan yuklama, normal ishlashi kerak
  • Stress: 5000 tagacha oshirib, sayt qachon javob bermay qolishini topamiz
  • Spike: "Chegirma 1 soat" e'loni โ€” to'satdan 2000 kishi kiradi
  • Soak: 24 soat 200 foydalanuvchi โ€” memory yoki server muammolari bormi?

Asosiy metrikalar

Performance test natijalarini o'qish uchun 4 ta metrikani bilish kifoya.

Response Time
2s
So'rovdan javobgacha vaqt. 2 sek yaxshi, 5 sek yomon, 10+ sek โ€” foydalanuvchi ketadi.
Throughput
120
Sekundiga bajarilgan so'rovlar soni (req/sec). Ko'p = yaxshi.
Error Rate
1%
Xato qaytargan so'rovlar foizi. 1% dan kam โ€” yaxshi. 5%+ โ€” muammo.
Concurrent Users
500
Bir vaqtdagi foydalanuvchilar. Sayt qancha odamga bir vaqtda xizmat qilishi kerak?

p95 va p99 โ€” nima bu?

Percentile tushunchasi

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.

Qabul qilish mezonlari (typik)

Response Time p95 < 2 sek ยท Error Rate < 1% ยท Throughput > 100 req/sec ยท Availability > 99.9%

๐ŸŽฏ Bog'lang

Metrika va ta'rifini bog'lang

Metrika

๐Ÿ“Š Response Time
โšก Throughput
โŒ Error Rate
๐Ÿ‘ฅ Concurrent Users
๐Ÿ“ˆ p95

Ta'rif

100 so'rovdan 95 tasi shu vaqtdan tez
So'rovdan javobgacha ketgan vaqt
Bir vaqtda saytda ishlatayotganlar
Xato qaytargan so'rovlar foizi
Sekundiga bajarilgan so'rovlar soni
0 / 5 juft

Apache JMeter

JMeter โ€” performance testing uchun eng mashhur bepul asbob. Apache Foundation tomonidan yaratilgan. 1998 yildan buyon.

JMeter nima?

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.

JMeter asosiy tushunchalari

JMeter interfeysi (mock)

File Edit Run Options Help
Threads: 100 ยท Duration: 60s
๐Ÿ“‹ Test Plan
๐Ÿ‘ฅ Thread Group
๐ŸŒ HTTP Request
โฑ Timer
๐Ÿ“Š Summary Report
๐Ÿ“ˆ Graph Results
Thread Group โ€” Sozlamalar
Number of Threads:
Ramp-Up Period:
Loop Count:
Duration (sec):

100 ta virtual foydalanuvchi ยท 30 sekundda asta-sekin qo'shiladi ยท 60 sek davomida ishlaydi

JMeter'da test yaratish โ€” 6 qadam

1

JMeter'ni yuklab olish

jmeter.apache.org โ€” Binary ZIP yuklab, Java kerak (JDK 8+). Mac'da: brew install jmeter

2

Test Plan yaratish

JMeter'ni oching โ†’ File โ†’ New. Test Plan nomini "TestShop Load Test" qiling.

3

Thread Group qo'shish

Test Plan ustiga o'ng klik โ†’ Add โ†’ Threads โ†’ Thread Group. Number of Threads: 100, Ramp-Up: 30, Loop Count: 5.

4

HTTP Request qo'shish

Thread Group ustiga o'ng klik โ†’ Add โ†’ Sampler โ†’ HTTP Request. Server: testshop.uz, Path: /api/products, Method: GET.

5

Listener (natija ko'rish) qo'shish

Thread Group โ†’ Add โ†’ Listener โ†’ Summary Report va View Results Tree. Natijalar shu yerda ko'rinadi.

6

Testni ishga tushirish

โ–ถ Start tugmasi โ†’ JMeter 100 ta virtual foydalanuvchi bilan so'rov yuborishni boshlaydi. Summary Report'da natijalar ko'rinadi.

Summary Report natijasini o'qish

JMeter Summary Report misoli
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!)

๐ŸŽฎ Load Test Simulator

Virtual test โ€” foydalanuvchi soni oshirsangiz nima bo'ladi?

Slayderlarni o'zgartiring va natijani ko'ring:

100 ta foydalanuvchi
70% server kuchi
๐Ÿ“Š JMeter Summary Report โ€” Natija
โ€”
Avg Response (ms)
โ€”
Error Rate %
โ€”
Throughput /sec
Response Time trend (so'rov davomida)
๐ŸŽฌ Haqiqiy stsenariy
Uzum Black Friday testiga tayyorgarlik

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?

Eng to'g'ri yondashuv qaysi?
โšก Tezkor tekshiruv
JMeter Summary Report'da: Avg = 450ms, Error% = 5.2%. Bu natija haqida nima deyasiz?

JMeter bilan birinchi test

3 ta qadam โ€” real performance test o'tkazing.

โš—๏ธ

Apache JMeter Bepul

Java kerak (JDK 11+). Windows, Mac, Linux uchun. GUI va CLI rejimida.

๐Ÿš€ JMeter Yuklab olish
1
JMeter o'rnatib, birinchi test yarating
Test Plan โ†’ Thread Group (50 user) โ†’ HTTP Request (reqres.in/api/users) โ†’ Summary Report. Start tugmasini bosing!
2
Natijalarni tahlil qiling
Summary Report'dan: Avg, Min, Max, Error% ko'ring. p95 qancha? Error Rate 1% dan pastmi? Natijani hujjatlashtiring.
3
Load ni oshirib, farqni ko'ring
50 โ†’ 100 โ†’ 200 โ†’ 500 thread bilan qayta test. Qaysi bosqichda Error Rate oshadi? Response Time yomonlasha boshlaydi? Jadval qiling.
๐Ÿ’ก Portfolio uchun

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.

Intervyu savollari

๐Ÿ’ก Har savol ustiga bosing โ€” professional javobni ko'rasiz.

Q1Performance testing nima va nima uchun kerak?+

Javob: "Performance testing โ€” tizimning tezligi, barqarorligi va yuklamaga chidamliligini tekshirish."

Nima uchun kerak:

  • Functional test "ishlayaptimi?" deydi. Performance "qanchalik tez va qancha yuklamada?" deydi
  • Release'dan oldin bottleneck'larni topish
  • Server kapasitesini bilish (qancha foydalanuvchiga xizmat qila oladi?)

Pro javob: "Black Friday, yangi yil aksiyasi kabi yuqori yuklamalarda sayt buzilmasligi uchun oldindan test qilinadi."

Q2Load va Stress testing farqi?+
  • Load Testing โ€” kutilgan (normal) yuklamada ishlash. "500 ta odimiy foydalanuvchi saytga kirganda hammasi yaxshimi?"
  • Stress Testing โ€” chegarani topish. Yuklamani oshirib, tizim qachon "sindirini" aniqlaymiz
  • Spike Testing โ€” to'satdan ko'p foydalanuvchi. "1 daqiqada 10x ko'p so'rov kelsa nima bo'ladi?"
  • Soak Testing โ€” uzoq vaqt davomida. "24 soat ishlasa memory leak bo'ladimi?"
Q3JMeter'da Thread Group nima?+

Javob: "Thread Group โ€” JMeter'da virtual foydalanuvchilar guruhi. Har thread โ€” bitta foydalanuvchi."

Asosiy sozlamalar:

  • Number of Threads โ€” nechta virtual foydalanuvchi
  • Ramp-Up Period โ€” foydalanuvchilar necha sekundda qo'shilsin (asta-sekin yoki birdaniga)
  • Loop Count โ€” har foydalanuvchi necha marta takrorlaydi

Misol: 100 thread, 30 sek ramp-up = har 0.3 sekundda 1 foydalanuvchi qo'shiladi. Real hayotga yaqin!

Q4p95, p99 nima degani?+

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:

  • O'rtacha (Avg) 300ms โ€” yaxshi ko'rinadi
  • Lekin 5 ta so'rov 10 sekunddะฐะฝ ko'p โ€” foydalanuvchi ketadi
  • p95/p99 bu 5%/1% "yomon" holatni ko'rsatadi

Pro javob: "Men doim p95 va p99 ko'raman. O'rtacha aldaydi."

Q5JMeter natijalarini qanday tahlil qilasiz?+

Javob: "Summary Report'dan 4 ta narsaga e'tibor beraman:"

  • Avg (ms) โ€” o'rtacha response time. < 2000ms yaxshi
  • Error% โ€” xato foizi. < 1% yaxshi, 5%+ โ€” muammo
  • Throughput โ€” sekundiga so'rovlar. Ko'p = server kuchli
  • Max โ€” eng sekin so'rov. Juda yuqori bo'lsa โ€” timeout muammosi

Qabul qilish mezonlari bilan solishtiramiz: "p95 < 2 sek va Error Rate < 1% โ€” test o'tdi deb hisoblanadi."

Q6Bottleneck nima va qanday topasiz?+

Bottleneck โ€” tizimning eng sekin qismi. Hamma yuklama shu yerda to'planadi.

Topish usullari:

  • JMeter'da qaysi endpoint eng sekin โ€” /checkout 3820ms, /products 342ms โ†’ checkout bottleneck
  • Server monitoring (CPU, RAM, disk I/O) โ€” qaysi resurั 100% ga yetadi?
  • Database query'lar โ€” sekin query'lar response time oshiradi

Dasturchi bilan: "Bottleneck topildi โ†’ dasturchiga report โ†’ optimizatsiya โ†’ qayta test."

Q7Performance testing tajribangiz bormi?+

Pro javob:

"Men JMeter bilan load test o'tkazganman. TestShop API'iga 100 ta virtual foydalanuvchi bilan test qildim:"

  • Asbob: Apache JMeter
  • Test turi: Load Test โ€” 100 foydalanuvchi, 30 sek ramp-up
  • Target: GET /products, POST /login endpointlari
  • Natija: /products โ€” 342ms โœ…, /login โ€” 1240ms โš ๏ธ
  • Xulosa: Login sekin, optimizatsiya tavsiyasini dasturchiga yubordim

Bu โ€” Junior darajasida zo'r tajriba. Amalda bajarganman.

3 ta asosiy fikr

Bu darsdan eslab qolishingiz kerak bo'lgan eng muhim g'oyalar

01
4 tur ร— 4 metrika
Load, Stress, Spike, Soak. Response Time, Throughput, Error Rate, Concurrent Users. Bularni bilish โ€” asosi.
02
JMeter โ€” 6 qadam
Test Plan โ†’ Thread Group โ†’ HTTP Request โ†’ Listener โ†’ Start โ†’ Tahlil. Shuncha. Har qadam tushunarli.
03
Error Rate 1% chegarasi
Avg fast bo'lsa ham, Error% 1%+ bo'lsa โ€” muammo. p95 va Error Rate โ€” asosiy ikki metrika.
๐Ÿ† Darsni muvaffaqiyatli tugatdingiz!