Introduktion til Gatling

1. Oversigt

Gatling er en belastningstestværktøj der kommer med fremragende støtte fra HTTP protokol - hvilket gør det til et rigtig godt valg til belastningstest HTTP server.

Denne hurtige guide viser dig, hvordan du gør det opsæt et simpelt scenario til belastningstest en HTTP server.

Gatling simulationsskripter er skrevet i Scala, men rolig - værktøjet hjælper os med en GUI, der giver os mulighed for at registrere scenariet. Når vi er færdige med at optage scenariet, opretter GUI den Scala script, der repræsenterer simuleringen.

Efter at have kørt simuleringen har vi en klar til at præsentere HTML rapporter.

Sidst men ikke mindst Gatlings arkitektur er asynkron. Denne form for arkitektur giver os mulighed for at implementere virtuelle brugere som meddelelser i stedet for dedikerede tråde, hvilket gør dem meget ressource billige. Således er det ikke et problem at køre tusinder af samtidige virtuelle brugere.

Det er dog også værd at bemærke, at kernemotoren faktisk er protokol agnostiker, så det er perfekt muligt at implementere support til andre protokoller. For eksempel leverer Gatling i øjeblikket også JMS support.

2. Oprettelse af et projekt ved hjælp af arketypen

Selvom vi kan få Gatling-bundter som en .zip vi vælger at bruge Gatlings Maven arketype. Dette giver os mulighed for at integrere Gatling og køre det ind i en IDE og gør det let at vedligeholde projektet i et versionskontrolsystem. Vær forsigtig som Gatling kræver en JDK8.

Skriv fra kommandolinjen:

mvn arketype: generer

Derefter, når du bliver bedt om det:

Vælg et nummer, eller anvend et filter (format: [groupId:] artifactId, store og små bogstaver indeholder):

Type:

gatling

Du skal så se:

Vælg arketype: 1: fjernbetjening -> io.gatling.highcharts: gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Type:

1

for at vælge arketypen, vælg derefter den version, der skal bruges (vælg den nyeste version).

Vælg groupId, artefaktId, version og pakke navn på klasserne, inden du opretter arketypen.

Afslut ved at importere arketypen til en IDE - for eksempel til Scala IDE (baseret på Eclipse) eller til IntelliJ IDEA.

3. Definer et scenario

Før vi starter optageren, skal vi definere et scenarie. Det vil være en gengivelse af, hvad der virkelig sker, når brugere navigerer i en webapplikation.

I denne vejledning bruger vi applikationen leveret af Gatlings team til eksempelformål og hostes på URL //computer-database.gatling.io.

Vores enkle scenario kan være:

  • En bruger ankommer til applikationen.
  • Brugeren søger efter 'amstrad'.
  • Brugeren åbner en af ​​de relaterede modeller.
  • Brugeren vender tilbage til hjemmesiden.
  • Brugeren gentager sig gennem sider.

4. Konfiguration af optageren

Først og fremmest starte Optager klasse fra IDE. Når det er lanceret, giver GUI dig mulighed for at konfigurere, hvordan anmodninger og svar registreres. Vælg følgende muligheder:

  • 8000 som lytteport
  • org.baeldung.simulation pakke
  • RecordedSimulation klasse navn
  • Følg omdirigeringer? afkrydset
  • Automatiske henvisere? afkrydset
  • Sort liste først valgt filterstrategi
  • . * \. css, . * \. js og . * \. ico i sortlistefiltre

Nu skal vi konfigurere vores browser til at bruge den definerede port (8000) valgt under konfigurationen. Dette er den port, som vores browser skal oprette forbindelse til, så Optager er i stand til at fange vores navigation.

Sådan gør du med Firefox, åbner browseren Avancerede indstillinger, gå derefter til Netværkspanelet og opdater forbindelsesindstillingerne:

5. Optagelse af scenariet

Nu hvor alt er konfigureret, kan vi optage det scenarie, som vi har defineret ovenfor. Trin er følgende:

  1. Start optagelsen ved at klikke på knappen 'Start'
  2. Gå til webstedet: //computer-database.gatling.io
  3. Søg efter modeller med 'amstrad' i deres navn
  4. Vælg 'Amstrad CPC 6128'
  5. Gå tilbage til startsiden
  6. Vip flere gange gennem modelsiderne ved at klikke på Næste knap
  7. Klik på knappen 'Stop & gem'

Simuleringen genereres i pakken org.baeldung defineret under konfigurationen under navnet RecordedSimulation.scala

6. Kør en simulation med Maven

For at køre vores optagede simulering er vi nødt til at opdatere vores pom.xml:

 io.gatling gatling-maven-plugin 2.2.4 test udføre true 

Dette lader os udføre simuleringen i testfasen. For at starte testen skal du bare køre:

mvn test

Når simuleringen er færdig, viser konsollen stien til HTML-rapporterne.

Bemærk: konfiguration rigtigt bruges, fordi vi bruger Scala med maven, dette flag vil sikre, at vi ikke ender med at kompilere vores simulation to gange. Flere detaljer findes på Gatling-dokumenter.

7. Gennemgang af resultatet

Hvis vi åbner index.html på den foreslåede placering ser rapporterne ud som følger:

8. Konklusion

I denne vejledning har vi undersøgt belastningstest af en HTTP-server med Gatling. Værktøjerne giver os mulighed for at optage en simulation baseret på et defineret scenario ved hjælp af en GUI-grænseflade. Når optagelsen er færdig, kan vi starte vores test. Testrapporten vil være i form af HTML-CV.

For at opbygge vores eksempel har vi valgt at bruge en maven-arketype. Dette hjælper os med at integrere Gatling og køre det ind i en IDE og gøre det let at vedligeholde projektet i et versionskontrolsystem.

Eksempelkoden findes i GitHub-projektet.