AI-val generálva: Apache JMeter és a Throughput Controller

Becsült olvasási idő:
2 perc

Mivel napo óta ezzel szórakoztatom magam, gondoltam íratok erről pár sort az AI-val, mint emlékeztető, ha újra elő kell vennem a témát. Röviden: vannak esetek, amikor százalékos arányban kell hívásokat eszközölni a performancia mérésben. Ebben tud segíteni a Throughput Controller.

Nézzük, mint mond erről az AI:

A Throughput Controller az Apache JMeter egyik legfontosabb eleme, amikor a valós felhasználói viselkedést szeretnénk szimulálni. Neve ellenére nem a másodpercenkénti kérések számát (RPS) korlátozza (arra a Constant Throughput Timer való), hanem azt határozza meg, hogy a teszt lépései milyen arányban vagy rögzített alkalommal fussanak le.

Mire jó a Throughput Controller?

Egy webáruháznál a látogatók nem egyforma arányban böngésznek és vásárolnak:

  • 80% csak böngészi a termékeket.
  • 15% kosárba tesz valamit.
  • 5% eljut a fizetésig.

A Throughput Controller segítségével pontosan ezt a megoszlást képezhetjük le egyetlen Thread Group-on belül.

A két fő működési mód (Based On)

MódLeírásMikor használd?
Percent ExecutionsA beállított százalékos arányban engedi lefutni a gyermek kéréseket a teszt során.Valós felhasználói eloszlás szimulálásához (pl. 80-15-5% szabály).
Total ExecutionsLegfeljebb egy megadott fix alkalommal engedi lefutni a kérést, utána kihagyja.Egyszeri beállításokhoz vagy korlátozott műveletekhez (pl. adatbázis-feltöltés).

Fontos beállítás (Per User): Ha be van pipálva, a számítás nem a teljes tesztre, hanem szálanként (felhasználónként) érvényesül.

Gyakorlati példa: Webáruház forgalomszimuláció

Tételezzük fel, hogy 100 szálat (felhasználót) indítunk egy hurokban (Loop Count: 100). A célunk a fent említett 80%-15%-5%-os megoszlás.

Struktúra a JMeterben:

Plaintext

Test Plan
 └── Thread Group (100 Threads, Loop: 10)
      ├── Throughput Controller (Percent Executions: 80.0)
      │    └── HTTP Request: Termékoldal megtekintése
      ├── Throughput Controller (Percent Executions: 15.0)
      │    └── HTTP Request: Kosárba helyezés
      └── Throughput Controller (Percent Executions: 5.0)
           └── HTTP Request: Fizetés

Működés:

  • A 1000 összes lefutásból nagyjából 800 alkalommal a termékoldal kérés fog lefutni.
  • 150 alkalommal a kosárba helyezés.
  • 50 alkalommal pedig a fizetés lép fel.

Gyakori hibák és tippek

  1. Ne keverd a Constant Throughput Timer-rel: Ha az a célod, hogy a szervert pontosan 100 req/sec terhelés alatt tartsd, használj Timert. A Throughput Controller az arányokról szól, nem a sebességről.
  2. Keresztülfutás (Overhead): Ha a szabályok összege nem 100%, vagy egy szál egyik controllernek sem felel meg az adott iterációban, a szál kihagyja az adott részt és lép a következő hurokra.
  3. Egymásba ágyazás: Összetettebb scenárióknál Simple Controller-rel vagy Transaction Controller-rel kombinálva egész folyamatokat is elhelyezhetsz egy-egy Throughput Controller alá.
Szerző:
Kategória:
,
Bejegyzés dátuma:

Hozzászólások

Vélemény, hozzászólás?