JMeter Elementer og komponenter: Trådgruppe, Samplere

⚡ Smart opsummering

JMeter Elementer er byggestenene i enhver testplan: Trådgrupper opretter virtuelle brugere, samplere sender anmodningerne, lyttere viser resultater, og konfigurationselementer leverer de standardindstillinger og data, som disse anmodninger har brug for.

  • 🔘 Trådgruppe: Hver tråd repræsenterer én virtuel bruger, der kører den applikation, der testes.
  • ☑️ Prøveudtagere: Bestem protokollen for anmodningen — FTP, HTTP, JDBC, SMTP og mere.
  • Lyttere: Render resultater som en graf, et træ, en tabel eller en logfil.
  • 🧪 Konfigurationselementer: Angiv standardindstillinger og variabler, som samplere genbruger på tværs af en hel test.
  • 🛠️ Datadrevne løb: CSV-datasætkonfigurationen sender forskellige legitimationsoplysninger til hver simuleret bruger.
  • Moderne ækvivalenter: BSF Sampler er blevet droppet; nuværende udgivelser af scripts frem til JSR223 og Groovy.

JMeter Elementer: Trådgruppe, samplere, lyttere og konfigurationselementer

Hvad er Element i JMeter?

De forskellige komponenter af JMeter kaldes elementer. Hvert element er designet til et bestemt formål.

Nedenstående figur giver nogle almindelige elementer i JMeter og viser, hvordan de sidder under en trådgruppe.

JMeter Elementhierarkidiagram med trådgruppe ovenfor: Samplere, logiske controllere, lyttere, konfigurationselementer, assertioner, timere og processorer

At studere alle komponenterne på én gang er en invitation til forvirring og kedsomhed. Her vil vi diskutere de komponenter, du skal kende, før du kan begynde. test in JMeter.

De resterende komponenter vil blive diskuteret, efterhånden som de bruges i de efterfølgende vejledninger. Elementerne, der diskuteres i denne vejledning, er anført nedenfor.

Trådgruppe

En trådgruppe er en samling af tråde. Hver tråd repræsenterer én bruger, der bruger den applikation, der testes. Grundlæggende simulerer hver tråd én reel brugeranmodning til serveren.

Kontrolelementerne for en trådgruppe giver dig mulighed for at indstille antallet af tråde for hver gruppe.

Hvis du for eksempel angiver antallet af tråde til 100, JMeter vil oprette og simulere 100 brugeranmodninger til den testede server, som diagrammet nedenfor illustrerer.

Diagram over en JMeter Trådgruppe, der simulerer bruger 1 til bruger 100, hvor hver især sender en anmodning til den applikation, der testes.

Panelet Trådgruppe har også en opstartsperiode, der spreder starten af ​​disse tråde over tid i stedet for at starte alle brugere på én gang.

Prøver

Som vi allerede ved, JMeter understøtter test af HTTP, FTP, JDBC og mange andre protokoller.

Vi ved også, at trådgrupper simulerer brugeranmodninger til serveren.

Men hvordan ved en trådgruppe, hvilken type anmodning (HTTP, FTP osv.) den skal lave?

Svaret er Samplere.

Brugeranmodningen kan være en FTP-anmodning, en HTTP-anmodning, en JDBC-anmodning osv. Figuren nedenfor viser de samplere, der er dækket i denne vejledning.

Liste over trædiagrammer JMeter samplere: FTP-anmodning, HTTP-anmodning, JDBC-anmodning, BSF-sampler, adgangslogsampler og SMTP-sampler

FTP-anmodning

Lad os forestille os, at du vil ydeevneteste en FTP-server. Du kan bruge en FTP-forespørgselssampler i JMeter at udføre denne opgave. Denne controller lader dig sende en FTP "download fil" eller "upload fil" anmodning til en FTP server.

Diagram der viser JMeter afsendelse af en FTP-anmodning til en FTP-server for at uploade eller downloade en fil

Hvis du f.eks. ønsker at downloade en fil "Test.txt" fra en FTP-server under test, skal du konfigurere nogle parametre i JMeter som i figuren nedenfor.

FTP-anmodningseksempelpanel med ftp.example.com som server, port 21, Test.txt som fjernfil og anonym login

Panelet indstiller serveren til ftp.example.com, port 21, fjernfilen til Test.txt og get(RETR)-indstillingen, så JMeter sender en FTP-kommando til den server og downloader filen.

HTTP-anmodning

Denne sampler lader dig sende en HTTP/HTTPS-anmodning til en webserver.

Overvej eksemplet nedenfor. JMeter sender en HTTP-anmodning til Google hjemmeside og henter HTML-filer eller billeder derfra.

Diagram af JMeter sender en HTTP-anmodning til Google Websteder og modtagelse af HTML og billeder til gengæld

I selvstudiet JMeter Test af ydeevne, vil vi forklare mere om denne HTTP-anmodning. Det er den sampler, der oftest test af webapplikationer arbejdet afhænger af.

JDBC-anmodning

Denne sampler lader dig køre databasen test af ydeevne. Den sender en JDBC-anmodning (en SQL-forespørgsel) til en database.

Diagram af JMeter afsendelse af en SQL-forespørgsel til en databaseserver og modtagelse af resultatet

For eksempel har en databaseserver et felt test_result gemt i en tabel med navnet test_tbl. Du vil forespørge om disse data fra databaseserveren, så du kan konfigurere JMeter at sende en SQL forespørgsel til denne server for at hente dataene.

JDBC-anmodningspanel med forespørgselstype indstillet til Select Statement, og forespørgslen vælger test_result fra test_tbl, hvor id = 1

Forespørgselstypen her er Select Statement, og forespørgslen læses select test_result from test_tbl where id = 1Et JDBC-forbindelseskonfigurationselement skal angive den pulje, som feltet Variabelnavn peger på.

BSF Sampler

Denne sampler giver dig mulighed for at skrive en sampler ved hjælp af en BSF scriptsprog.

Her er et eksempel på en BSF-sampler i JMeter, med felter for scriptsproget, de parametre, der sendes til scriptet, og enten et indlejret script eller en ekstern scriptfil.

BSF Sampler-panel med felter til scriptsprog, parametre, en ekstern scriptfil og den indlejrede scripttekst

Udfasningsbemærkning: BSF-familien af ​​elementer blev udfaset til fordel for JSR223-elementerne og optræder ikke længere i JMeter komponentreference. Brug på aktuelle udgivelser JSR223 Sampler med Groovy, som kompilerer scriptet og yder langt bedre under belastning. Panelet ovenfor er bevaret her, fordi ældre testplaner stadig indeholder det.

Adgang Log Sampler

Denne sampler giver dig mulighed for at læse adgangslogfiler og generere HTTP-anmodninger. Logposterne kan være billeder, HTML, CSS osv.

Adgangslogprøvepanel, der viser standardserver- og portfelter, TCLogParser-pluginklassen og logfilens placering

Parser-feltet er som standard indstillet til org.apache.jmeter.protocol.http.util.accesslog.TCLogParser, og feltet Logfilens placering peger JMeter ved den log, du vil afspille igen.

SMTP-sampler

Hvis du vil teste en mailserver, kan du bruge SMTP-sampleren. Denne sampler bruges til at sende e-mails ved hjælp af SMTP-protokollen.

SMTP-samplerpanel med serverindstillinger, mailadresser, godkendelses- og sikkerhedsindstillinger samt beskedindstillinger

Panelet grupperer serverindstillinger, mailadresser, godkendelse og beskedindstillinger, og det udskriver standardportene ved siden af ​​Portfeltet: SMTP 25, SSL 465 og StartTLS 587.

lyttere

Lyttere viser resultaterne af testens udførelse. De kan præsentere resultaterne i forskellige formater, såsom et træ, en tabel, en graf eller en logfil.

Diagram, der viser en lytter, der opdeler resultater i graf-, træ-, tabel- og rapportvisninger

Graf resultater Listener viser serverens svartider på en graf med antallet af prøver, gennemsnittet, afvigelsen, gennemløbshastigheden og medianen trykt nedenunder.

Lytter til grafresultater, der plotter svartider med data, gennemsnit, median, afvigelse og gennemløbsserier

Se resultattræ viser resultatet af hver brugeranmodning i et simpelt HTML-format med en Sampler-resultatfane, der rapporterer indlæsningstid, latenstid, størrelse og svarkode.

Vis resultattræ-lytter med en anmodningsliste til venstre og fanen Sampler-resultater, der viser svarkode 200

Se resultater i tabellen viser en opsummering af testresultatet i tabelformat, én række pr. prøve.

Se resultater i tabellytter med kolonner for prøvenummer, starttidspunkt, trådnavn, etiket og prøvetidspunkt

En logfil registrerer det samme resumé som tekst, hvilket er det, du gemmer, når en test kører uden den grafiske brugergrænseflade.

Aggregeret logoversigt, der viser sampleretiketter med prøveantal, gennemsnit og en TOTAL-række

Bedste praksis: GUI-lyttere bruger hukommelse og skæver resultater, så kør rigtige belastningstests i ikke-GUI-tilstand og åbn den gemte resultatfil bagefter.

Konfigurationselementer

Konfigurationselementer opretter standardindstillinger og variabler til senere brug af samplere.

Nedenstående figur viser nogle almindeligt anvendte konfigurationselementer i JMeter.

Trædiagram af JMeter konfigurationselementer: CSV-datasætkonfiguration, HTTP Cookie Manager, Login-konfigurationselement, HTTP-anmodningsstandarder og FTP-anmodningsstandarder

CSV-datasætkonfiguration

Antag, at du vil teste et websted for 100 brugere, der logger ind med forskellige loginoplysninger. Du behøver ikke at optage scriptet 100 gange. Du kan parametrisere scriptet til at indtaste forskellige loginoplysninger. Disse loginoplysninger (f.eks. brugernavn og adgangskode) kan gemmes i en tekstfil. JMeter har et element, der giver dig mulighed for at læse forskellige parametre fra den tekstfil. Det er "CSV Data Set Config", som bruges til at læse linjer fra en fil og opdele dem i variabler.

JMeter testplantræ med CSV-datasætkonfiguration valgt under en login-controller sammen med HTTP-anmodningsstandarder

Dette er et eksempel på CSV-data. Det er en tekstfil, der indeholder brugernavne og adgangskoder, der bruges til at logge ind på dit målwebsted.

Tekstfilen csv_data.txt indeholder fire kommaseparerede rækker med brugernavn, adgangskode og cookielængdeværdier

HTTP Cookie Manager

Lad os forstå dette med et eksempel.

Du brugte din browser (Firefox, Chrome osv.) for at browse www.google.com.

Du logger ind med dit brugernavn og din adgangskode.

Dit brugernavn og din adgangskode vil blive gemt på din computer som cookies.

Næste gang, når du besøger www.google.com, behøver du ikke at logge ind igen, da din browser bruger dine cookies som brugerdata til at logge ind.

HTTP Cookie Manager har samme funktion som en webbrowser. Hvis du har en HTTP-anmodning, og svaret indeholder en cookie, gemmer Cookie Manager automatisk den cookie og bruger den til alle fremtidige anmodninger til det pågældende websted.

HTTP-anmodningsstandarder

Dette element lader dig indstille standardværdier, som dine HTTP Request-controllere bruger.

For eksempel:

Du sender 100 HTTP-anmodninger til serveren google.com.

Du skal indtaste servernavnet google.com manuelt for alle 100 anmodninger.

I stedet kan du tilføje et enkelt HTTP Request Defaults-element med feltet "Servernavn eller IP" indstillet til google.com, som vist nedenfor.

Panelet HTTP-anmodningsstandarder med google.com som servernavn, port 80 og timeouts for forbindelse og svar

Du behøver ikke at skrive det 100 gange. Dette element vil blive forklaret detaljeret i vejledningen. JMeter Test af ydeevne.

Login Config Element

Login-konfigurationselementet giver dig mulighed for at tilføje eller tilsidesætte brugernavn og adgangskodeindstillinger i samplere.

For eksempel vil du simulere én bruger, der logger ind på webstedet www.facebook.com med et brugernavn og en adgangskode. Du kan bruge Login Config Element til at tilføje denne brugernavn- og adgangskodeindstilling i en brugeranmodning.

Login Config Element-panel med guru99 indtastet som brugernavn og et maskeret adgangskodefelt

Login-konfigurationselementet vs. CSV-datasætkonfigurationen

Login Config Element CSV-datasætkonfiguration
Bruges til at simulere ét brugerlogin Bruges til at simulere flere brugerlogin
Kun egnet til loginparametre (brugernavn og adgangskode) Velegnet til et stort antal parametre

Tilsammen dækker disse to elementer næsten alle legitimationsscenarier, du støder på i præstationstestværktøjer arbejde.

Ofte Stillede Spørgsmål

Det fortæller JMeter hvor lang tid det tager, før alle tråde kører. Ti tråde med en 100-sekunders ramp-up starter med ti sekunders mellemrum. En for kort ramp-up oversvømmer serveren og producerer fejl, som ingen rigtig bruger nogensinde ville forårsage.

Timere indsætter en pause mellem anmodninger, så den simulerede indlæsning minder om rigtig browsing i stedet for en oversvømmelse. Assertions kontrollerer hvert svar og markerer en prøve som mislykket, når statuskoden, teksten eller varigheden ikke stemmer overens med det, du har angivet.

De grupperer og forgrener anmodningerne under dem. En Loop Controller gentager sine underordnede, en If Controller kører dem betinget, og en Transaction Controller rapporterer hele gruppen som ét tidsbestemt trin i resultaterne.

Nej. Listenere som f.eks. View Results Tree bufferer hver prøve og forvrænger de tal, de rapporterer. Kør testen i ikke-GUI-tilstand, skriv resultaterne til en fil, og indlæs derefter filen i en listener, når kørslen er færdig.

Konfigurationselementer og præprocessorer anvendes først, derefter samplerkørsler, derefter postprocessorer, assertions og lyttere. Omfang er også vigtigt: et element placeret på planniveau gælder for alle anmodninger under det.

Det er nyttigt til mønsterregistrering. Når en assistent får vist de langsomste etiketter, fejlklynger og svartidstendenser, viser det sig langt hurtigere end at læse rækker. Bekræft altid resultatet mod de rå prøver, før du handler.

Ja. Den laver kladder Groovy for eksempeltracværdier, opbygning af nyttelast og indstilling af variabler i et JSR223-element. Tjek alle forslag, fordi det ofte rækker ud efter den forældede BeanShell API eller variabler, der JMeter ikke udsætter.

Én trådgruppe og én sampler. Alt andet er valgfrit. I praksis tilføjes en lytter, så resultaterne er synlige, og standardværdier eller en datafil tilføjes, når de samme værdier begynder at gentages på tværs af anmodninger.

Opsummer dette indlæg med: