jmeter processors controllers
Oversikt over forprosessorer og kontrollere i JMeter (del III):
=> Følg omfattende serier med gratis JMeter-opplæring her
Denne artikkelen vil veilede brukere gjennom bruk av forprosessorer, etterprosessorer og kontrollere i JMeter. Kontrollere er veldig nyttige når de lager testscenariene.
Det kan være lurt å teste forskjellige scenarier der du vil konfigurere din egen sekvens av en forespørsel som sendes til en server for å overvåke responstid og andre ytelsesfaktorer.
Hva du vil lære:
- Forprosessorer
- Brukerparametere
- Eksempel på tidsavbrudd
- Kontrollere
- Eksempel på sanntid
- JMeters opptaksmal
- Konklusjon
- Anbefalt lesing
Forprosessorer
Dette er elementene som utføres før en sampler utføres. Du kan feste forprosessor med prøvetakeren som du vil gjøre noen endringer i forespørselen for.
Den enkleste saken kan være å legge til 'Sample Timeout' -forprosessoren med en HTTP-forespørsel, slik at denne forespørselen vil kjøre i bare definert tid. Det sørger også for at denne modifiseringen bare gjøres for den overordnede sampleren.
Nedenfor er noen av forprosessoren som brukes i JMeter:
- Bean Shell forprosessor
- HTML Link Parser
- HTTP URL Re-Writing
- JDBC forprosessor
- Eksempel på tidsavbrudd
- Brukerparametere
De mest brukte er forklart nedenfor med eksempler. Du trenger kanskje ikke alt i prosjektene dine. Prøv å identifisere scenariene knyttet til prosjektet ditt og implementer de som hjelper deg med å dekke ytelsesscenarier i sanntid.
Brukerparametere
Brukerparametere brukes til å definere verdier for variablene før de brukes i samplerne. Når JMeter kjører dette pre-prosessorelementet, lagrer det verdiene i variablene som det kan refereres til av alle samplere i samme trådgruppe.
lastbalanserende ruter to internettforbindelser
Hvis du har flere tråder enn antall brukere i 'Brukerparametere', vil ekstra tråder gjentas gjennom verdiene igjen.
For eksempel, du har 5 brukere i trådgruppen din, men bare 3 i pre-prosessor, deretter dine 4thog en 5thtråden vil bruke param1 og param2 .
Eksempel på tidsavbrudd
Denne forprosessoren brukes til å definere tidsavbruddet for forespørsler.
For eksempel, Hvis du har satt en prøvetid på 400 millisekunder, vil alle forespørsler som tar tid> 400 ha et mislykket svar. Se skjermbilder nedenfor.
Kontrollere
Kontrollere er veldig viktige for å bygge en JMeter-testplan i sanntid. Den definerer sekvensen som forespørslene sendes til serveren.
For eksempel, Hvis du vil teste et webapplikasjon der du vil at innlogging skal skje en gang og søke, ber varevalg om å gå en etter en for alle iterasjoner. Kontrollere gjør det mulig ved å styre strømmen av forespørsel som går på serveren som testes.
Nedenfor er de mest brukte kontrollerne i JMeter
- Enkel kontroller
- Modulkontroller
- Once Only Controller
- Interleave Controller
- Loop Controller
- Hvis kontrolleren
- For hver kontroller
- Opptakskontroll og etc.,
Enkel kontroller
Den enkle kontrolleren utfører ingen spesiell funksjon. Det er bare en slags container der du kan beholde lignende forespørsler for å gjøre testplanen din lett forståelig.
Loop Controller
Hvis du vil ha en spesifikk forespørsel om å kjøre flere iterasjoner enn det som er spesifisert i trådgruppen, kan du legge dem under Loop Controller og angi loop count i kontrollerinnstillingene.
Eksempel: Hvis du har en trådgruppe med 1 bruker og 3 iterasjoner, vil alle dine forespørsler under denne gruppen kjøre tre ganger. Nå, hvis du har to HTTP-samplere under en sløyfekontroller med sløyfetelling 2, vil begge disse samplerne kjøre 1 * 3 * 2 = 6 ganger.
Se skjermbildene nedenfor som forklarer det nærmere
Once Only Controller
Denne kontrolleren brukes når du bare vil kjøre en spesifikk forespørsel en gang, selv om du har flere tråder i trådgruppen. Det enkleste eksemplet som kan betraktes er 'Henter hjemmesiden til et nettsted' eller 'Logg inn på en webapplikasjon'. Sanntidsscenario vil at det skal skje en gang, og andre forespørsler som å søke eller redigere / slette noe skal skje flere ganger.
Forespørsel som bare skal utføres en gang kan plasseres under Once Only Controller. Se skjermbilde nedenfor for din referanse. Once Only Controller-innstillingene omgår innstillingene for den overordnede trådgruppen.
Opptakskontroller
Akkurat som Simple Controller, endrer ikke Recording Controller noen sekvens av forespørslene som blir sendt til serveren. Den brukes med HTTP (S) Script Recorder. Alle forespørsler som er registrert med dette ikke-testelementet lagres under opptakskontrolleren.
Du må spesifisere målkontrolleren for å lagre de innspilte forespørslene som er gjort på serveren.
Opptakskontrolleren og HTTP (s) skriptopptaker kommer inn i bildet når testere ikke har informasjon om forespørselens URL-er og parametere. De kan bare registrere og fange opp alle forespørslene som treffer serverne deres. Dette fungerer både for mobile så vel som nettprosjekter.
Gjennomstrømningskontroller
Denne kontrolleren brukes også til å kontrollere utførelsesflyten. Som vist i klippet nedenfor, er denne kontrolleren delt inn i to deler:
Prosent utførelse - Dette valget vil gjøre at Jmeter bare utfører en viss prosentandel av totale iterasjoner for samplere plassert under denne kontrolleren. Du kan også merke av for 'Per bruker' for å kontrollere dette på brukernivå.
For eksempel, Trådgruppen er konfigurert til å ha 10 brukere og antall løkker er 5. Derfor er totale iterasjoner 50. Hvis% utførelse er satt til 50%, vil alle samplere under gjennomstrømningskontrolleren bare gjøre 25 iterasjoner (50% av 50).
Totalt antall henrettelser - Dette lar brukerne spesifisere antall iterasjoner direkte for samplerne som finnes under denne kontrolleren.
Interleave Controller
Denne kontrolleren lar deg øke omfanget av ytelsestesting ved å endre sekvensen på flere måter, slik at du kan teste belastningen på serveren når applikasjoner treffer forespørsel med forskjellige sekvenser. Interleave Controller gjør alternative valg med prøvetakerne under den.
I tilfelle det er andre kontrollere som Simple Controller som holdes under denne blokken, gir interleave-kontrolleren privilegiet å velge en sampler hver fra en container for hver iterasjon. For å forklare det nærmere, vurder testplanen nedenfor.
Så Jmeter vil alternere mellom kontrollerne for hver iterasjon. Derfor vil sekvensen bli nevnt nedenfor
Forespørsel1 -> Forespørsel3 -> Forespørsel 5 - Forespørsel2 -> Forespørsel4 -> Forespørsel6
Se JMeter-resultatene nedenfor med antall tråder = 2 og antall løkker = 2.
gratis backup-programvare for ekstern harddisk
I eksemplet ovenfor er Jmeter Interleaving med neste loop / iteration. Det er innstillinger i Interleave Controller som kan få JMeter til å sende alternative forespørsler med hver nye tråd.
Se resultatene nedenfor. Dette er nyttig i scenarier der du vil ha sekvensiell eller samtidig belastning som treffer servere med den forskjellige sekvensen av forespørselen fra samme maskin.
Tilfeldig kontroller
Det fungerer nesten som Interleave-kontrolleren, men plukker ikke samplerne i rekkefølge. Det velger bare underkontrollere og samplere inni dem på tilfeldig basis.
Hvis kontrolleren
Hvis Controller fungerer på en lignende måte, blir et IF-uttrykk behandlet på et hvilket som helst programmeringsspråk. Tilstanden valideres først, og deretter utføres komponentene under denne beholderen hvis tilstanden er SANT, ellers blir elementene utenfor IF-kontrolleren utført.
Eksempel : Fortsetter med et av de tidligere eksemplene som involverer Interleave Controller, har nå en av de to Interleave controller blitt holdt 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
Definere og tildele en verdi til COUNT Variable.
Definere tilstand i Hvis kontrolleren innstillinger. Jmeter vil validere denne tilstanden, og hvis SANT, vil den utføre blokkene under denne beholderen.
Som du kan se nedenfra testplan, vil bare Request3, Request4 og Request5 utføres i tilfelle IF Condition vurderes som Falsk .
Mens kontrollere
Denne kontrolleren utfører komponentene under den til tilstanden blir falsk.
For eksempel, si at vi har en tilstand mens ($ (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.
Konfigurer 'Counter' -konfigurasjonselementet til å starte på 1 og deretter øke ved hver iterasjon. Se nedenfor for mer avklaring:
Vi vil berøre resten av kontrollerne i videoopplæringen.
Eksempel på sanntid
La oss se på et scenario der testteamet ikke kjenner nettadressene og parametrene til all forespørsel som treffer serveren som testes. Nå, for å laste test serveren, trenger de å registrere forespørslene og deretter modulere belastningen sekvensielt eller samtidig og lage scenarier ut av dem for å gjøre ytelsestesting.
Fremgangsmåte
er Java-koblet liste dobbeltkoblet
- Legg til en mal i Jmeter for Recording Controller
- Sett proxyen i nettleseren din, og velg samme port i HTTP (s) Script Recorder
- Registrer forespørslene
- Endre testplanen og øke belastningen
- Gruppere transaksjonene deretter
- Prøv forskjellige kombinasjoner av forespørsel
JMeters opptaksmal
JMeter har også noen forhåndsdefinerte maler. Velg alternativet 'Mal' fra Fil-menyen. Etter at du har valgt malen for å velge 'Opptak' i vinduet som åpnes, og klikk på Opprett.
Så snart du velger denne opptaksmalen, vil du se noen komponenter som allerede er lagt til i testplanen.
- HTTP (s) Script Recorder under Work Bench
- HTTP-forespørselsstandarder og HTTP Cookie Manager
- Opptakskontroller under trådgruppe.
Du kan enten gjøre proxy-innstillinger i nettleseren din for å snakke med JMeter proxy-server, eller bruke CHROME Extension Blazemeter til å registrere forespørslene og deretter eksportere. jmx-fil til Jmeter. Det er mange andre utvidelser for å ta opp skriptet og deretter eksportere det til JMeter. BADBOY-verktøyet fungerer også bra med Jmeter for opptak av både nett- og mobiltreff.
Klikk på. jmx-alternativet for å eksportere den innspilte forespørselen til Jmeter. Nå fra Jmeter, åpne. jmx-filen og se forespørslene og parametrene som er knyttet til hver forespørsel.
Konklusjon
Nå antas det at dere alle må ha blitt veldig kjent med den grunnleggende logikken til JMeter, hvordan den simulerer belastning, hvordan man spiller med forskjellige typer samplere, hvordan man styrer utførelsesflyten med bruk av Controller og bruker variabler og funksjoner for å kjøre løkkene over gjentakelsene. Dette er absolutt ikke slutten på serien med opplæringsprogrammer på JMeter.
Det er mange videoopplæringsprogrammer å følge som vil veilede testere med flere hender på forskjellige scenarier i Jmeter og hvordan hver JMeter-komponent kan brukes på den beste måten.
=> Sjekk den komplette listen over JMeter-videoveiledninger her
Vennligst del dine kommentarer eller spørsmål med oss.
Anbefalt lesing
- Jmeter Controllers Del 1
- Jmeter Controllers Del 2
- Hvordan oppnå JMeter-korrelasjon med eksempel
- Arbeide med HTTP-forespørsler i JMeter
- Arbeide med FTP-forespørsel i JMeter
- Bruk av postprosessor i JMeter (Regular Expression Extractor)
- Topp 5 JMeter-plugins og hvordan du bruker dem (med eksempler)
- JMeter Timers: Constant, BeanShell And Guassian Random Timer