jmeter processors controllers
Overzicht van pre-processors en controllers in JMeter (deel III):
Volg hier een uitgebreide reeks gratis JMeter-tutorials
Dit artikel helpt gebruikers bij het gebruik van pre-processors, postprocessors en controllers in JMeter. Controllers zijn erg handig omdat ze uw testscenario's maken.
Misschien wilt u verschillende scenario's testen waarin u uw eigen volgorde wilt configureren van een verzoek dat naar een server wordt verzonden om de reactietijd en andere prestatiefactoren te bewaken.
Wat je leert:
- Pre-processors
- Gebruikersparameters
- Sample time-out
- Controllers
- Realtime voorbeeld
- JMeter's opnamesjabloon
- Gevolgtrekking
- Aanbevolen literatuur
Pre-processors
Dit zijn de elementen die worden uitgevoerd voordat een sampler wordt uitgevoerd. U kunt Pre-Processor koppelen aan de sampler waarvoor u enkele wijzigingen in de aanvraag wilt aanbrengen.
Het eenvoudigste van een geval zou kunnen zijn het toevoegen van een 'Sample Timeout' preprocessor met een HTTP-verzoek, zodat dit verzoek slechts voor een bepaalde tijd wordt uitgevoerd. Het zorgt er ook voor dat deze wijziging alleen voor de bovenliggende Sampler wordt gedaan.
Hieronder staan enkele van de Pre-Processor die in JMeter wordt gebruikt:
- Bean Shell Pre-Processor
- HTML-koppelingsparser
- HTTP-URL herschrijven
- JDBC Preprocessor
- Time-out van monster
- Gebruikersparameters
De meest gebruikte worden hieronder uitgelegd met voorbeelden. Je hebt misschien alles nodig in je projecten. Probeer de scenario's met betrekking tot uw project te identificeren en implementeer de scenario's waarmee u realtime prestatiescenario's kunt dekken.
Gebruikersparameters
Gebruikersparameters worden gebruikt om waarden voor de variabelen te definiëren voordat ze in de samplers worden gebruikt. Wanneer JMeter dit Pre-Processor-element uitvoert, slaat het de waarden op in de variabelen waarnaar kan worden verwezen door alle Samplers binnen dezelfde threadgroep.
gratis timesheet-software voor kleine bedrijven
Als u meer threads heeft dan het aantal gebruikers in 'Gebruikersparameters', dan zullen extra threads de waarden opnieuw doorlopen.
Bijvoorbeeld, je hebt 5 gebruikers in je discussiegroep, maar slechts 3 in de pre-processor, dan je 4then een 5ththread zal gebruiken param1 en param2
Sample time-out
Deze pre-processor wordt gebruikt om de time-outduur voor verzoeken te definiëren.
Bijvoorbeeld, als je een sample-tijd van 400 milliseconden hebt gezet, zullen alle verzoeken die meer dan 400 duren, een mislukte reactie krijgen. Zie onderstaande screenshots.
Controllers
Controllers zijn erg belangrijk bij het opstellen van een realtime JMeter-testplan. Het definieert de volgorde waarin de verzoeken naar de server worden verzonden.
Bijvoorbeeld, Als u een webtoepassing wilt testen waarin u één keer wilt inloggen en wilt zoeken, worden de itemkeuzeverzoeken één voor één verzonden voor alle iteraties. Controllers maken het mogelijk door de stroom van verzoeken op de te testen server te beheren.
Hieronder staan de meest gebruikte controllers in JMeter
- Eenvoudige controller
- Modulecontroller
- Eenmalige controller
- Interleave-controller
- Loop Controller
- Als Controller
- Voor elke controller
- Opnamecontroller en etc.,
Eenvoudige controller
De eenvoudige controller heeft geen specifieke functie. Het is gewoon een soort container waarin u uw soortgelijke verzoeken kunt bewaren om uw testplan begrijpelijk te maken.
Loop Controller
Als je wilt dat een specifiek verzoek meer iteraties uitvoert dan is gespecificeerd in Thread Group, kun je ze onder Loop Controller plaatsen en het aantal lussen invoeren in controllerinstellingen.
Voorbeeld: Als je een discussiegroep hebt met 1 gebruiker en 3 iteraties, dan worden al je verzoeken onder deze groep 3 keer uitgevoerd. Als je nu twee HTTP-samplers hebt onder een luscontroller met lustelling 2, worden beide samplers 1 * 3 * 2 = 6 keer uitgevoerd.
Zie de onderstaande screenshots die het verder uitleggen
Eenmalige controller
Deze controller wordt gebruikt als u een specifiek verzoek slechts één keer wilt uitvoeren, zelfs als u meerdere threads in de threadgroep heeft. Het eenvoudigste voorbeeld dat kan worden overwogen, is 'De startpagina van een website ophalen' of 'Inloggen op een webapplicatie'. Real Time scenario zou willen dat het een keer gebeurt en dat andere verzoeken zoals zoeken of bewerken / verwijderen van iets meerdere keren gebeuren.
Een verzoek dat slechts één keer moet worden uitgevoerd, kan onder Once Only Controller worden geplaatst. Raadpleeg de onderstaande schermafbeelding voor uw referentie. De instellingen van eenmalig controller omzeilen de instellingen van de bovenliggende threadgroep.
Opname controller
Net als Simple Controller wijzigt Recording Controller geen enkele reeks verzoeken die naar de server worden verzonden. Het wordt gebruikt met HTTP (S) Script Recorder. Alle verzoeken die zijn opgenomen met dit niet-testelement, worden opgeslagen onder de opnamecontroller.
U moet de doelcontroller specificeren om de opgenomen verzoeken op de server op te slaan.
Opnamecontroller en HTTP ('s) scriptrecorder komen in beeld wanneer testers niet de informatie hebben over de verzoek-URL's en parameters. Ze kunnen eenvoudig alle verzoeken die op hun servers terechtkomen, opnemen en vastleggen. Dit werkt zowel voor mobiele als webprojecten.
Doorvoercontroller
Deze controller wordt ook gebruikt om de uitvoeringsstroom te regelen. Zoals te zien is in de onderstaande clip, is deze controller verder onderverdeeld in twee delen:
Percentage uitvoering Deze selectie zorgt ervoor dat Jmeter slechts een bepaald percentage van het totale aantal iteraties uitvoert voor Samplers die onder deze controller zijn geplaatst. U kunt ook het selectievakje “Per gebruiker” aanvinken om dit op gebruikersniveau te regelen.
Bijvoorbeeld, Thread Group is geconfigureerd om 10 gebruikers te hebben en het aantal lussen is 5. Daarom zijn de totale iteraties 50. Als% uitvoering is ingesteld op 50%, dan maken alle samplers onder de Throughput Controller slechts 25 iteraties (50% van 50).
Totaal aantal uitvoeringen - Hierdoor kunnen gebruikers het aantal iteraties rechtstreeks specificeren voor de samplers onder deze controller.
Interleave-controller
Met deze controller kunt u de reikwijdte van uw prestatietests vergroten door de volgorde op n aantal manieren te wijzigen, zodat u de belasting van de server kunt testen wanneer toepassingen verzoeken met verschillende reeksen binnenkomen. Interleave Controller maakt alternatieve selecties met de samplers eronder.
Als er andere controllers zoals Simple Controller onder dit blok worden gehouden, geeft de interleave-controller het recht om voor elke iteratie één sampler uit een container te selecteren. Overweeg het onderstaande testplan om het verder uit te leggen.
Dus Jmeter zal voor elke iteratie afwisselend tussen de controllers herhalen. Daarom wordt de volgorde hieronder vermeld
Request1 -> Request3 -> Request 5 - Request2 -> Request4 -> Request6
Zie de onderstaande JMeter-resultaten met het aantal threads = 2 en het aantal lussen = 2.
converteer youtube naar mp4 mac gratis online
In het bovenstaande voorbeeld is Jmeter Interleaving met de volgende lus / iteratie. Er zijn instellingen in Interleave Controller waarmee JMeter bij elke nieuwe thread alternatieve verzoeken kan verzenden.
Zie de resultaten hieronder. Dit is handig in scenario's waarin u sequentiële of gelijktijdige load-hitting servers wilt met een verschillende volgorde van de aanvraag van dezelfde machine.
Willekeurige controller
Het werkt bijna als een Interleave-controller, maar kiest de samplers niet op volgorde. Het selecteert gewoon de subcontrollers en de samplers erin op willekeurige basis.
Als Controller
Als Controller op een vergelijkbare manier werkt, wordt een IF-uitdrukking in elke programmeertaal behandeld. De voorwaarde wordt eerst gevalideerd en vervolgens worden de componenten onder deze container uitgevoerd als de voorwaarde WAAR is, anders worden de elementen buiten de IF-controller uitgevoerd.
Voorbeeld We gaan verder met een van de eerdere voorbeelden met Interleave Controller, nu is een van de twee Interleave-controllers onder de IF-controller en de voorwaarde '$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Een waarde definiëren en toewijzen aan COUNT-variabele.
Conditie definiëren in Als Controller instellingen. Jmeter zal deze voorwaarde valideren en indien TRUE, de blokken onder deze container uitvoeren.
Zoals u in het onderstaande testplan kunt zien, worden alleen Request3, Request4 en Request5 uitgevoerd in het geval IF Condition wordt geëvalueerd als Vals
Terwijl controllers
Deze controller voert de componenten eronder uit totdat de conditie onwaar wordt.
Bijvoorbeeld, zeg dat we een conditie hebben while ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Configureer het configuratie-element “Teller” om te beginnen met 1 en vervolgens te verhogen bij elke iteratie. Zie hieronder voor meer uitleg:
We zullen de rest van de controllers bespreken in onze videozelfstudies.
Realtime voorbeeld
Laten we eens kijken naar een scenario waarin het testteam de URL's en parameters niet kent van alle verzoeken die de te testen server raken. Om de server te laden, moeten ze de verzoeken opnemen en vervolgens de belasting opeenvolgend of gelijktijdig moduleren en er scenario's van maken om de prestatietests uit te voeren.
Stappen
verschil tussen whitebox- en blackbox-testen
- Voeg een sjabloon toe in Jmeter voor Recording Controller
- Stel de proxy in uw browser in en kies dezelfde poort in HTTP (s) Script Recorder
- Noteer de verzoeken
- Wijzig het testplan en verhoog de belasting
- Groepeer de transacties dienovereenkomstig
- Probeer verschillende combinaties van verzoeken
JMeter's opnamesjabloon
JMeter heeft ook een aantal voorgedefinieerde sjablonen. Selecteer de optie 'Sjabloon' in het menu Bestand. Nadat u de sjabloon hebt geselecteerd, kiest u de optie 'Opname' in het venster dat wordt geopend en klikt u op Maken.
Zodra u deze opnamesjabloon selecteert, ziet u dat enkele componenten al zijn toegevoegd aan het testplan.
- HTTP (s) Script Recorder onder Work Bench
- Standaardinstellingen voor HTTP-aanvragen en HTTP-cookiebeheer
- Opnamecontroller onder Thread Group.
U kunt ofwel proxy-instellingen in uw browser doen om met de JMeter-proxyserver te praten of CHROME Extension Blazemeter gebruiken om de verzoeken op te nemen en vervolgens het. jmx-bestand naar Jmeter. Er zijn vele andere extensies om het script op te nemen en vervolgens naar JMeter te exporteren. BADBOY-tool werkt ook goed met Jmeter voor het opnemen van zowel web- als mobiele hits.
Klik op. jmx optie om het opgenomen verzoek naar Jmeter te exporteren. Open nu vanuit Jmeter het. jmx-bestand en bekijk de verzoeken en de parameters die aan elk verzoek zijn gekoppeld.
Gevolgtrekking
Inmiddels wordt aangenomen dat jullie allemaal goed vertrouwd moeten zijn met de basislogica van JMeter, hoe het belasting simuleert, hoe je met verschillende soorten samplers speelt, hoe je de uitvoeringsstroom bestuurt met behulp van Controller en het gebruik van variabelen en functies om de lussen door de iteraties te laten lopen. Dit is zeker niet het einde van de reeks tutorials over JMeter.
Er zijn veel videozelfstudies te volgen, die testers met meer handen zal begeleiden bij verschillende scenario's in Jmeter en hoe elke JMeter-component op de beste manier kan worden gebruikt.
Bekijk hier de volledige lijst met videozelfstudies van JMeter
Deel uw opmerkingen of vragen met ons.
Aanbevolen literatuur
- Jmeter Controllers Deel 1
- Jmeter Controllers Deel 2
- Hoe JMeter-correlatie met voorbeeld te bereiken
- Werken met HTTP-verzoeken in JMeter
- Werken met FTP-verzoek in JMeter
- Postprocessor gebruiken in JMeter (Extractor voor reguliere expressie)
- Top 5 JMeter-plug-ins en hoe ze te gebruiken (met voorbeelden)
- JMeter Timers: Constant, BeanShell en Guassian Random Timer