JMeter Elemek és összetevők: Szálcsoport, Mintapéldányok

⚡ Okos összefoglaló

JMeter Az elemek minden tesztelési terv építőkövei: a szálcsoportok virtuális felhasználókat hoznak létre, a mintavevők elküldik a kéréseket, a figyelők megjelenítik az eredményeket, a konfigurációs elemek pedig biztosítják az alapértelmezett értékeket és az adatokat, amelyekre a kérések szükségük van.

  • 🔘 Témacsoport: Minden szál egy virtuális felhasználót képvisel, aki a tesztelt alkalmazást futtatja.
  • ☑️ Mintavevők: Döntse el a kérés protokollt — FTP, HTTP, JDBC, SMTP és egyebek.
  • Hallgatók: Az eredményeket grafikonként, faként, táblázatként vagy naplófájlként jelenítse meg.
  • 🧪 Konfigurációs elemek: Állítsa be az alapértelmezett értékeket és a változókat, amelyeket a mintavevők újra felhasználnak a teljes tesztben.
  • 🇧🇷 Adatvezérelt futtatások: A CSV adatkészlet-konfiguráció minden szimulált felhasználóhoz más hitelesítő adatokat rendel.
  • Modern megfelelői: A BSF Samplert törölték; a jelenlegi kiadások szkriptjei a JSR223-ig és Groovy.

JMeter Elemek: Szálcsoport, Mintapéldányok, Figyelők és Konfigurációs elemek

Miben van az elem JMeter?

A különböző összetevők JMeter Elemeknek hívják. Minden elem egy meghatározott célra készült.

Az alábbi ábra néhány gyakori elemet mutat be JMeter és megmutatja, hogyan helyezkednek el egy Szálcsoport alatt.

JMeter elemhierarchia diagram a fenti szálcsoporttal: Samplerek, logikai vezérlők, figyelők, konfigurációs elemek, állítások, időzítők és processzorok

Az összes összetevő egy menetben történő tanulmányozása zavart és unalmat okozhat. Itt megbeszéljük a feltétlenül szükséges összetevőket, mielőtt elkezdenéd. tesztelés in JMeter.

A fennmaradó komponenseket a következő oktatóanyagokban a felhasználásuk szerint tárgyaljuk. Az ebben az oktatóanyagban tárgyalt elemek az alábbiakban találhatók.

Szálcsoport

A szálcsoport szálak gyűjteménye. Minden szál egy felhasználót képvisel, aki a tesztelt alkalmazást használja. Alapvetően minden szál egy valós felhasználói kérést szimulál a szerver felé.

A szálcsoportok vezérlői lehetővé teszik az egyes csoportok szálainak számának beállítását.

Például, ha a szálak számát 100-ra állítja be, JMeter 100 felhasználói kérést fog létrehozni és szimulálni a tesztelt szerver felé, ahogy az alábbi ábra is mutatja.

Egy diagramja JMeter Az 1-es és 100-as felhasználókat szimuláló szálcsoportok mindegyike kérést küld a tesztelt alkalmazásnak.

A Szálcsoport panel egy felfutási időszakot is tartalmaz, amely a szálak indítását időben elosztja ahelyett, hogy minden felhasználót egyszerre indítana el.

Mintavevők

Mint már tudjuk, JMeter támogatja a HTTP, FTP, JDBC és sok más protokoll tesztelését.

Azt is tudjuk, hogy a szálcsoportok (Thread Groups) szimulálják a felhasználói kéréseket a szerver felé.

De honnan tudja egy szálcsoport, hogy milyen típusú kérést (HTTP, FTP stb.) kell kezdeményeznie?

A válasz a mintavevők.

A felhasználói kérés lehet FTP kérés, HTTP kérés, JDBC kérés és így tovább. Az alábbi ábra felsorolja az ebben az oktatóanyagban tárgyalt mintavételezőket.

Fadiagram listázása JMeter mintavevők: FTP kérés, HTTP kérés, JDBC kérés, BSF mintavevő, hozzáférési napló mintavevő és SMTP mintavevő

FTP kérés

Képzeljük el, hogy egy FTP-kiszolgáló teljesítményét szeretné tesztelni. Használhat egy FTP-kérelem-mintavevőt a következőben: JMeter hogy ezt a feladatot elvégezze. Ezzel a vezérlővel FTP „fájl letöltése” vagy „fájl feltöltése” kérést küldhet egy FTP-kiszolgálóra.

Ábra mutatja JMeter FTP kérés küldése egy FTP szervernek egy fájl feltöltéséhez vagy letöltéséhez

Például, ha egy tesztelés alatt álló FTP-kiszolgálóról szeretne letölteni egy „Test.txt” fájlt, be kell állítania néhány paramétert a JMeter mint az alábbi ábrán.

FTP kérésminta panel ftp.example.com szerverrel, 21-es porttal, Test.txt távoli fájllal és névtelen bejelentkezéssel

A panel beállítja a szervert erre: ftp.example.com, 21-es port, a távoli fájl a Test.txt fájlba és a get(RETR) opció, tehát JMeter küld egy FTP parancsot a szervernek és letölti a fájlt.

HTTP kérés

Ezzel a mintavevővel HTTP/HTTPS kérést küldhet egy webszervernek.

Tekintsük az alábbi példát. JMeter HTTP kérést küld a Google weboldalt, és HTML fájlokat vagy képeket kér le onnan.

Ábra JMeter HTTP kérés küldése Google Webhelyek és HTML, valamint képek fogadása cserébe

Az oktatóanyagban JMeter Teljesítményfelmérés, bővebben elmagyarázzuk ezt a HTTP-kérést. Ez a leggyakrabban használt mintavevő webes alkalmazás tesztelés a munka azon múlik.

JDBC kérés

Ez a mintavevő lehetővé teszi az adatbázis futtatását Teljesítményfelmérés. JDBC-kérést (SQL-lekérdezést) küld egy adatbázisnak.

Ábra JMeter SQL lekérdezés küldése egy adatbázis-kiszolgálónak és az eredmény fogadása

Például egy adatbázis-kiszolgálón van egy test_result mező, amely egy test_tbl nevű táblában van tárolva. Ha ezeket az adatokat szeretné lekérdezni az adatbázis-kiszolgálóról, akkor konfigurálhatja a következőt: JMeter küldeni a SQL lekérdezés erre a szerverre az adatok lekéréséhez.

JDBC kéréspanel, ahol a lekérdezés típusa Select Statement értékre van állítva, és a lekérdezés select test_result from test_tbl, ahol id = 1

A lekérdezés típusa itt a Select utasítás, és a lekérdezés a következőt olvassa fel: select test_result from test_tbl where id = 1Egy JDBC Connection Configuration elemnek meg kell adnia azt a készletet, amelyre a Variable Name mező mutat.

BSF mintavevő

Ez a mintavevő lehetővé teszi, hogy mintavevőt írjon az a BSF szkriptnyelv.

Íme egy példa egy BSF Samplerre JMeter, a szkriptnyelv mezőivel, a szkriptnek átadott paraméterekkel és egy beágyazott szkripttel vagy egy külső szkriptfájllal.

BSF Sampler panel mezőkkel a szkriptnyelvhez, paraméterekhez, egy külső szkriptfájlhoz és a szkript törzséhez

Elavulási megjegyzés: A BSF elemcsaládot elavulttá tették a JSR223 elemek javára, és már nem szerepel a JMeter komponens referenciaA jelenlegi kiadásokban használd a JSR223 mintavevő ahol Groovy, ami lefordítja a szkriptet, és sokkal jobban teljesít terhelés alatt. A fenti panelt azért tartottuk itt, mert a régebbi teszttervek még tartalmazzák.

Access Log Sampler

Ez a mintavevő lehetővé teszi a hozzáférési naplók olvasását és HTTP-kérések generálását. A naplóbejegyzések lehetnek képek, HTML, CSS és így tovább.

Hozzáférés a Log Sampler panelhez, amelyen látható az alapértelmezett szerver- és portmezők, a TCLogParser bővítmény osztálya és a naplófájl helye.

Az Elemző mező alapértelmezett értéke org.apache.jmeter.protocol.http.util.accesslog.TCLogParser, és a Naplófájl helye mező pontja JMeter annál a naplónál, amelyet vissza szeretne játszani.

SMTP mintavevő

Ha levelezőszervert szeretne tesztelni, használhatja az SMTP Sampler-t. Ez a mintavevő e-mail üzenetek SMTP protokoll használatával történő küldésére szolgál.

SMTP Sampler panel szerverbeállításokkal, e-mail címekkel, hitelesítési és biztonsági beállításokkal, valamint üzenetbeállításokkal

A panel csoportosítja a szerverbeállításokat, az e-mail címeket, a hitelesítést és az üzenetbeállításokat, és a Port mező mellett kinyomtatja az alapértelmezett portokat: SMTP 25, SSL 465 és StartTLS 587.

hallgatók

A figyelők a tesztfuttatás eredményeit mutatják. Az eredményeket különböző formátumokban, például fa, táblázat, grafikon vagy naplófájl formájában jeleníthetik meg.

Diagram, amelyen egy figyelő látható, és az eredményeket grafikon, fa, táblázat és jelentés nézetbe osztja szét

Az Grafikon eredmények A listener egy grafikonon jeleníti meg a szerver válaszidejét, alatta a mintavételek számával, átlagával, eltérésével, átviteli sebességével és mediánjával.

A Graph Results hallgatója a válaszidőket adatokkal, átlaggal, mediánnal, eltéréssel és átviteli sorozatokkal ábrázolja

Eredményfa megtekintése Az egyes felhasználói kérések eredményét alap HTML formátumban jeleníti meg, egy Sampler eredmény füllel, amely a betöltési időt, a késleltetést, a méretet és a válaszkódot mutatja.

Eredmények megtekintése Fa figyelő egy kéréslistával a bal oldalon és a Sampler eredmény lapján a 200-as válaszkód látható

Eredmények megtekintése táblázatban táblázatos formátumban jeleníti meg a teszteredmény összefoglalását, mintánként egy sorral.

Eredmények megtekintése a Table listenerben, oszlopokkal a mintaszám, kezdési idő, szál neve, címke és mintavételi idő megadásához

A naplófájl ugyanazt az összefoglalót rögzíti, mint a szöveget, amelyet akkor őriz meg, amikor egy teszt grafikus felhasználói felület nélkül fut.

Összesített naplóösszefoglaló, amely felsorolja a mintavevő címkéit a mintaszámokkal, átlagokkal és egy ÖSSZESEN sorral

Legjobb gyakorlat: A grafikus felhasználói felület (GUI) figyelői memóriát fogyasztanak és torzítják az eredményeket, ezért futtass valós terheléses teszteket nem grafikus módban, és utána nyisd meg a mentett eredményfájlt.

Konfigurációs elemek

A konfigurációs elemek alapértelmezett értékeket és változókat állítanak be a mintavevők későbbi használatára.

Az alábbi ábra néhány gyakran használt konfigurációs elemet mutat be JMeter.

Fa diagramja JMeter konfigurációs elemek: CSV adatkészlet konfigurációja, HTTP sütikezelő, bejelentkezési konfigurációs elem, HTTP kérés alapértelmezései és FTP kérés alapértelmezései

CSV Data Set Config

Tegyük fel, hogy egy webhelyet 100 felhasználón keresztül szeretnél tesztelni, akik különböző hitelesítő adatokkal jelentkeznek be. Nem kell 100-szor rögzítened a szkriptet. A szkriptet paraméterezheted úgy, hogy különböző bejelentkezési adatokat adjon meg. Ezek a bejelentkezési adatok (például felhasználónév és jelszó) egy szövegfájlban tárolhatók. JMeter van egy eleme, amely lehetővé teszi különböző paraméterek beolvasását a szövegfájlból. Ez a „CSV Data Set Config”, amely sorok beolvasására szolgál egy fájlból, és változókra bontására.

JMeter teszttervfa CSV adatkészlet-konfigurációval kiválasztva egy bejelentkezési vezérlő alatt a HTTP kérés alapértelmezései mellett

Ez egy példa a CSV-adatokra. Ez egy szövegfájl, amely tartalmazza a célwebhelyre való bejelentkezéshez használt felhasználóneveket és jelszavakat.

A csv_data.txt szövegfájl négy, vesszővel elválasztott sor felhasználónév, jelszó és süti hosszértéket tartalmaz

HTTP Cookie Manager

Értsük meg ezt egy példával.

Ön használta a böngészőjét (Firefox, Chrome és így tovább) böngészéshez www.google.com.

Bejelentkezel a felhasználóneveddel és jelszavaddal.

A felhasználóneved és jelszavad sütiként tárolódik a számítógépeden.

Legközelebb, ha meglátogatod www.google.com, nem kell újra bejelentkeznie, mert a böngészője a sütiket felhasználói adatként használja a bejelentkezéshez.

A HTTP sütikezelő ugyanazzal a funkcióval rendelkezik, mint egy webböngésző. Ha HTTP kérést kap, és a válasz sütit tartalmaz, a sütikezelő automatikusan tárolja ezt a sütit, és azt használja az adott webhelyre irányuló összes jövőbeni kéréshez.

HTTP-kérés alapértékei

Ez az elem lehetővé teszi a HTTP Request vezérlők által használt alapértelmezett értékek beállítását.

Például,

100 HTTP kérést küldesz a google.com szervernek.

Mind a 100 kéréshez manuálisan kellene megadnia a google.com szervernevet.

Ehelyett hozzáadhat egyetlen HTTP Request Defaults elemet, amelyben a „Kiszolgáló neve vagy IP címe” mezőben a google.com címet kell megadni, az alábbiak szerint.

HTTP kérés alapértelmezései panel, ahol a szerver neve google.com, a port 80, valamint a csatlakozási és válaszidő-túllépések

Nem kell százszor begépelni. Ezt az elemet részletesen ismertetjük az oktatóanyagban. JMeter Teljesítményfelmérés.

Bejelentkezés konfigurációs elem

A Login Config elem lehetővé teszi a felhasználónév és jelszó beállításainak hozzáadását vagy felülbírálását a mintavevőkben.

Például szimulálni szeretnéd, ahogy egy felhasználó bejelentkezik a weboldalra. www.facebook.com felhasználónévvel és jelszóval. A Login Config elem segítségével hozzáadhatja ezt a felhasználónév és jelszó beállítást egy felhasználói kéréshez.

Bejelentkezési konfigurációs elem panel, ahol a felhasználónév guru99, a jelszó pedig maszkolt.

A bejelentkezési konfigurációs elem vs. a CSV adatkészlet konfigurációja

Bejelentkezés konfigurációs elem CSV Data Set Config
Egy felhasználói bejelentkezés szimulálására szolgál Több felhasználói bejelentkezés szimulálására szolgál
Csak bejelentkezési paraméterekhez alkalmas (felhasználónév és jelszó) Alkalmas nagyszámú paraméterhez

Ez a két elem együttesen szinte minden olyan hitelesítési forgatókönyvet lefed, amellyel találkozhatsz. teljesítménytesztelő eszközök működik.

GYIK

Elmondja JMeter mennyi idő alatt futnak az összes szálak. Tíz szál, amelyek 100 másodperces felfutási idővel rendelkeznek, tíz másodperc különbséggel indul el. A túl rövid felfutás elárasztja a szervert, és olyan hibákat okoz, amelyeket egyetlen valódi felhasználó sem okozna.

Az időzítők szünetet iktatnak be a kérések közé, így a szimulált betöltés a valódi böngészéshez hasonlít, nem pedig egy elárasztáshoz. Az állítások minden választ ellenőrzenek, és sikertelenként jelölik a mintát, ha az állapotkód, a szöveg vagy az időtartam nem egyezik a megadottal.

Csoportosítják és elágaztatják az alattuk lévő kéréseket. Egy ciklusvezérlő megismétli a gyermekeit, egy feltételesen futtatja azokat, és egy tranzakcióvezérlő az egész csoportot egyetlen időzített lépésként jelenti az eredményekben.

Nem. Az olyan figyelők, mint a View Results Tree, pufferelnek minden mintát, és torzítják az általuk jelentett számokat. Futtassa a tesztet nem grafikus módban, írja az eredményeket egy fájlba, majd a futtatás befejezése után töltse be a fájlt egy figyelőbe.

Először a konfigurációs elemeket és az előfeldolgozókat alkalmazzák, majd lefut a mintavevő, végül pedig az utófeldolgozók, az assertion-ök és a listener-ek. A hatókör is számít: a terv szintjén elhelyezett elem minden alatta lévő kérésre vonatkozik.

Hasznos a mintázatfelismeréshez. Az eredményfájl asszisztensnek való betáplálása sokkal gyorsabban felszínre hozza a leglassabb címkéket, hibacsoportokat és válaszidő-trendeket, mint a sorok beolvasása. A cselekvés előtt mindig erősítse meg az eredményt a nyers mintákkal szemben.

Igen. Megfogalmazza Groovy az extracértékek megadása, hasznos adatok létrehozása és változók beállítása egy JSR223 elemen belül. Ellenőrizzen minden javaslatot, mert gyakran az elavult BeanShell API-hoz vagy olyan változókhoz nyúl, amelyek JMeter nem kiteszi.

Egy szálcsoport és egy mintavevő. Minden más opcionális. A gyakorlatban egy figyelőt adnak hozzá, hogy az eredmények láthatóak legyenek, és az alapértelmezett értékek vagy egy adatfájl kerül hozzáadásra, amikor ugyanazok az értékek ismétlődnek a kérések között.

Foglald össze ezt a bejegyzést a következőképpen: