Styrenheter i JMeter: Slinga, Enkel, Transaktion, Modul, Slumpmässig

Vad är den logiska styrenheten?

Logic Controllers låter dig definiera ordningen för bearbetning av begäran i en tråd. Det låter dig styra "när" du vill skicka en användarförfrågan till en webbserver. Till exempel kan du använda Random Controllers för att skicka HTTP-förfrågningar till servern slumpmässigt

Logikkontroller bestämmer ordningen där användarförfrågan exekveras.

Några vanliga logiska kontroller är nedan:

Den logiska styrenheten

Inspelningskontroll

JMeter Kan post ditt Testning steg; en inspelningskontroller är en platshållare för att lagra dessa inspelningssteg.

Inspelningskontroll

Enkel kontroll

Simple Controller är bara en behållare för användarens begäran.

Enkel kontroll

Loop Controller

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

Loop Controller

Random Controller

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

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

  1. HTTP-begäran
  2. FTP-begäran
  3. JDBC-förfrågan

Dessa 3 förfrågningar bör köras 5 gånger. Totalt 15 användarförfrågningar kommer att skickas till Googles server av JMeter.

In sekventiell beställning skickas förfrågningar sekventiellt i följande ordning:

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

för varje slinga.

Random Controller

In slumpmässig beställning, förfrågningar skickas som slumpvis,

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

Or

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

För varje slinga.

Modulstyrenhet

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

Den allmänna idén är att webbapplikationer består av små enheter av funktionalitet (t.ex. Logga in, Skapa konto, Logga ut...). Denna funktion kan lagras i Enkel kontroll som "moduler". Modulstyrenheten väljer vilken modul som ska köras.

Modulstyrenhet

Tänk på följande scenario -

Du vill simulera:

  • 50 användare loggar ut,
  • 100 användare loggar in
  • 30 användare Sök www.google.com

Du kan använda JMeter att skapa 3 moduler. Varje modul simulerar varje användaraktivitet: Logga in, Logga ut och Sök.

Modulstyrenhet

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

Modulstyrenhet

Andra viktiga styrenheter

  • Interfoliera Controller: plockar upp och gör ett användarförfrågan körs in varje öglan av tråden.
  • Runtime Styrenhet: kontroller hur länge dess barn får springa.

Om du till exempel angav Runtime Controller 10 sekunder, JMeter kommer att köra ditt test i 10 sekunder.

Andra viktiga styrenheter

  • transaktion Styrenhet: mäter total tid tagen till slut en testkörning
  • Omfatta Styrenhet: är utformad för att använda en extern testplan. Denna styrenhet låter dig använda flera testplaner i JMeter. Se detalj i JMeter Prestandatester.

Exempel på loopkontroller

Det här avsnittet visar dig steg-för-steg-instruktioner för att lägga till Loop Controller ställ in till din nuvarande prestationstestplan.

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

  • Lägg till en HTTP-förfrågan till en loopkontroller med ett loopantal 50
  • Konfigurera slingantalet för trådgrupp till 2
  • Därefter, JMeter kommer att skicka totalt 50 * 2 = 100 HTTP-förfrågningar.

Detta är den färdplan av detta exempel:

Exempel på loopkontroller

Steg 1) Konfigurera trådgrupp

We återanvändning steg 1, 2 i handledningen JMeter Prestandatester.

  1. Lägg till trådgrupp

Högerklicka på Testplan 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:

Lägg till trådgrupp

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

  1. Lägg till JMeter element

Lägg till standard för HTTP-begäran på www.google.com.

  1. Lägger till Loop Controller

Högerklicka på trådgrupp -> Logic Controller -> Loop Controller

Lägger till Loop Controller

Steg 2) Konfigurera Loop Controller

Lägg till värde 50 till Loop Count-fältet enligt bilden nedan. Det kommer att göra ett användarförfrågan till webbservern google.com kör det 50 gånger, förutom loopvärdet =2, du angav för trådgruppen ovan. Så JMeter kommer att skicka totalt 2 * 50 = 100 HTTP-förfrågningar.

Konfigurera Loop Controller

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

Konfigurera Loop Controller

Steg 3) Lägg till vyresultat i tabell

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

Så testplanen visas i bilden nedan

Lägg till vyresultat i tabell

Steg 4) Kör ditt test

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

Som visas i figuren nedan, JMeter simulerar 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.

Kör testet

Felsökning

  1. Om du stöter på problemet när du kör scenariot ovan ... gör följande
  2. Kontrollera om du ansluter till internet via en proxy. Om ja, ta bort proxyn.
  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