Mint már korábban talán írtam, nem vagyok egy JMeter guru. Így aztán ha felmerül valami kérdés, az AI-hoz fordulok, mintsem órákat töltsek azzal, hogy a Google segítségével talált linkeket végigolvassam. Így történt ez most is, amikor egy váltakozó terhelésű tesztet szerettem volna előállítani. Az elmélet megvolt, hiszen csináltam már ilyen HP LoadRunnerrel réges régen, viszont a JMeter beállításaival és technikai adottságaival nem vagyok komfortos, mivel ez egy elég jól konfigurálható „műszer”.
Nézzük, mint mondott a Gemini:
Egyszerű eset
JMeterben a változó terhelésű (ramping, lépcsőzetes vagy hullámzó) tesztelés megvalósítására három fő módszer létezik, a legegyszerűbb beépített megoldástól a legrugalmasabb pluginokig.
1. Beépített megoldás: Standard Thread Group
Ha nincs lehetőséged pluginokat telepíteni, a sima Thread Group beállításaival is elérhetsz alapvető terhelésnövekedést (Ramp-up).
- Ramp-up Period (seconds): Megadja, hogy a virtuális felhasználók mennyi idő alatt induljanak el fokozatosan.
- Példa beállítás:
- Number of Threads (users):
100 - Ramp-up Period (seconds):
50 - Loop Count:
Infinite(vagy adj meg egy fix időtartamot a Specify Thread lifetime opcióval)
- Number of Threads (users):
- Működés: 50 másodperc alatt másodpercenként 2 új virtuális felhasználó lép be, amíg el nem éri a 100-at.
2. A legrugalmasabb módszer: Ultimate Thread Group (Ajánlott)
A változó terhelés (pl. hullámzás, lépcsőzetes emelés, hirtelen tüskék/spike tesztek) grafikusan és precízen a JMeter Plugins Manager segítségével telepíthető Custom Thread Groups csomaggal valósítható meg.
A telepítés után válaszd a jp@gc - Ultimate Thread Group elemet. Ebben egy táblázatban (Threads Schedule) tetszőleges számú terhelési szakaszt kombinálhatsz:
| Start Thread Count | Initial Delay (sec) | Startup Time (sec) | Hold Load For (sec) | Shutdown Time (sec) |
| 100 | 0 | 30 | 60 | 10 |
| 200 | 90 | 30 | 120 | 20 |
- Működés:
- Az első sor lefut: 30 mp alatt felmegy 100 felhasználóra, tartja 60 mp-ig, majd leáll.
- A második sor 90 mp várakozás után belép, és további 200 felhasználóval megemeli a terhelést (lépcsőzetes teszt).
3. Kérés/másodperc (RPS/TPS) alapú szabályozás
Ha nem a virtuális felhasználók száma, hanem a másodpercenkénti kérésszám (Throughput) változtatása a célod:
- Throughput Shaping Timer (Plugin):
- Helyezd a kérések alá (vagy a Thread Group szintjére).
- Egy táblázatban megadhatod a kívánt RPS-t időtartam alapján:
- Start RPS:
10$\rightarrow$End RPS:50(Duration:60s) — lineáris emelkedés - Start RPS:
50$\rightarrow$End RPS:50(Duration:180s) — állandó terhelés tartása
- Start RPS:
- Concurrency Thread Group + Throughput Shaping Timer:
- A két plugin összekapcsolható (a Concurrency Thread Group automatikusan beállítja a szükséges virtuális felhasználók számát a Throughput Shaping Timer által kért RPS eléréséhez).
Gyors összefoglaló a megközelítés kiválasztásához
- Lépcsőzetes / Hullámzó terhelés userekkel: Use
jp@gc - Ultimate Thread Group - Fix Target RPS / Áteresztőképesség tesztelése: Use
Throughput Shaping Timer - Egyszerű lineáris felfutás: Standard
Thread Group(Ramp-Up Period)
Több Thread Group esetén
Ha több Thread Group-ot használsz egyetlen Test Planen belül, akkor összetett, valósághű terhelési profilokat építhetsz fel. Például szimulálhatsz különböző felhasználói viselkedéseket (pl. 70% vásárló, 30% böngésző) vagy egymásra csúsztatott terhelési hullámokat.
A több Thread Group összehangolására két alapvető megközelítés létezik: Párhuzamos (egyszerre futnak) és Egymás utáni (szekvenciális).
1. Párhuzamos futtatás (Alapértelmezett beállítás)
Alapértelmezetten a JMeter az összes Thread Group-ot egyszerre, párhuzamosan kezdi el futtatni. A változó terhelést az határozza meg, hogy a csoportok időben hogyan vannak beidőzítve egymáshoz képest.
Példa scenárió: Vásárlási csúcsforgalom szimulációja
- Thread Group A (Állandó háttérterhelés – Cikkolvasók): Folyamatosan jelen lévő felhasználók.
- Thread Group B (Lépcsőzetes terhelés – Vásárlók): Hullámokban érkező vásárlók.
Beállítás Ultimate Thread Group pluginnal:
Test Plan
- ⚙️
Test Plan(a „Run Thread Groups consecutively” opció kivétele)- 👥
jp@gc - Ultimate Thread Group(Háttérterhelés – Böngészők) - 👥
jp@gc - Ultimate Thread Group(Csúcsforgalom – Vásárlók)
- 👥
A) Háttérterhelés csoport (Böngészők):
| Start Thread Count | Initial Delay (sec) | Startup Time (sec) | Hold Load For (sec) | Shutdown Time (sec) |
| 50 | 0 | 10 | 300 | 10 |
(Gyorsan feláll 50 felhasználóra, és végig fut 5 percig.)
B) Csúcsforgalom csoport (Vásárlók):
| Start Thread Count | Initial Delay (sec) | Startup Time (sec) | Hold Load For (sec) | Shutdown Time (sec) |
| 100 | 60 | 30 | 60 | 10 |
| 200 | 180 | 30 | 60 | 10 |
(A teszt 1. percében belép 100 vásárló, majd a 3. percben egy újabb 200 fős tüske érkezik.)
2. Szekvenciális (Egymás utáni) futtatás
Ha a terhelési fázisokat szigorúan egymás után akarod futtatni (pl. Felfűtés $\rightarrow$ Terhelési teszt $\rightarrow$ Kiürülés), be kell kapcsolnod a JMeterben az egymás utáni futtatást.
Beállítás lépései:
- Kattints a Test Plan gyökérelemre.
- Pipáld be a
Run Thread Groups consecutively (i.e. run one at a time)opciót.
Példa felépítés:
Test Plan(Egymás utáni futtatás bekapcsolva)
- 1️⃣
Thread Group - 1. Fázis (Bemelegítés)- Threads: 20, Ramp-Up: 20s, Duration: 60s
- 2️⃣
Thread Group - 2. Fázis (Fő terhelés)- Threads: 200, Ramp-Up: 30s, Duration: 300s
- 3️⃣
Thread Group - 3. Fázis (Lecsengés)- Threads: 10, Ramp-Up: 1s, Duration: 30s
- Működés: A JMeter megvárja, amíg az 1. csoport teljesen leáll, és csak utána indítja el a 2. csoportot, majd végül a 3.-at.

💡 Fontos tipp adatok megosztásához a Thread Groupok között
Ha több Thread Groupot használsz, a sima JMeter változók (${var}) nem terjednek át az egyik csoportból a másikba, mert a változók szál-specifikusak.
Ha az egyik csoportban (pl. Bejelentkezés) generált adatot akarod használni egy másik csoportban:
- Használj JMeter Property-ket a megosztáshoz (pl. Groovy scriptben:
props.put("token", "${extracted_token}")és a másik csoportban:${__P(token)}). - Használj
jp@gc - Inter-Thread Communicationplugint az adatok átadására a csoportok között.

Vélemény, hozzászólás?
Hozzászólás küldéséhez be kell jelentkezni.