Introduksjon til Gatling

1. Oversikt

Gatling er en lasttestverktøy som kommer med utmerket støtte fra HTTP protokoll - noe som gjør det til et veldig godt valg for belastningstesting HTTP server.

Denne hurtigveiledningen viser deg hvordan du gjør det sette opp et enkelt scenario for belastningstesting en HTTP server.

Gatling simuleringsskript er skrevet inn Scala, men ikke bekymre deg - verktøyet hjelper oss med en GUI som lar oss registrere scenariet. Når vi er ferdig med å registrere scenariet, oppretter brukergrensesnittet Scala skript som representerer simuleringen.

Etter å ha kjørt simuleringen har vi en klar til å presentere HTML rapporter.

Sist men ikke minst, Gatlings arkitektur er asynkron. Denne typen arkitektur lar oss implementere virtuelle brukere som meldinger i stedet for dedikerte tråder, noe som gjør dem veldig ressurs billige. Derfor er det ikke noe problem å kjøre tusenvis av virtuelle brukere samtidig.

Det er også verdt å merke seg at kjernemotoren faktisk er protokoll agnostiker, så det er fullt mulig å implementere støtte for andre protokoller. For eksempel sendes for tiden også Gatling JMS Brukerstøtte.

2. Opprette et prosjekt ved hjelp av arketypen

Selv om vi kan få Gatling-pakker som en .glidelås vi velger å bruke Gatling’s Maven Archetype. Dette tillater oss å integrere Gatling og kjøre den til en IDE og gjøre det enkelt å vedlikeholde prosjektet i et versjonskontrollsystem. Vær forsiktig som Gatling krever en JDK8.

Skriv fra kommandolinjen:

mvn arketype: generer

Når du blir bedt om det:

Velg et tall eller bruk filter (format: [groupId:] artifactId, store og små bokstaver inneholder):

Type:

gatling

Du bør da se:

Velg arketype: 1: ekstern -> io.gatling.highcharts: gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Type:

1

for å velge arketypen, og velg deretter versjonen du vil bruke (velg den siste versjonen).

Velg groupId, artefaktId, versjon og pakke navn på klassene før du bekrefter arketypen.

Avslutt med å importere arketypen til en IDE - for eksempel til Scala IDE (basert på Eclipse) eller til IntelliJ IDEA.

3. Definer et scenario

Før vi starter opptakeren, må vi definere et scenario. Det vil være en representasjon av hva som virkelig skjer når brukere navigerer i en webapplikasjon.

I denne opplæringen vil vi bruke applikasjonen som tilbys av Gatlings team for eksempelformål og vert på URL //computer-database.gatling.io.

Vårt enkle scenario kan være:

  • En bruker kommer til applikasjonen.
  • Brukeren søker etter ‘amstrad’.
  • Brukeren åpner en av de relaterte modellene.
  • Brukeren går tilbake til hjemmesiden.
  • Brukeren itererer gjennom sider.

4. Konfigurere opptakeren

Først av alt lansere Opptaker klasse fra IDE. Når GUI er lansert, lar du deg konfigurere hvordan forespørsler og svar blir registrert. Velg følgende alternativer:

  • 8000 som lytteport
  • org.baeldung.simulation pakke
  • RecordedSimulation klassenavn
  • Følg viderekoblinger? sjekket
  • Automatiske referanser? sjekket
  • Svart liste først valgt filterstrategi
  • . * \. css, . * \. js og . * \. ico i svartelistefiltrene

Nå må vi konfigurere nettleseren vår til å bruke den definerte porten (8000) valgt under konfigurasjonen. Dette er porten nettleseren vår må koble til slik at Opptaker er i stand til å fange navigasjonen vår.

Slik gjør du med Firefox, åpner nettleseren Avanserte innstillinger, og deretter går du til nettverkspanelet og oppdaterer tilkoblingsinnstillingene:

5. Ta opp scenariet

Nå som alt er konfigurert, kan vi registrere scenariet som vi har definert ovenfor. Trinnet er følgende:

  1. Start opptaket ved å klikke på 'Start' -knappen
  2. Gå til nettstedet: //computer-database.gatling.io
  3. Søk etter modeller med ‘amstrad’ i ​​navnet
  4. Velg 'Amstrad CPC 6128'
  5. Gå tilbake til hjemmesiden
  6. Itererer flere ganger gjennom modellsidene ved å klikke på Neste knapp
  7. Klikk på knappen 'Stopp og lagre'

Simuleringen vil bli generert i pakken org.baeldung definert under konfigurasjonen under navnet RecordedSimulation.scala

6. Kjør en simulering med Maven

For å kjøre vår innspilte simulering må vi oppdatere vår pom.xml:

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

Dette lar oss utføre simuleringen i testfasen. For å starte testen er det bare å løpe:

mvn test

Når simuleringen er ferdig, viser konsollen banen til HTML-rapportene.

Merk: konfigurasjon ekte brukes fordi vi skal bruke Scala med maven. Dette flagget vil sikre at vi ikke ender med å kompilere simuleringen vår to ganger. Mer informasjon er tilgjengelig på Gatling-dokumenter.

7. Gjennomgang av resultatet

Hvis vi åpner index.html På det foreslåtte stedet ser rapportene ut som følger:

8. Konklusjon

I denne opplæringen har vi utforsket belastningstesting av en HTTP-server med Gatling. Verktøyene lar oss ta opp en simulering basert på et definert scenario ved hjelp av et GUI-grensesnitt. Etter at opptaket er gjort kan vi starte testen. Testrapporten vil være i form av HTML-CV.

For å bygge opp vårt eksempel har vi valgt å bruke en maven arketype. Dette hjelper oss med å integrere Gatling og kjøre den inn i en IDE og gjøre det enkelt å vedlikeholde prosjektet i et versjonskontrollsystem.

Eksempelkoden finnes i GitHub-prosjektet.