Logic controllers v Jmeter

V predchádzajúcom tutoriáli sme sa venovali samplerom a rôznym typom požiadaviek na sampler, ktoré sú k dispozícii v JMeter. V tomto tutoriáli sa pozrieme na logické kontroléry, ktoré prispôsobujú spôsob odosielania rôznych požiadaviek na server.
- Logic Controllers
- Prečo potrebujeme Logic Controllers?
- Critical Section Controller (Kontrolér kritickej sekcie)
- ForEach Controller
- If Controller
- Include Controller
- Interleave Controller
- Loop Controller
- Module Controller
- Once Only Controller
- Random Controller (Náhodný kontrolér)
- Random Order Controller
- Recording Controller
- Runtime Controller
- Simple Controller (Jednoduchý kontrolér)
- Switch Controller
- Throughput Controller
- Transaction Controller
- While Controller
Logic Controllers
Logic Controllers sú prvky plánu testovania, ktoré sa používajú na prispôsobenie poradia spracovania samplerov a iných prvkov pridaných ako „potomok“(child). Logic Controllers sa primárne používajú pri Sampler požiadavkách na vykonávanie rôznych prispôsobení, ako je zmena poradia ich spracovania, ich zoskupenie ako jednej transakcie alebo spúšťanie požiadaviek v cykle (loop) atď.
Kroky na spustenie logického kontroléra – kliknite pravým tlačidlom myši na Thread Group -> prejdite na položku Add -> prejdite na položku Logic Controllers (Logické kontroléry) -> kliknite na požadované logické kontroléry

Prečo potrebujeme Logic Controllers?
Skripty testovania výkonnosti sa používajú na simuláciu činností skutočných používateľov. Rovnako ako skutočný používateľ bude vykonávať viacero akcií rôznym spôsobom, napríklad vykonávať súbor operácií postupne (napr. prejsť z prihlasovacej stránky na domovskú stránku), vykonávať podobné typy operácií v cykle (loop) (napr. čítať viacero neprečítaných e-mailov), vykonávať niektoré náhodné operácie atď. Na simuláciu týchto rôznych typov akcií nám JMeter poskytuje rôzne typy logických kontrolérov, ktoré prispôsobujú spracovanie prvkov v nich.
Pozrime sa teraz na rôzne logické kontroléry, ktoré poskytuje JMeter:
Critical Section Controller (Kontrolér kritickej sekcie)
Ide o novo pridaný kontrolér v systéme JMeter. Zabezpečuje, aby k podriadeným prvkom tohto kontroléra pristupovalo vždy len jedno vlákno.
ForEach Controller
Tento kontrolér sa používa na vykonávanie požiadaviek v cykle na základe hodnôt súboru súvisiacich premenných.
If Controller
Pomocou If Controlleru môžeme určiť podmienku, či sa podriadený prvok v ňom spustí alebo nie, na základe podmienky, ktorá by sa mala vyhodnotiť ako true alebo false.
Include Controller
Include Controller možno použiť na zabezpečenie modularity v JMeter. Pomocou tohto kontroléra môžeme pridať externý súbor .jmx(fragment testu) do nášho existujúceho skriptu načítaním súboru jmx v ovládacom paneli Include Controler.
Interleave Controller
Interleave Controller nám umožňuje vybrať a vykonať jeden podriadený prvok z viacerých podriadených v každej iterácii cyklu. Napríklad – ak máme tri samplery pridané ako podriadené do Interleave Controller, v prvej iterácii sa vyberie prvá požiadavka na sampler, v ďalšej iterácii sa vyberie ďalší atď. Po skončení podriadených prvkov sa opäť spustí iterácia od prvého prvku.
Loop Controller
Umožňuje vykonávať operácie zadané ako podriadené prvky v loope s hodnotou iterácie zadanou v jej ovládacom paneli.
Module Controller
Pomocou Module Controller môžeme znovu použiť fragment testu (napr. sampler) do nášho skriptu výberom modulu z ovládacieho panela Module Controller.
Once Only Controller
Kontrolér Once Only sa používa v situácii, keď by sme chceli vykonať operáciu len raz, aj keď sa operácia vykonáva v cykle.
Random Controller (Náhodný kontrolér)
Je podobný náhodnému kontroléru a v každej iterácii vyberá jeden podriadený prvok, ale na rozdiel od kontroléra Interleave vyberá podriadený prvok náhodne.
Random Order Controller
Random Order Controller (kontrolér náhodného poradia) sa používa na vykonanie každého svojho podriadeného prvku najviac raz v náhodnom poradí.
Recording Controller
Tento kontrolér slúži ako miesto, kde sa štandardne zaznamenávajú skripty zaznamenané pomocou HTTP Proxy servera (podrobnosti o nahrávaní a prehrávaní v JMeter nájdete v našom tutoriáli).
Runtime Controller
Runtime controller sa používa na obmedzenie času vykonávania jeho podriadených prvkov (child elements). Ak sme napríklad zadali hodnotu „Runtime“ (Čas) 100 sekúnd, potom sa prvky vnútri Runtime controlleru budú vykonávať 100 sekúnd s čo najväčším počtom iterácií.
Simple Controller (Jednoduchý kontrolér)
Tento kontrolér je len miestom na zoskupenie a usporiadanie rôznych prvkov plánu testov.
Switch Controller
Tento kontrolér sa používa na výber jedného prvku na spracovanie z jeho viacerých podriadených prvkov (child elements). Prvok sa nevyberá v postupnom ani náhodnom poradí, namiesto toho sa vyberá na základe hodnoty prepínača (switch value) definovanej v jeho ovládacom paneli. Hodnota prepínača môže byť premenná s hodnotou vyhodnotenou na jej indexe(pozícia) prvku alebo názov prvku. Napríklad, ak je v prvej iterácii hodnota prepínača vyhodnotená ako „3“, potom sa na spracovanie vyberie štvrtý prvok (hodnota indexu začína od 0). Podobne, ak sa hodnota prepínača vyhodnotí ako názov prvku, potom sa na spracovanie vyberie tento prvok.
Throughput Controller
Throughput Controller sa používa na riadenie spracovania svojich podriadených prvkov (child elements) z hľadiska celkového počtu vykonaní alebo percenta vykonania zadaného v jeho ovládacom paneli.
Transaction Controller
Transaction Controller je jeden z často používaných kontrolérov v skriptoch JMeter. Používa sa na zoskupenie viacerých požiadaviek na vzorkovanie (sampler requests) do jednej. Čas odozvy a ďalšie metriky výkonu výsledku testu sa vyhodnocujú pre celú transakciu. Napríklad – pri kontrole výkonu domovskej stránky aplikácie si môžeme všimnúť, že spustenie domovskej stránky generuje množstvo požiadaviek na backende. Preto je potrebné zoskupiť všetky tieto požiadavky do jednej transakcie, na čo máme v JMeter Transaction Controller. Po spustení skriptu môžeme zistiť celkový čas odozvy celej transakcie.
While Controller
Kontrolér While sa používa na spúšťanie podriadených prvkov (child elements), ktoré sa v ňom nachádzajú, kým sa hodnota zadaná v jeho ovládacom paneli nevyhodnotí ako false.