jmeter processors controllers
Översikt över förprocessorer och styrenheter i JMeter (del III):
=> Följ omfattande serie gratis JMeter-självstudier här
Denna artikel skulle vägleda användare genom användning av förprocessorer, efterprocessorer och styrenheter i JMeter. Kontroller är mycket användbara eftersom de gör dina testscenarier.
Du kanske vill testa olika scenarier där du vill konfigurera din egen sekvens av en begäran som skickas till en server för att övervaka responstiden och andra prestandafaktorer.
Vad du kommer att lära dig:
- Förprocessorer
- Användarparametrar
- Exempel på timeout
- Kontroller
- Realtidsexempel
- JMeters inspelningsmall
- Slutsats
- Rekommenderad läsning
Förprocessorer
Det här är de element som körs innan en sampler körs. Du kan bifoga förprocessor med samplaren som du vill göra några ändringar i begäran för.
Det enklaste fallet kan vara att lägga till 'Sample Timeout' -förprocessorn med en HTTP-begäran så att denna begäran bara körs under en definierad tid. Det ser också till att den här modifieringen endast görs för den överordnade samplaren.
Nedan följer några av förprocessorn som används i JMeter:
- Bean Shell förprocessor
- HTML-länkparser
- HTTP URL Re-Writing
- JDBC förprocessor
- Exempel på timeout
- Användarparametrar
De vanligaste används förklaras nedan med exempel. Du kanske eller inte behöver alla i dina projekt. Försök att identifiera scenarierna relaterade till ditt projekt och implementera dem som hjälper dig att täcka realtidsprestationsscenarier.
Användarparametrar
Användarparametrar används för att definiera värden för variablerna innan de används i samplarna. När JMeter kör det här förprocessorelementet lagras det värdena i variablerna som kan refereras av alla samplare inom samma trådgrupp.
lastbalanseringsrouter två internetanslutningar
Om du har fler trådar än antalet användare i “Användarparametrar” kommer extra trådar att återupptas genom värdena.
Till exempel, du har 5 användare i din trådgrupp men bara 3 i förprocessorn, sedan dina 4thoch en 5thtråd kommer att använda param1 och param2 .
Exempel på timeout
Denna förprocessor används för att definiera tidsgränsen för förfrågningar.
Till exempel, om du har lagt ut en provtid på 400 millisekunder kommer alla förfrågningar som tar tid> 400 att misslyckas. Se nedan skärmdumpar.
Kontroller
Styrenheter är mycket viktiga för att bygga en JMeter-testplan i realtid. Den definierar i vilken ordning begäranden skickas till servern.
Till exempel, Om du vill testa en webbapplikation där du vill att inloggningen ska ske en gång och söka, begär artikelval att gå en efter en för alla iterationer. Kontroller gör det möjligt genom att hantera flödet av begäran som går på servern som testas.
Nedan följer de mest använda styrenheterna i JMeter
- Enkel styrenhet
- Modulstyrenhet
- Once Only Controller
- Interleave Controller
- Loop Controller
- Om styrenhet
- För varje styrenhet
- Inspelningskontroll och etc.,
Enkel styrenhet
Den enkla styrenheten utför ingen specifik funktion. Det är bara en typ av container där du kan behålla dina liknande förfrågningar för att göra din testplan lättförståelig.
Loop Controller
Om du vill att någon specifik begäran ska köra fler iterationer än vad som anges i trådgruppen, kan du lägga dem under Loop Controller och ange slingantalet i controllerinställningarna.
Exempel: Om du har en trådgrupp med 1 användare och 3 iterationer kommer alla dina förfrågningar under den här gruppen att köras tre gånger. Nu, om du har två HTTP-sampler under en slingkontroller med slingantal 2, skulle båda dessa samplare köra 1 * 3 * 2 = 6 gånger.
Se nedanstående skärmdumpar som förklarar det ytterligare
Once Only Controller
Denna styrenhet används när du bara vill köra en specifik begäran en gång även om du har flera trådar i trådgruppen. Det enklaste exemplet som kan övervägas är 'Hämta en webbplatshemsida' eller 'Logga in i en webbapplikation'. Realtidsscenarier vill att det ska hända en gång och andra förfrågningar som att söka eller redigera / radera något ska hända flera gånger.
Begäran som ska utföras endast en gång kan placeras under Once Only Controller. Se skärmdump nedan för din referens. Once Only Controller-inställningarna kringgår inställningarna för den överordnade trådgruppen.
Inspelningskontroll
Precis som Simple Controller ändras inte Recording Controller någon sekvens av de förfrågningar som skickas till servern. Den används med HTTP (S) Script Recorder. Alla förfrågningar som spelas in med detta icke-testelement sparas under inspelningskontrollen.
Du måste ange målkontrollen för att spara de inspelade förfrågningarna till servern.
Inspelningsstyrenhet och HTTP (s) skriptinspelare kommer in i bilden när testare inte har information om förfrågnings-URL: er och parametrar. De kan helt enkelt spela in och fånga alla förfrågningar som träffar deras servrar. Detta fungerar både för mobila såväl som webbprojekt.
Genomströmningsregulator
Denna styrenhet används också för att styra exekveringsflödet. Som framgår av klippningen nedan är denna styrenhet ytterligare uppdelad i två delar:
Procent utförande - Detta val gör att Jmeter endast utför en viss procentsats av de totala iterationerna för samplers som placeras under denna kontroller. Du kan också markera kryssrutan 'Per användare' för att kontrollera detta på användarnivå.
Till exempel, Trådgruppen är konfigurerad att ha 10 användare och slingantalet är 5. Därför är de totala iterationerna 50. Om% -exekveringen är inställd på 50%, kommer alla samplers under genomströmningsregulatorn endast att göra 25 iterationer (50% av 50).
Totalt antal avrättningar - Detta låter användare ange antalet iterationer direkt för samplarna som finns under denna kontroller.
Interleave Controller
Denna kontroller låter dig öka omfattningen av din prestandatestning genom att ändra sekvensen på ett antal sätt så att du får testa belastningen på servern när applikationer träffar förfrågan med olika sekvenser. Interleave Controller gör alternativa val med samplarna under den.
Om det finns andra styrenheter som Simple Controller som hålls under detta block, ger interleave controller rätten att välja en sampler vardera från en container för varje iteration. För att förklara det ytterligare, överväg testplanen nedan.
Så, Jmeter kommer att iterera alternativt mellan styrenheterna för varje iteration. Därför kommer sekvensen att nämnas nedan
Request1 -> Request3 -> Request 5 - Request2 -> Request4 -> Request6
Se nedanstående JMeter-resultat med antal trådar = 2 och slingantal = 2.
bästa gratis pc-rengörare och optimizer
I exemplet ovan är Jmeter Interleaving med nästa loop / iteration. Det finns inställningar i Interleave Controller som kan få JMeter att skicka alternativa förfrågningar med varje ny tråd.
Se resultaten nedan. Det här är användbart i scenarier där du vill ha sekventiella eller samtidiga belastningsservrar med olika sekvenser för begäran från samma maskin.
Slumpmässig styrenhet
Det fungerar nästan som Interleave-kontroller men plockar inte samplarna i ordning. Det väljer bara underkontrollerna och samplarna inuti dem på slumpmässig basis.
Om styrenhet
Om Controller fungerar på ett liknande sätt behandlas ett IF-uttryck på vilket programmeringsspråk som helst. Villkoret valideras först och sedan kör komponenterna under denna behållare om villkoret är SANT, annars kommer elementen utanför IF-kontrollen att köras.
Exempel : Fortsätter med ett av de tidigare exemplen som involverar Interleave Controller, nu har en av de två Interleave-kontrollerna hållits under IF Controller and Condition “$ (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
Definiera och tilldela ett värde till COUNT Variable.
Definierar tillstånd i Om styrenhet inställningar. Jmeter kommer att validera detta villkor och om SANT kommer att utföra blocken under denna behållare.
Som du kan se nedan testplanen kommer endast Request3, Request4 och Request5 att köras om IF-tillståndet utvärderas som Falsk .
Medan styrenheter
Denna kontroller kör komponenterna under den tills villkoret blir falskt.
Till exempel, säg att vi har ett tillstånd medan ($ (räkna)<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.
Konfigurera 'Counter' -konfigurationselementet så att det börjar vid 1 och ökas sedan vid varje iteration. Se nedan för mer förtydligande:
Vi kommer att beröra resten av kontrollerna i våra videohandledning.
Realtidsexempel
Låt oss överväga ett scenario där testteamet inte känner till webbadresserna och parametrarna för all begäran som träffar servern som testas. För att ladda testa servern måste de spela in förfrågningarna och sedan modulera belastningen sekventiellt eller samtidigt och skapa scenarier ur dem för att göra prestandatestning.
Steg
lagra objekt i en array-Java
- Lägg till en mall i Jmeter för inspelningskontroll
- Ställ in proxyn i din webbläsare och välj samma port i HTTP (s) Script Recorder
- Spela in förfrågningarna
- Ändra testplanen och öka belastningen
- Gruppera transaktionerna därefter
- Prova olika kombinationer av begäran
JMeters inspelningsmall
JMeter har också en fördefinierad mall. Välj alternativet 'Mall' i Arkiv-menyn. När du har valt mallen för att välja “Inspelning” i fönstret som öppnas och klicka på Skapa.
Så snart du väljer den här inspelningsmallen ser du några komponenter som redan har lagts till i testplanen.
- HTTP (s) Script Recorder under Work Bench
- HTTP-förfrågningsinställningar och HTTP Cookie Manager
- Inspelningsstyrenhet under trådgruppen.
Du kan antingen göra proxyinställningar i din webbläsare för att prata med JMeter proxyserver eller använda CHROME Extension Blazemeter för att spela in förfrågningarna och sedan exportera. jmx-fil till Jmeter. Det finns många andra tillägg för att spela in skriptet och sedan exportera det till JMeter. BADBOY-verktyget fungerar också bra med Jmeter för inspelning av både webb- och mobilträffar.
Klicka på. jmx-alternativ för att exportera den inspelade begäran till Jmeter. Öppna nu från Jmeter. jmx-fil och se förfrågningarna och parametrarna som är kopplade till varje begäran.
Slutsats
Nu antas det att ni alla måste ha bekant er mycket med den grundläggande logiken i JMeter, hur den simulerar belastning, hur man spelar med olika typer av samplers, hur man styr exekveringsflödet med hjälp av Controller och med hjälp av variabler och funktioner för att köra slingorna över iterationerna. Detta är verkligen inte slutet på serien av tutorials om JMeter.
Det finns många självstudier att följa som kommer att vägleda testare med fler händer om olika scenarier i Jmeter och hur varje JMeter-komponent kan användas på bästa sätt.
=> Se den fullständiga listan över JMeter-videohandledning här
Vänligen dela dina kommentarer eller frågor med oss.
Rekommenderad läsning
- Jmeter-styrenheter del 1
- Jmeter-styrenheter del 2
- Hur man uppnår JMeter-korrelation med exempel
- Arbeta med HTTP-begäranden i JMeter
- Arbeta med FTP-begäran i JMeter
- Använda postprocessor i JMeter (Regular Expression Extractor)
- Topp 5 JMeter-plugins och hur man använder dem (med exempel)
- JMeter Timers: Constant, BeanShell och Guassian Random Timer