Apache JMeter Thread Group nima va qanday ishlatiladi?
Ushbu maqolada Thread Group haqida, uning elementlari va qanday ishlatilishi haqida to‘liq ma’lumot beriladi.

Apache JMeter — bu turli xil dasturiy ta'minot va xizmatlarning ishlash samaradorligini test qilish uchun ishlatiladigan ochiq manbali vositadir. JMeter’dagi testning asosi Thread Group (Ip guruhi) hisoblanadi. Ushbu maqolada Thread Group haqida, uning elementlari va qanday ishlatilishi haqida to‘liq ma’lumot beriladi.
Thread Group nima?

Thread Group — bu siz test qilmoqchi bo‘lgan foydalanuvchilar sonini (virtual foydalanuvchilar) va ular qanday ishlashini belgilaydigan komponentdir. Har bir Thread — bu bir virtual foydalanuvchini ifodalaydi.
Thread Group test rejasida eng muhim elementlardan biridir, chunki u butun testning “ko‘lamini” belgilaydi.
Thread Group elementlari
Thread Group quyidagi asosiy parametrlar orqali sozlanadi:
1. Number of Threads (users) — Foydalanuvchilar soni
Bu parametr virtual foydalanuvchilar (thread) sonini bildiradi. Masalan, 10 deb belgilansa, test davomida 10 ta foydalanuvchi bir vaqtda ishga tushadi.
2. Ramp-up period (seconds) — Ishga tushirish davri
Bu parametr barcha foydalanuvchilarni ishga tushirish uchun sarflanadigan umumiy vaqtni bildiradi. Masalan, agar siz 10 foydalanuvchini 20 soniyada ishga tushirsangiz, har bir foydalanuvchi taxminan 2 sekundda bir qo‘shiladi.
3. Loop Count — Qayta ishga tushirish soni
Bu parametr har bir foydalanuvchi test skriptini necha marta bajarishini belgilaydi. Agar “forever” tanlansa, test to‘xtatilmaguncha davom etadi.
4. Scheduler — Rejalashtiruvchi (ixtiyoriy)
Bu parametr orqali testni ma’lum vaqt oralig‘ida avtomatik boshlash va tugatish mumkin.
5. Start Time va End Time
Scheduler yoqilgan bo‘lsa, test qachon boshlanishi va qachon tugashi kerakligini belgilaysiz.
Thread Group qanday ishlaydi?
- Har bir foydalanuvchi (thread) JMeter’dagi test skriptni bajaradi.
- Bu foydalanuvchilar bir vaqtning o‘zida ishga tushadi yoki Ramp-up davri davomida ketma-ket qo‘shiladi.
- Har bir foydalanuvchi belgilangan “Loop Count” bo‘yicha skriptni qayta-qayta bajaradi.
- Thread Group ichida siz samplerlar, listenerlar, config elementlar, assertionlar va boshqa komponentlarni joylashtirasiz.
Misol
Agar siz quyidagicha sozlasangiz:
- Number of Threads: 50
- Ramp-up Period: 10 sekund
- Loop Count: 2
Demak, JMeter 50 ta foydalanuvchini 10 soniyada ishga tushiradi va har bir foydalanuvchi test skriptini 2 marta bajaradi.
Thread Group qo‘shimcha sozlamalari
JMeter’dagi Thread Group komponentida siz quyidagi ilg‘or parametrlarni ham sozlashingiz mumkin. Ular testning qanday bajarilishini yanada aniqroq nazorat qilish imkonini beradi.
Action to be taken after a Sampler error
Bu parametr yordamida Sampler (ya’ni HTTP so‘rov yoki boshqa operatsiya) xatolikka uchragan taqdirda JMeter qanday harakat qilishi kerakligini belgilaysiz.
Variantlar:
- Continue – Test bajarilishni davom ettiradi, xatolik e’tiborga olinmaydi.
- Start Next Thread Loop – Hozirgi iteratsiyani tugatib, keyingisiga o‘tadi.
- Stop Thread – Faqat xatoga uchragan foydalanuvchining testi to‘xtatiladi.
- Stop Test – Butun test darhol to‘xtatiladi.
- Stop Test Now – Barcha foydalanuvchilar (threads) darhol to‘xtatiladi, hatto hozir bajarilayotgan ishlar ham tugatilmasdan.
Foydali: Agar siz testda muhim xizmatlarni sinayotgan bo‘lsangiz, "Stop Test" opsiyasi orqali tizim xatolariga tezkor javob bera olasiz.
Same user on each iteration
Agar bu parametr belgilansa, har bir foydalanuvchi (thread) har bir iteratsiyada bir xil foydalanuvchi sessiyasini saqlaydi. Bu holatda cookie, sessiya, identifikator kabi ma’lumotlar qayta yozilmaydi.
Foydali: Bu foydalanuvchi kirgan holatda (logged in) qolishiga yordam beradi va foydalanuvchining uzoq muddatli ishlashini test qiladi. Masalan, har bit iteratsiyada foydalanuvchilar (threads) tizimga kirishini istamasangiz ushbu parametrdan foydalanishingiz mumkin.
Delay thread creation until needed
Agar bu parametr yoqilgan bo‘lsa, barcha foydalanuvchilar test boshida emas, zarurat tug‘ilganda yaratiladi. Ya’ni, foydalanuvchi faqat belgilangan vaqtda ishga tushadi.
Foydali: Bu tizimning xotira sarfini kamaytiradi, ayniqsa katta miqdorda foydalanuvchilar bo‘lsa.
Specify Thread lifetime
Ushbu parametr orqali siz har bir foydalnuvchi uchun umr davomiyligini belgilashingiz mumkin. Quyidagi opsiyalar mavjud:
- Duration (soniyada): Har bir foydalanuvchi qancha vaqt ishlashi kerakligini ko‘rsatadi.
- Startup Delay (soniyada): Foydalanuvchini ishga tushirishdan oldingi kutish vaqti.
Foydali: Bu yordamida siz test davomiyligini nazorat qilasiz. Masalan, “Har bir foydalanuvchi 60 soniya ishlasin, 5 soniyadan keyin ishga tushsin.”
Thread Group foydasi va maqsadi
- Yuklama testi (Load Testing): Bir vaqtning o‘zida qancha foydalanuvchi xizmatdan foydalanishi mumkinligini tekshirish.
- Stress testi: Tizimning maksimal imkoniyatini sinash.
- Stability testi: Tizim vaqt o‘tishi bilan qanday ishlashini kuzatish.
- Performance testi: Javob vaqtlarini o‘lchash va tahlil qilish.
Thread Group’dan qanday foydalaniladi?
Thread Group — bu JMeter testining asosiy birligi bo‘lib, unda siz foydalanuvchilar soni, ularning xatti-harakati va testning davomiyligini sozlaysiz. Odatda quyidagi tartibda ishlatiladi:
- Test Plan ichida Thread Group yaratiladi.
- Thread Group ichiga Sampler (masalan, HTTP Request), Assertions, Listeners, Timers, va Config Elements joylashtiriladi.
- Har bir virtual foydalanuvchi Thread Group ichidagi bu komponentlarni birin-ketin bajaradi.
- Siz testni ishga tushirganingizda, JMeter har bir foydalanuvchini alohida foydalanuvchi (thread) sifatida ishga tushiradi va testni bajaradi.
Oddiy foydalanish senariysi:
- 100 ta foydalanuvchi 5 daqiqa davomida bir web sahifani test qiladi.
- Har bir foydalanuvchi bir necha HTTP so‘rov yuboradi.
- Listenerlar orqali natijalar yig‘iladi va tahlil qilinadi.
Bir nechta Thread Group ishlatilsa nima bo‘ladi?
JMeter’da siz bir nechta Thread Group qo‘shishingiz mumkin. Bu testni murakkablashtirish va real hayotdagi senariylarni yaratishda juda foydalidir.
🔹 Qanday ishlaydi?
- Har bir Thread Group mustaqil ravishda ishlaydi.
- Har biri o‘zining foydalanuvchilari, ramp-up davri, test davomiyligi, samplerlar va boshqa elementlariga ega bo‘ladi.
- Test ishga tushirilganda barcha Thread Group’lar parallel (bir vaqtda) ishga tushadi, agar Test Plan’da
Run Thread Groups consecutively
belgilab qo‘yilmagan bo‘lsa.
🔹 Foydalanish holatlari:
Ssenariy | Tasnifi |
---|---|
🧪 Turli xizmatlarni bir vaqtning o‘zida test qilish | Masalan, bitta Thread Group API ni, boshqasi esa frontendni test qiladi. |
👥 Turli foydalanuvchi guruhlarini simulyatsiya qilish | Admin foydalanuvchilari va oddiy foydalanuvchilar uchun alohida Thread Group yaratish. |
⏱️ Bosqichma-bosqich yuklamani test qilish | Birinchi Thread Group kam yuklama, ikkinchisi yuqori yuklama simulyatsiyasini bajaradi. |
🔹 E'tiborga olish kerak bo‘lgan jihatlar:
- Har bir Thread Group uchun alohida konfiguratsiya elementlari kerak bo‘lishi mumkin (masalan, HTTP Request Defaults).
- Agar siz Session yoki User login holatini bir nechta Thread Group o‘rtasida saqlamoqchi bo‘lsangiz, bu faqat maxsus qo‘shimcha plaginlar yordamida mumkin.
- Resource usage (xotira, CPU) ko‘payadi, shuning uchun testni bajarayotganda kompyuteringiz quvvatiga e’tibor bering.
Xulosa
Apache JMeter’dagi Thread Group yordamida siz test senariylarini foydalanuvchilar soni, vaqt va iteratsiyalar bo‘yicha moslashingiz mumkin. Agar bir nechta Thread Group ishlatsangiz:
- Turli rollar yoki xizmatlar uchun alohida senariylar yarata olasiz.
- Parallel testlar orqali tizimingizning umumiy bardoshliligini sinovdan o‘tkazasiz.
- Murakkab, ammo realistik yuklama testlari yaratishingiz mumkin.