JMeter Elementen en componenten: draadgroep, voorbeeldprogramma's

โšก Slimme samenvatting

JMeter Elementen vormen de bouwstenen van elk testplan: Thread Groups creรซren virtuele gebruikers, Samplers versturen de verzoeken, Listeners tonen de resultaten en Configuration Elements leveren de standaardwaarden en gegevens die deze verzoeken nodig hebben.

  • ๐Ÿ”˜ Discussiegroep: Elke thread vertegenwoordigt รฉรฉn virtuele gebruiker die de te testen applicatie aanstuurt.
  • โ˜‘๏ธ Monsternemers: Bepaal het protocol van het verzoek: FTP, HTTP, JDBC, SMTP en meer.
  • โœ… Luisteraars: Geef de resultaten weer als een grafiek, een boomstructuur, een tabel of een logbestand.
  • ๐Ÿงช Configuratie-elementen: Stel standaardwaarden en variabelen in die de samplers gedurende de hele test hergebruiken.
  • ๏ธ Datagestuurde runs: CSV-datasetconfiguratie geeft elke gesimuleerde gebruiker andere inloggegevens.
  • โšก Moderne equivalenten: De BSF Sampler is niet langer beschikbaar; de huidige releases gebruiken scripts via JSR223 en Groovy.

JMeter Elementen: Threadgroep, Samplers, Listeners en Configuratie-elementen

Waar zit Element in? JMeter?

De verschillende componenten van JMeter worden Elementen genoemd. Elk Element is ontworpen voor een specifiek doel.

De onderstaande figuur geeft enkele veel voorkomende elementen weer JMeter en laat zien hoe ze onder een draadgroep vallen.

JMeter Elementhiรซrarchiediagram met Thread Group boven Samplers, Logic Controllers, Listeners, Configuration Elements, Assertions, Timers en Processors.

Het bestuderen van alle onderdelen tegelijk leidt al snel tot verwarring en verveling. Hier bespreken we de essentiรซle onderdelen die je moet kennen voordat je kunt beginnen. het testen van in JMeter.

De overige onderdelen zullen worden besproken wanneer ze in de volgende tutorials aan bod komen. De elementen die in deze tutorial worden besproken, staan โ€‹โ€‹hieronder vermeld.

Discussiegroep

Een threadgroep is een verzameling threads. Elke thread vertegenwoordigt รฉรฉn gebruiker die de te testen applicatie gebruikt. In principe simuleert elke thread รฉรฉn echt gebruikersverzoek aan de server.

Met de instellingen voor een threadgroep kunt u het aantal threads voor elke groep instellen.

Als je bijvoorbeeld het aantal threads instelt op 100, JMeter Er worden 100 gebruikersverzoeken naar de te testen server gegenereerd en gesimuleerd, zoals in het onderstaande diagram wordt weergegeven.

Diagram van een JMeter Threadgroep die gebruiker 1 tot en met gebruiker 100 simuleert, waarbij elke gebruiker een verzoek naar de te testen applicatie stuurt.

Het paneel 'Thread Group' heeft ook een opstartperiode, waardoor de threads geleidelijk aan worden gestart in plaats van dat ze voor elke gebruiker tegelijk beschikbaar zijn.

samplers

Zoals we al weten, JMeter ondersteunt het testen van HTTP, FTP, JDBC en vele andere protocollen.

We weten ook dat threadgroepen gebruikersverzoeken aan de server simuleren.

Maar hoe weet een threadgroep welk type verzoek (HTTP, FTP, enzovoort) het moet doen?

Het antwoord is: Samplers.

Het verzoek van de gebruiker kan een FTP-verzoek, een HTTP-verzoek, een JDBC-verzoek, enzovoort zijn. De onderstaande afbeelding toont de voorbeelden die in deze handleiding worden behandeld.

Boomdiagram met lijst JMeter Samplers: FTP-verzoek, HTTP-verzoek, JDBC-verzoek, BSF-sampler, toegangslogboeksampler en SMTP-sampler

FTP-verzoek

Stel je voor dat je de prestaties van een FTP-server wilt testen. Je kunt hiervoor een FTP Request sampler gebruiken. JMeter om deze taak te doen. Met deze controller kunt u een FTP-โ€˜downloadbestandโ€™- of โ€˜uploadbestandโ€™-verzoek naar een FTP-server sturen.

Schema weergegeven: JMeter Een FTP-verzoek verzenden naar een FTP-server om een โ€‹โ€‹bestand te uploaden of te downloaden.

Als u bijvoorbeeld een bestand โ€œTest.txtโ€ wilt downloaden van een FTP-server die wordt getest, moet u enkele parameters configureren in JMeter zoals in de onderstaande afbeelding.

FTP-aanvraagvoorbeeldpaneel met ftp.example.com als server, poort 21, Test.txt als extern bestand en anonieme aanmelding.

Het paneel stelt de server in op ftp.example.com, poort 21, het externe bestand Test.txt en de get(RETR)-optie, dus JMeter Verstuurt een FTP-commando naar die server en downloadt het bestand.

HTTP-verzoek

Met deze sampler kunt u een HTTP/HTTPS-verzoek naar een webserver sturen.

Beschouw het onderstaande voorbeeld. JMeter verzendt een HTTP-verzoek naar de Google De website haalt HTML-bestanden of afbeeldingen daarvan op.

Diagram van JMeter een HTTP-verzoek verzenden naar Google Websites en het ontvangen van HTML en afbeeldingen in ruil daarvoor.

In de tutorial JMeter Performance TestingWe zullen deze HTTP-aanvraag nader toelichten. Het is de meest gebruikte sampler. testen van webapplicaties werk is afhankelijk van.

JDBC-verzoek

Met deze voorbeeldcode kunt u een database uitvoeren. prestatie testen. Het verzendt een JDBC-verzoek (een SQL-query) naar een database.

Diagram van JMeter Het versturen van een SQL-query naar een databaseserver en het ontvangen van het resultaat.

Een databaseserver heeft bijvoorbeeld een veld 'test_result' opgeslagen in een tabel met de naam 'test_tbl'. U wilt deze gegevens opvragen bij de databaseserver, dus u kunt dit als volgt configureren: JMeter om een SQL Een query naar deze server sturen om de gegevens op te halen.

JDBC-aanvraagpaneel met querytype ingesteld op 'Select Statement' en de query 'select test_result from test_tbl where id = 1'

Het querytype is hier een SELECT-instructie en de query luidt als volgt: select test_result from test_tbl where id = 1Een JDBC-verbindingsconfiguratie-element moet de pool opgeven waarnaar het veld Variabelenaam verwijst.

BSF-monsternemer

Met deze sampler kunt u een sampler schrijven met behulp van een BSF scripttaal.

Hier is een voorbeeld van een BSF-sampler in JMeter, met velden voor de scripttaal, de parameters die aan het script worden doorgegeven en ofwel een inline script of een extern scriptbestand.

BSF Sampler-paneel met velden voor scripttaal, parameters, een extern scriptbestand en de inline scriptinhoud.

Afschrijvingsbericht: De BSF-elementenfamilie is afgeschaft ten gunste van de JSR223-elementen en komt niet langer voor in de JMeter componentreferentieGebruik in de huidige versies de JSR223-sampler with GroovyDit compileert het script en presteert veel beter onder belasting. Het bovenstaande paneel is behouden omdat oudere testplannen het nog steeds bevatten.

Toegang tot logboekvoorbeeld

Met deze sampler kunt u toegangslogboeken lezen en HTTP-verzoeken genereren. De logboekvermeldingen kunnen afbeeldingen, HTML, CSS enzovoort bevatten.

Het paneel van Access Log Sampler toont de standaardvelden voor server en poort, de plugin-klasse TCLogParser en de locatie van het logbestand.

Het veld Parser heeft standaard de waarde org.apache.jmeter.protocol.http.util.accesslog.TCLogParseren het veld 'Locatie van het logbestand' wijst JMeter bij het logboek dat je opnieuw wilt afspelen.

SMTP-sampler

Als je een mailserver wilt testen, kun je de SMTP Sampler gebruiken. Deze sampler wordt gebruikt om e-mailberichten te verzenden via het SMTP-protocol.

SMTP Sampler-paneel met serverinstellingen, e-mailadressen, authenticatie- en beveiligingsopties en berichtinstellingen.

Het paneel groepeert serverinstellingen, e-mailadressen, authenticatie- en berichtinstellingen en toont de standaardpoorten naast het veld 'Poort': SMTP 25, SSL 465 en StartTLS 587.

luisteraars

Luisteraars tonen de resultaten van de testuitvoering. Ze kunnen de resultaten in verschillende formaten presenteren, zoals een boomstructuur, een tabel, een grafiek of een logbestand.

Diagram dat laat zien hoe een Listener de resultaten weergeeft in grafiek-, boom-, tabel- en rapportweergaven.

De Grafiekresultaten De listener toont de reactietijden van de server in een grafiek, met daaronder het aantal samples, het gemiddelde, de standaardafwijking, de doorvoer en de mediaan.

Grafiekresultaten van de listener die responstijden plot met gegevens, gemiddelde, mediaan, standaardafwijking en doorvoerreeksen.

Resultatenboom bekijken Toont het resultaat van elk gebruikersverzoek in een standaard HTML-formaat, met een tabblad 'Sampler result' dat de laadtijd, latentie, grootte en responsstatuscode rapporteert.

De resultatenboomweergave toont een lijst met verzoeken aan de linkerkant en het tabblad met samplerresultaten waarop responscode 200 wordt weergegeven.

Bekijk de resultaten in de tabel. Toont een samenvatting van het testresultaat in tabelvorm, รฉรฉn rij per monster.

Bekijk de resultaten in een tabel met kolommen voor het samplenummer, de starttijd, de threadnaam, het label en de sampletijd.

Een logbestand registreert dezelfde samenvatting als tekst, en dat is wat je bewaart wanneer een test wordt uitgevoerd zonder de grafische gebruikersinterface.

Een geaggregeerde logsamenvatting met labels van de samplers, inclusief het aantal samples, het gemiddelde en een totaalrij.

Beste oefening: GUI-listeners verbruiken geheugen en vertekenen de resultaten. Voer daarom echte belastingstests uit in de modus zonder grafische gebruikersinterface en open het opgeslagen resultatenbestand pas daarna.

Configuratie-elementen

Configuratie-elementen stellen standaardwaarden en variabelen in voor later gebruik door samplers.

De onderstaande afbeelding toont enkele veelgebruikte configuratie-elementen JMeter.

Boomdiagram van JMeter Configuratie-elementen: CSV-datasetconfiguratie, HTTP-cookiebeheerder, inlogconfiguratie-element, standaardinstellingen voor HTTP-verzoeken en standaardinstellingen voor FTP-verzoeken.

CSV-gegevenssetconfiguratie

Stel, u wilt een website testen met 100 gebruikers die inloggen met verschillende inloggegevens. U hoeft het script niet 100 keer opnieuw op te nemen. U kunt het script parameteriseren om verschillende inloggegevens in te voeren. Deze inloggegevens (bijvoorbeeld gebruikersnaam en wachtwoord) kunnen worden opgeslagen in een tekstbestand. JMeter Het bevat een element waarmee je verschillende parameters uit dat tekstbestand kunt lezen. Dit element heet "CSV Data Set Config" en wordt gebruikt om regels uit een bestand te lezen en deze in variabelen op te splitsen.

JMeter Testplanstructuur met CSV-gegevenssetconfiguratie geselecteerd onder een inlogcontroller naast HTTP-aanvraagstandaarden.

Dit is een voorbeeld van CSV-gegevens. Het is een tekstbestand dat de gebruikersnamen en wachtwoorden bevat die worden gebruikt om in te loggen op uw doelwebsite.

Tekstbestand csv_data.txt met vier door komma's gescheiden rijen met waarden voor gebruikersnaam, wachtwoord en cookielengte.

HTTP-cookiebeheer

Laten we dit met een voorbeeld begrijpen.

U heeft uw browser gebruikt (Firefox, Chrome enzovoort) om te browsen www.google.com.

Je logt in met je gebruikersnaam en wachtwoord.

Uw gebruikersnaam en wachtwoord worden als cookies op uw computer opgeslagen.

Volgende keer, wanneer u op bezoek komt www.google.comJe hoeft niet opnieuw in te loggen, want je browser gebruikt je cookies als gebruikersgegevens om in te loggen.

De HTTP Cookie Manager heeft dezelfde functionaliteit als een webbrowser. Als u een HTTP-verzoek doet en het antwoord een cookie bevat, slaat de Cookie Manager die cookie automatisch op en gebruikt deze voor alle toekomstige verzoeken aan die specifieke website.

Standaardinstellingen voor HTTP-aanvragen

Met dit element kunt u standaardwaarden instellen die uw HTTP Request-controllers gebruiken.

Bijvoorbeeld

Je verstuurt 100 HTTP-verzoeken naar de server google.com.

Je zou de servernaam google.com handmatig moeten invoeren voor alle 100 verzoeken.

In plaats daarvan kunt u een enkel HTTP Request Defaults-element toevoegen met het veld "Servernaam of IP-adres" ingesteld op google.com, zoals hieronder weergegeven.

Paneel HTTP-aanvraagstandaarden met google.com als servernaam, poort 80 en verbindings- en reactietijdslimieten.

Je hoeft het niet honderd keer te typen. Dit onderdeel wordt in detail uitgelegd in de handleiding. JMeter Performance Testing.

Login configuratie-element

Met het Login Config Element kunt u gebruikersnaam- en wachtwoordinstellingen in samplers toevoegen of overschrijven.

U wilt bijvoorbeeld simuleren dat รฉรฉn gebruiker inlogt op de website. www.facebook.com met een gebruikersnaam en wachtwoord. Je kunt het Login Config Element gebruiken om deze gebruikersnaam- en wachtwoordinstelling toe te voegen aan een gebruikersverzoek.

Inlogconfiguratiepaneel met guru99 als gebruikersnaam en een gemaskeerd wachtwoordveld.

Het inlogconfiguratie-element versus de CSV-datasetconfiguratie

Login configuratie-element CSV-gegevenssetconfiguratie
Wordt gebruikt om de aanmelding van รฉรฉn gebruiker te simuleren Wordt gebruikt om meerdere gebruikersaanmeldingen te simuleren.
Alleen geschikt voor inloggegevens (gebruikersnaam en wachtwoord). Geschikt voor een groot aantal parameters

Samen dekken deze twee elementen vrijwel elk scenario met betrekking tot referenties dat je tegenkomt. prestatietestinstrumenten werken.

Veelgestelde vragen

Het zegt JMeter Hoe lang duurt het voordat alle threads actief zijn? Tien threads met een opstarttijd van 100 seconden starten met tussenpozen van tien seconden. Een te korte opstarttijd overbelast de server en veroorzaakt storingen die een echte gebruiker nooit zou veroorzaken.

Timers zorgen voor een pauze tussen verzoeken, zodat de gesimuleerde belasting lijkt op echt browsen in plaats van een stortvloed aan verzoeken. Asserties controleren elk antwoord en markeren een sample als mislukt wanneer de statuscode, tekst of duur niet overeenkomt met wat u hebt opgegeven.

Ze groeperen en vertakken de verzoeken eronder. Een Loop Controller herhaalt zijn onderliggende processen, een If Controller voert ze voorwaardelijk uit en een Transaction Controller rapporteert de hele groep als รฉรฉn getimede stap in de resultaten.

Nee. Luisteraars zoals View Results Tree bufferen elk sample en vertekenen de gerapporteerde getallen. Voer de test uit in de modus zonder grafische gebruikersinterface, schrijf de resultaten naar een bestand en laad dat bestand vervolgens in een luisteraar zodra de test is voltooid.

Configuratie-elementen en preprocessors worden eerst toegepast, daarna draait de sampler, en vervolgens de postprocessors, beweringen en listeners. Ook de scope is belangrijk: een element op planniveau is van toepassing op elk verzoek daaronder.

Het is handig voor het herkennen van patronen. Door een resultatenbestand aan een assistent te geven, worden de traagste labels, foutclusters en responstijdtrends veel sneller zichtbaar dan wanneer je de afzonderlijke regels leest. Controleer de bevindingen altijd aan de hand van de ruwe gegevens voordat je actie onderneemt.

Ja. Het is een concept. Groovy voor extracHet instellen van waarden, het bouwen van payloads en het instellen van variabelen binnen een JSR223-element. Controleer elke suggestie, want deze maakt vaak gebruik van de verouderde BeanShell API of variabelen die JMeter wordt niet blootgesteld.

Eรฉn threadgroep en รฉรฉn sampler. Al het andere is optioneel. In de praktijk wordt een listener toegevoegd zodat de resultaten zichtbaar zijn, en worden standaardwaarden of een gegevensbestand toegevoegd zodra dezelfde waarden zich herhalen bij verschillende verzoeken.

Vat dit bericht samen met: