Sök…


Introduktion

Parameterisering är skapandet av olika datamängder för olika användare i samma testskript. Till exempel att köra flera användare med olika referenser i samma skript. Detta gör det till en av de viktigaste aspekterna i skapandet av prestandatest.

Parameterisering med externa filer

Ett av de vanliga sätten att parametrera dina prestationsskript är att använda en CSV-fil. Det bästa exemplet på användning av CSV-inputfiler är en inloggningsprocess. Om du vill testa din ansökan över olika användare måste du ange en lista med användaruppgifter.

Låt oss anta att vi har en inloggningsbegäran som fungerar för en specifik användare: ange bildbeskrivning här

Vi kan enkelt parametrisera den begäran genom att använda en extern CSV-fil och köra skriptet för olika användare. Så här lägger du till CSV-parametriseringskonfiguration:

Högerklicka på inloggningsförfrågan -> Lägg till -> Config Element -> CSV Data Set Config

ange bildbeskrivning här

En kort förklaring av parametrarna för "CSV Data Set Config":

  • Namn - elementnamn som det kommer att användas i JMeter-trädet
  • Filnamn - namn på inmatningsfilen. Relativa filnamn löses baserat på sökvägen för den aktiva testplanen. Absoluta filnamn stöds också
  • File Encoding - kodning av inmatningsfil, om det inte är plattformens standard
  • Variabla namn - lista över separerade variabelnamn som kommer att användas som behållare för parsade värden. Om den är tom kommer den första raden i filen att tolkas som en lista med variabla namn
  • Avgränsare - avgränsare som kommer att användas för att dela upp de parsade värdena från inmatningsfilen
  • Tillåt citerade data? - sant om du vill ignorera dubbla citat och låta sådana element innehålla en avgränsare.
  • Återvinna på EOF? - sant om filtestplanen ska iterera över filen mer än en gång. Det instruerar JMeter att flytta markören i början av filen
  • Stoppa tråden på EOF? - falsk vid loop-iteration över CDC-filen och sann om du vill stoppa tråden efter att ha läst hela filen
  • Delningsläge:
    • Alla trådar - filen delas mellan alla virtuella användare (standard)
    • Aktuell trådgrupp - filen öppnas en gång för varje trådgrupp
    • Aktuell tråd - varje fil öppnas separat för varje tråd
    • Identifierare - alla trådar som delar samma identifierare delar också samma fil

Låt oss skapa en csv-fil som innehåller olika användare med namn och lösenord: ange bildbeskrivning här

Vi kan nu använda den här filen med CSV Data Set-konfigurationen. I vårt fall räcker det att lägga till konfigurationsvärdena "Filnamn" och "Variablenamn": ange bildbeskrivning här

Det sista steget vi måste ta är att parametrera inloggningsbegäran med CSV-variabler. Detta kan göras genom att ersätta de initiala värdena med lämpliga variabler i konfigurationsfältet "Variabla namn" i CSV Data Set Config, så här: ange bildbeskrivning här Om vi kör vårt testskript nu kommer JMeter att ersätta dessa variabler med värden från filen 'TestUsers.csv'. Varje JMeter virtuell användare kommer att få referenser från följande csv-filrad.

Inloggningsbegäran från den första användaren:

ange bildbeskrivning här

Inloggningsbegäran från den andra användaren: ange bildbeskrivning här

Parameterisering med databaser

Ett annat sätt att parametrera dina prestationsskript är att använda databasdata genom JDBC. JDBC är ett applikationsprogrammeringsgränssnitt som definierar hur en klient kan komma åt en databas.

Ladda ner först JDBC-drivrutinen till din databas (se databasleverantören). Till exempel kan mysql-drivrutin hittas här. Sedan kan du lägga till den genom att lägga till .jar-filen i testplanen genom att använda formuläret nedan:

ange bildbeskrivning här

Men det är bättre att lägga till Jar-filen i lib-mappen och starta om JMeter.

Konfigurera sedan databasanslutningen med elementet 'JDBC Connection Configuration'. Så här: Högerklicka på trådgrupp -> Lägg till -> Config Element -> JDBC Connection Configuration

ange bildbeskrivning här

Parametrar för 'JDBC Connection Configuration':

  • Namn - namn på anslutningskonfigurationen som kommer att visas i trådgruppträdet
  • Variabel Namn - namn som kommer att användas som unik identifierare för db-anslutningen (flera anslutningar kan användas och var och en kommer att knytas till ett annat namn)
  • Max antal anslutningar - maximalt antal anslutningar tillåtna i anslutningspoolen. Vid 0 kommer varje tråd att få sin egen pool med en enda anslutning i den
  • Max Wait (ms) - pool kastar ett fel om den angivna tidsgränsen överskrids under db-anslutning
  • Time Between Eviction Runs (ms) - antal millisekunder för att pausa mellan körningar av tråden som avvisar oanvända anslutningar från db-poolen
  • Auto Commit - ja för att aktivera auto commit för relaterade db-anslutningar
  • Test medan tomgång - kontrollera lediga anslutningar innan en effektiv begäran upptäcks. Mer information: BasicDataSource.html # getTestWhileIdle
  • Soft Min Evictable Idle Time (ms) - tidsperiod under vilken en specificerad anslutning kan vara ledig i db-poolen innan den kan kastas ut. Mer information: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
  • Valideringsfråga - hälsokontrollfråga som kommer att användas för att verifiera om databasen fortfarande svarar
  • Databas-URL - JDBC-anslutningssträng för databasen. Se här för exempel
  • JDBC Driver class - lämpligt namn på förarklass (specifikt för varje db). Till exempel 'com.mysql.jdbc.Driver' för MySql db
  • Användarnamn - databasnamn
  • Lösenord - databaslösenord (lagras okrypterat i testplanen)

I vårt fall måste vi bara ställa in de obligatoriska fälten:

  • Variabelt namn bundet till pool.
  • Databas URL
  • JDBC förarklass
  • Användarnamn
  • Lösenord

Resten av fälten på skärmen kan lämnas som standard: ange bildbeskrivning här

Låt oss anta att vi lagrar testanvändaruppgifter i databasen: ange bildbeskrivning här

När databasanslutningen nu är konfigurerad kan vi lägga till JDBC-begäran själv och använda sin fråga för att hämta alla referenser från databasen: Högerklicka på Thread Group -> Add -> Sample -> JDBC Request

Genom att använda frågan "Välj uttalande" och "Variabla namn" kan vi analysera svaret på anpassade variabler.

ange bildbeskrivning här

Vi kommer nu att ha JMeter-variabler som kan användas vidare i efterföljande förfrågningar. Specificerade variabler skapas med stegvis suffix (e-post_1, e-post_2, e-post_3… ..).

För att använda dessa variabler i 'Inloggningsbegäran' måste vi lägga till en räknare som kommer att användas för att få åtkomst till rätt värden från JDBC-frågesvaret. Så här lägger du till "Räknare" -elementet i JMeter: Högerklicka på Trådgruppen -> Lägg till -> Konfigureringselement -> Räknare

ange bildbeskrivning här

Efter det kan vi uppdatera 'Login-begäran' med funktionen __V. Detta ger resultatet av utvärderingen av ett uttryck för variabelnamn och kan användas för att utvärdera kapslade variabelreferenser:

ange bildbeskrivning här

Den angivna konfigurationen räcker för att använda databasvärden för att köra skriptet mellan olika användare: ange bildbeskrivning här ange bildbeskrivning här

Parameterisering med plugin 'Parameterized Controller'

Om du behöver utföra en upprepande sekvens med samma åtgärd med olika parametrar, använd "Parameterized Controller" -programmet från JMeter-Plugins- projektet.

Du måste installera detta plugin först genom att följa installationsproceduren.

Låt oss anta att vi vill parameterisera inloggningsflödet:

ange bildbeskrivning här

Först och främst måste du installera pluginprogrammet "Parameterized Controller" eftersom det inte ingår i JMeter-kärnan. Installationssteg för den processen kan hittas här.

Låt oss flytta 'Login Request' till en separat controller och inaktivera den (högerklicka på den och välj "Disable"). Detta är det mest föredragna sättet att ha en modulcontainer i din testplan och undvika att använda Workbench som en sådan container. Efter installationen kan du lägga till två "Parameterized Controller" -kontroller med olika användaruppgifter: Högerklicka på Thread Group -> Add -> Logic Controller -> Parameterized Controller

ange bildbeskrivning här

Parameteriserade kontroller innehåller avsnittet "Användardefinierade variabler", där du kan ange dina parametrar. Sätt referenser för den första användaren i den första parametriserade styrenheten och de andra användaruppgifterna i den andra parametrerade styrenheten. ange bildbeskrivning här

Inuti båda parametrerade styrenheter lägg till referenser till 'Återanvändbar styrenhet' för att ringa 'inloggningsbegäran' med olika parametrar. Det kan göras på detta sätt:

Högerklicka på 'Parameterized Controller' -> 'Add' -> 'Logic Controller' -> 'Module Controller'

ange bildbeskrivning här

När du kör ditt skript ser du att "Login-begäran" utlöste var och en av de parametrerade kontrollerna separat. Det kan vara mycket användbart om du behöver köra ditt skript över olika kombinationer av inmatningsparametrar.

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow