Controlere în JMeter: Buclă, Simplu, Tranzacție, Modul, Aleator

Cuprins:

Anonim

Ce este controlerul logic?

Controlerele logice vă permit să definiți ordinea cererii de procesare într-un fir. Vă permite să controlați „când” să trimiteți o cerere de utilizator către un server web. De exemplu, puteți utiliza controlere aleatorii pentru a trimite cereri HTTP către server în mod aleatoriu

Controlerele logice determină ordinea în care este executată cererea utilizatorului.

Unele controlere logice utilizate în mod obișnuit sunt mai jos:

Controler de înregistrare:

JMeter vă poate înregistra pașii de testare; un controler de înregistrare este un substituent pentru stocarea acestor pași de înregistrare.

Controler simplu:

Controlerul simplu este doar un container pentru cererea utilizatorului.

Controler buclă:

Loop Controller face ca solicitarea utilizatorului să ruleze un număr specificat de ori sau să ruleze definitiv, după cum se arată în figură:

Controler aleatoriu:

Random Controller face ca toate cererile utilizatorilor să ruleze în ordine aleatorie în fiecare perioadă de buclă.

De exemplu, aveți 3 solicitări ale utilizatorilor către site-ul web http://www.google.com în următoarea ordine:

  1. Cerere HTTP
  2. Solicitare FTP
  3. Solicitare JDBC

Aceste 3 solicitări ar trebui să ruleze de 5 ori. În total, 15 cereri de utilizatori vor fi trimise către serverul Google de către JMeter.

În ordine secvențială , solicitările sunt trimise secvențial în următoarea ordine:

Solicitare HTTP -> Solicitare FTP-> Solicitare JDBC

pentru fiecare buclă.

În ordine aleatorie , solicitările sunt trimise ca aleator,

Solicitare FTP -> Solicitare HTTP-> Solicitare JDBC

Sau

Solicitare JDBC -> Solicitare FTP-> Solicitare HTTP

Pentru fiecare buclă.

Controler modul:

Scopul Module Controller este de a adăuga modularitate la JMeter.

Ideea generală este că aplicațiile web constau în unități mici de funcționalitate (de exemplu, Logare, Creare cont, Deconectare ...). Această funcționalitate poate fi stocată în Simple Controller ca „module”. Controlerul modulului va alege ce modul trebuie să ruleze.

Luați în considerare următorul scenariu -

Doriți să simulați:

  • 50 de utilizatori se deconectează ,
  • 100 de utilizatori care se conectează
  • 30 de utilizatori caută pe www.google.com

Puteți utiliza JMeter pentru a crea 3 module. Fiecare modul simulează fiecare activitate a utilizatorului: Autentificare, Deconectare și Căutare.

Controlerul modulului alege ce modul trebuie să ruleze.

Alte controlere importante:

  • Interleave Controller: preia și execută una din cererile utilizatorului în fiecare buclă a firului.
  • Runtime Controller: controlează cât timp copiii săi pot rula.

De exemplu, dacă ați specificat Runtime Controller 10 secunde, JMeter vă va rula testul timp de 10 secunde.

  • Controler tranzacție : măsoară timpul total necesar pentru a termina executarea testului
  • Include controler: este conceput pentru a utiliza un plan de test extern. Acest controler vă permite să utilizați mai multe planuri de testare în JMeter. Vedeți detaliile în Testarea performanței JMeter.

Exemplu de controler de buclă

Această secțiune vă arată instrucțiuni pas cu pas pentru a adăuga setul Loop Controller la planul dvs. actual de testare a performanței.

Loop Controller face ca eșantioanele să ruleze de un anumit număr de ori, în plus față de valoarea buclei pe care ați specificat-o pentru grupul de fire. De exemplu, dacă tu

  • Adăugați o solicitare HTTP la un controller de buclă cu un număr de bucle 50
  • Configurați numărul de bucle ale grupului de fire la 2
  • Apoi, JMeter va trimite un total de 50 * 2 = 100 de cereri HTTP.

Aceasta este foaia de parcurs a acestui exemplu:

Pasul 1) Configurarea grupului de fire

Noi reutiliza Etapa 1, 2 în testele de performanta JMeter tutorial.

  1. Adăugați un grup de fire

Faceți clic dreapta pe Planul de testare și adăugați un nou grup de fire: Adăugați -> Fire (Utilizatori) -> Grup de fire

Dar în panoul de control Thread Group, introduceți Thread Properties după cum urmează:

Acesta va solicita un singur utilizator către serverul web google.com și îl va rula de 2 ori.

  1. Adăugați elemente JMeter

Adăugați cerere HTTP implicită la www.google.com.

  1. Adăugarea unui controller de buclă

Faceți clic dreapta pe grupul de fire -> Controler logic -> Controler buclă

Pasul 2) Configurarea Loop Controller

Adăugați valoarea 50 la câmpul Buclă contor, după cum se arată în figura de mai jos. Acesta va face o cerere de utilizator către serverul web google.com să o ruleze de 50 de ori, pe lângă valoarea buclei = 2, pe care ați specificat-o pentru grupul de fire de mai sus. Deci JMeter va trimite un total de 2 * 50 = 100 de cereri HTTP.

Faceți clic dreapta pe Loop Controller, Add -> Sampler -> HTTP request

Pasul 3) Adăugați rezultatele vizualizării în tabel

Reutilizăm Pasul 2 din Timer pentru a adăuga Vizualizarea rezultatelor în Tabel

Deci, planul de testare este prezentat în figura de mai jos

Pasul 4) Rulați testul

Acum reveniți la Vizualizare rezultate în tabel, faceți clic pe butonul Start din bara de meniu (Ctrl + R) pentru a rula un test

După cum se arată în figura de mai jos, JMeter simulează o cerere de utilizator, care este trimisă de 100 de ori, către serverul web http://www.google.com/. Testul este oprit după ce o cerere de utilizator a fost trimisă de 100 de ori.

Depanare:

  1. Dacă vă confruntați cu problema în timp ce executați scenariul de mai sus ... faceți următoarele
  2. Verificați dacă vă conectați la internet prin intermediul unui proxy. Dacă da, eliminați proxy-ul.
  3. Deschideți o nouă instanță a Jmeter
  4. Deschideți ControllerTestPlan.jmx în Jmeter
  5. Faceți clic pe Grup de fire -> Vizualizați rezultatul în tabel
  6. Rulați testul