Logic controllers v Jmeter

Logic controllers v Jmeter
3 MIN
05 jan 2024

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 

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

Snímka obrazovky návodu na spustenie logického kontroléra

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.