Kontroller i JMeter: Loop, Simple, Transaction, Module, Random

Innehållsförteckning:

Anonim

Vad är Logic Controller?

Logic Controllers låter dig definiera ordningen på bearbetningsförfrågan i en tråd. Det låter dig styra "när" för att skicka en användarförfrågan till en webbserver. Du kan till exempel använda slumpmässiga kontroller för att skicka HTTP-förfrågningar till servern slumpmässigt

Logic Controllers bestämmer i vilken ordning användarförfrågan körs.

Några vanliga Logic-kontroller är nedan:

Inspelningskontroll:

JMeter kan spela in dina teststeg; en inspelningskontroll är en platshållare för att lagra dessa inspelningssteg.

Enkel styrenhet:

Simple Controller är bara en behållare för användarförfrågan.

Loop Controller:

Loop Controller gör att användarförfrågan körs ett visst antal gånger eller körs för alltid som visas i figuren:

Slumpmässig styrenhet:

Random Controller gör att alla användarförfrågningar körs i slumpmässig ordning under varje loopperiod.

Till exempel har du tre användarförfrågningar till webbplatsen http://www.google.com i följande ordning:

  1. HTTP-begäran
  2. FTP-begäran
  3. JDBC-begäran

Dessa 3 förfrågningar ska köras fem gånger. Totalt 15 användarförfrågningar kommer att skickas till Google-servern av JMeter.

I sekventiell ordning skickas förfrågningar sekventiellt i följande ordning:

HTTP-begäran -> FTP-begäran-> JDBC-begäran

för varje slinga.

I slumpmässig ordning skickas förfrågningar som slumpmässigt,

FTP-begäran -> HTTP-begäran-> JDBC-begäran

Eller

JDBC-begäran -> FTP-begäran-> HTTP-begäran

För varje slinga.

Modulstyrenhet:

Målet med modulkontrollern är att lägga till modularitet till JMeter.

Den allmänna idén är att webbapplikationer består av små funktioner (t.ex. inloggning, skapa konto, avloggning ...). Denna funktionalitet kan lagras i Simple Controller som "moduler". Module Controller väljer vilken modul som ska köras.

Tänk på följande scenario -

Du vill simulera:

  • 50 användare loggar ut ,
  • 100 användare loggar in
  • 30 användare söker på www.google.com

Du kan använda JMeter för att skapa tre moduler. Varje modul simulerar varje användaraktivitet: Inloggning, Logga ut och Sök.

Modulstyrenheten väljer vilken modul som ska köras.

Andra viktiga styrenheter:

  • Interleave Controller: plockar upp och gör att en av användarförfrågningar körs i varje tråd i tråden.
  • Runtime Controller: styr hur länge barnen får springa.

Om du till exempel har angett Runtime Controller 10 sekunder, kör JMeter ditt test i 10 sekunder.

  • Transaktionskontroll : mäter den totala tiden det tar att avsluta ett testkörning
  • Include Controller: är utformad för att använda en extern testplan. Denna kontroller låter dig använda flera testplaner i JMeter. Se detaljer i JMeter Performance Testing.

Loop Controller Exempel

Det här avsnittet visar dig steg-för-steg-instruktion för att lägga till Loop Controller- uppsättning till din nuvarande prestandatestplan.

Loop Controller gör att samplarna körs ett visst antal gånger, förutom det loopvärde som du angav för trådgruppen. Till exempel om du

  • Lägg till en HTTP-begäran till en loopkontroller med ett loopantal 50
  • Konfigurera trådgruppens loopantal till 2
  • Sedan skickar JMeter totalt 50 * 2 = 100 HTTP-begäranden.

Detta är färdplanen för detta exempel:

Steg 1) Konfigurera trådgrupp

Vi återanvänder steg 1, 2 i JMeter Performance Testing tutorial.

  1. Lägg till trådgrupp

Högerklicka på testplanen och lägg till en ny trådgrupp: Lägg till -> Trådar (användare) -> Trådgrupp

Men i trådgruppens kontrollpanel anger du trådegenskaper enligt följande:

Det kommer att göra en användarförfrågan till webbservern google.com och köra den två gånger.

  1. Lägg till JMeter-element

Lägg till HTTP-förfrågan som standard till www.google.com.

  1. Lägga till loopkontroller

Högerklick trådgrupp -> Logic Controller -> Loop Controller

Steg 2) Konfigurera loopkontroller

Lägg till värde 50 i Loop Count-fältet enligt figuren nedan. Det kommer att få en användarförfrågan till webbservern google.com att köra den 50 gånger, förutom slingvärdet = 2, som du angav för trådgruppen ovan. Så JMeter skickar totalt 2 * 50 = 100 HTTP-begäranden.

Högerklicka på Loop Controller, Lägg till -> Sampler -> HTTP-begäran

Steg 3) Lägg till vyresultat i tabell

Vi återanvänder steg 2 i timer för att lägga till visningsresultat i tabell

Så testplanen visas i bilden nedan

Steg 4) Kör ditt test

Returnera nu Visa resultat i tabell, klicka på Start-knappen i menyraden (Ctrl + R) för att köra ett test

Som visas i figuren nedan simulerar JMeter en användarförfrågan, som skickas 100 gånger, till webbservern http://www.google.com/. Testet stoppas efter att en användarförfrågan har skickats in 100 gånger.

Felsökning:

  1. Om du möter problemet när du kör ovanstående scenario ... gör följande
  2. Kontrollera om du ansluter till internet via en proxy. Om ja, ta bort proxyen.
  3. Öppna en ny instans av Jmeter
  4. Öppna ControllerTestPlan.jmx i Jmeter
  5. Klicka på trådgrupp -> Visa resultat i tabell
  6. Kör testet