Zoeken…


Invoering

Parameterisatie is het maken van verschillende gegevenssets voor verschillende gebruikers in hetzelfde testscript. Bijvoorbeeld het uitvoeren van meerdere gebruikers met verschillende referenties in hetzelfde script. Dit maakt het een van de belangrijkste aspecten bij het maken van prestatietests.

Parameterisatie met behulp van externe bestanden

Een van de gebruikelijke manieren om uw prestatiescripts te parametriseren, is het gebruik van een CSV-bestand. Het beste voorbeeld van het gebruik van CSV-invoerbestanden is een inlogproces. Als u uw toepassing wilt testen bij verschillende gebruikers, moet u een lijst met gebruikersreferenties opgeven.

Laten we aannemen dat we een inlogverzoek hebben dat werkt voor één specifieke gebruiker: voer hier de afbeeldingsbeschrijving in

We kunnen dat verzoek eenvoudig parametriseren door een extern CSV-bestand te gebruiken en het script voor verschillende gebruikers uit te voeren. Configuratie van CSV-parametrisering toevoegen:

Klik met de rechtermuisknop op inlogverzoek -> Toevoegen -> Config Element -> CSV-gegevensset Config

voer hier de afbeeldingsbeschrijving in

Een korte uitleg van de parameters voor 'CSV Data Set Config':

  • Naam - elementnaam zoals deze zal worden gebruikt in de JMeter-structuur
  • Bestandsnaam - naam van het invoerbestand. Relatieve bestandsnamen worden omgezet op basis van het pad van het actieve testplan. Absolute bestandsnamen worden ook ondersteund
  • Bestandscodering - codering van het invoerbestand, als dit niet de standaard van het platform is
  • Variabele namen - lijst van gescheiden variabelenamen die zullen worden gebruikt als een container voor geparseerde waarden. Indien leeg, wordt de eerste regel van het bestand geïnterpreteerd als de lijst met variabelenamen
  • Scheidingsteken - scheidingsteken dat wordt gebruikt om de geparseerde waarden uit het invoerbestand te splitsen
  • Geciteerde gegevens toestaan? - waar als u dubbele aanhalingstekens wilt negeren en dergelijke elementen een scheidingsteken wilt laten bevatten.
  • Recyclen op EOF? - waar als het bestandstestplan het bestand meerdere keren moet herhalen. Het zal JMeter instrueren om de cursor naar het begin van het bestand te verplaatsen
  • Draad stoppen op EOF? - false in geval van lusherhaling over het CDC-bestand en true als u de thread wilt stoppen na het lezen van het hele bestand
  • Deel modus:
    • Alle threads - het bestand wordt gedeeld tussen alle virtuele gebruikers (de standaardinstelling)
    • Huidige threadgroep - het bestand wordt eenmaal geopend voor elke threadgroep
    • Huidige thread - elk bestand wordt voor elke thread afzonderlijk geopend
    • Identifier - alle threads die dezelfde identifier delen, delen ook hetzelfde bestand

Laten we een csv-bestand maken met verschillende gebruikers met namen en wachtwoorden: voer hier de afbeeldingsbeschrijving in

We kunnen dit bestand nu gebruiken met de CSV Data Set-configuratie. In ons geval is het voldoende om de configuratiewaarden "Bestandsnaam" en "Variabelenamen" toe te voegen: voer hier de afbeeldingsbeschrijving in

De laatste stap die we moeten nemen, is het inlogverzoek parametreren met CSV-variabelen. Dit kan worden gedaan door de beginwaarden te vervangen door de juiste variabelen uit het configuratieveld “Variabele namen” van de CSV-gegevensset Config, als volgt: voer hier de afbeeldingsbeschrijving in Als we nu ons testscript uitvoeren, vervangt JMeter deze variabelen door waarden uit het bestand 'TestUsers.csv'. Elke virtuele JMeter-gebruiker ontvangt referenties van de volgende csv-bestandsregel.

Het inlogverzoek van de eerste gebruiker:

voer hier de afbeeldingsbeschrijving in

Het inlogverzoek van de tweede gebruiker: voer hier de afbeeldingsbeschrijving in

Parameterisatie met behulp van databases

Een andere manier om uw prestatiescripts te parametreren is om databasegegevens te gebruiken via JDBC. JDBC is een applicatie-programmeerinterface die definieert hoe een client toegang heeft tot een database.

Download eerst het JDBC-stuurprogramma naar uw database (raadpleeg de databaseleverancier). Het MySQL-stuurprogramma kan hier bijvoorbeeld worden gevonden. Vervolgens kunt u het toevoegen door het .jar-bestand aan het testplan toe te voegen met behulp van het onderstaande formulier:

voer hier de afbeeldingsbeschrijving in

Maar het is beter om het Jar-bestand in de lib-map toe te voegen en JMeter opnieuw te starten.

Configureer daarna de databaseverbinding met behulp van het element 'JDBC-verbindingsconfiguratie'. Zo: klik met de rechtermuisknop op Thread Group -> Toevoegen -> Config Element -> JDBC-verbindingsconfiguratie

voer hier de afbeeldingsbeschrijving in

Parameters 'JDBC-verbindingsconfiguratie':

  • Naam - naam van de verbindingsconfiguratie die wordt getoond in de threadgroepstructuur
  • Variabele naam - naam die zal worden gebruikt als unieke identificatie voor de DB-verbinding (meerdere verbindingen kunnen worden gebruikt en elke verbinding wordt gekoppeld aan een andere naam)
  • Max. Aantal verbindingen - maximaal aantal verbindingen toegestaan in de verbindingspool. In het geval van 0 krijgt elke thread zijn eigen pool met een enkele verbinding erin
  • Max Wait (ms) - pool geeft een foutmelding als de opgegeven time-out wordt overschreden tijdens de db-verbinding
  • Time Between Eviction Runs (ms) - aantal milliseconden om te pauzeren tussen runs van de thread die ongebruikte verbindingen uit de DB-pool verwijdert
  • Auto Commit - Ja om Auto Commit in te schakelen voor gerelateerde DB-verbindingen
  • Testen tijdens inactiviteit - controleer inactieve verbindingen voordat een effectief verzoek wordt gedetecteerd. Meer informatie: BasicDataSource.html # getTestWhileIdle
  • Soft Min Evictable Idle Time (ms) - tijdsperiode waarin een opgegeven verbinding mogelijk inactief is in de DB-pool voordat deze kan worden uitgezet. Meer informatie: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
  • Validatiequery - gezondheidscheckquery die wordt gebruikt om te controleren of de database nog steeds reageert
  • Database-URL - JDBC-verbindingsreeks voor de database. Zie hier voor voorbeelden
  • JDBC-stuurprogrammaklasse - toepasselijke naam van de stuurprogrammaklasse (specifiek voor elke DB). Bijvoorbeeld 'com.mysql.jdbc.Driver' voor MySql db
  • Gebruikersnaam - database gebruikersnaam
  • Wachtwoord - database wachtwoord (wordt ongecodeerd opgeslagen in het testplan)

In ons geval hoeven we alleen de verplichte velden in te stellen:

  • Naam van variabele gebonden aan pool.
  • Database-URL
  • JDBC-stuurprogrammaklasse
  • Gebruikersnaam
  • Wachtwoord

De rest van de velden op het scherm kunnen als standaard worden achtergelaten: voer hier de afbeeldingsbeschrijving in

Laten we aannemen dat we testreferenties van gebruikers opslaan in de database: voer hier de afbeeldingsbeschrijving in

Wanneer de databaseverbinding is geconfigureerd, kunnen we de JDBC-aanvraag zelf toevoegen en de query gebruiken om alle referenties uit de database te halen: klik met de rechtermuisknop op Discussiegroep -> Toevoegen -> Voorbeeld -> JDBC-aanvraag

Door de 'Select Statement'-query en' Variable Names 'te gebruiken, kunnen we de respons op aangepaste variabelen analyseren.

voer hier de afbeeldingsbeschrijving in

We zullen nu JMeter-variabelen hebben die verder kunnen worden gebruikt in volgende aanvragen. Opgegeven variabelen worden gemaakt met incrementeel achtervoegsel (email_1, email_2, email_3… ..).

Als u deze variabelen in het 'Aanmeldingsverzoek' wilt gebruiken, moeten we een teller toevoegen die wordt gebruikt om toegang te krijgen tot de juiste waarden uit de JDBC-queryreactie. Om het 'Teller'-element in JMeter toe te voegen: Klik met de rechtermuisknop op Draadgroep -> Toevoegen -> Config Element -> Teller

voer hier de afbeeldingsbeschrijving in

Daarna kunnen we het 'Aanmeldingsverzoek' bijwerken met de __V-functie. Dit retourneert het resultaat van de evaluatie van een uitdrukking van de variabelenaam en kan worden gebruikt om geneste variabeleferenties te evalueren:

voer hier de afbeeldingsbeschrijving in

De opgegeven configuratie is voldoende om databasewaarden te gebruiken om het script voor verschillende gebruikers uit te voeren: voer hier de afbeeldingsbeschrijving in voer hier de afbeeldingsbeschrijving in

Parameterisatie met behulp van de plug-in 'Parameterized Controller'

Als u een herhalende reeks van dezelfde actie met verschillende parameters moet uitvoeren, gebruikt u de plug -in 'Parameterized Controller' van het JMeter-Plugins- project.

U moet deze plug-in eerst installeren door de installatieprocedure te volgen.

Laten we aannemen dat we de inlogworkflow willen parametreren:

voer hier de afbeeldingsbeschrijving in

Allereerst moet u de plug-in 'Parameterized Controller' installeren, omdat deze niet is opgenomen in de JMeter-kern. Installatiestappen van dat proces zijn hier te vinden.

Laten we het 'Aanmeldingsverzoek' naar een afzonderlijke controller verplaatsen en uitschakelen (klik met de rechtermuisknop en selecteer 'Uitschakelen'). Dit is de beste manier om een modulecontainer in uw testplan te hebben en te voorkomen dat u Workbench als een dergelijke container gebruikt. Nadat de installatie is voltooid, kunt u twee 'Parameterized Controller' controllers met verschillende gebruikersreferenties toevoegen: Klik met de rechtermuisknop op Thread Group -> Toevoegen -> Logic Controller -> Parameterized Controller

voer hier de afbeeldingsbeschrijving in

Parameterized Controllers bevat de sectie 'User Defined Variables', waar u uw parameters kunt opgeven. Plaats de referenties van de eerste gebruiker in de eerste geparametriseerde controller en de tweede gebruikersreferenties in de tweede geparametriseerde controller. voer hier de afbeeldingsbeschrijving in

Voeg binnen beide geparametriseerde controllers verwijzingen toe naar de 'Herbruikbare controller' om het 'Aanmeldingsverzoek' met verschillende parameters op te roepen. Het kan op deze manier worden gedaan:

Klik met de rechtermuisknop op 'Parameterized Controller' -> 'Add' -> 'Logic Controller' -> 'Module Controller'

voer hier de afbeeldingsbeschrijving in

Wanneer u uw script uitvoert, ziet u dat de 'Aanmeldingsaanvraag' elk van de geparametriseerde controllers afzonderlijk heeft geactiveerd. Het kan erg handig zijn als u uw script over verschillende combinaties van invoerparameters moet uitvoeren.

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow