k6 - Den beste utvikleropplevelsen for lastetesting

Prestasjonstestindustrien har opplevd en radikal transformasjon de siste årene. Tradisjonelt har belastningstesting blitt utført av ytelsestestingeniører, så vel som QA-ingeniører og testere. Disse rollene fungerte vanligvis som uavhengige enheter, og gjorde ytelsestesting når utviklerne var ferdig med å bygge applikasjonene.

Med adopsjonen av smidige prinsipper blant programvareutviklingsteam, starter ytelsestesting som aktivitet mye tidligere i utviklingsprosessen, såkalt skift-venstre testing . I stedet for å overlate ytelsestesting til QA-avdelingen, gjør programvareteamene nå testene sine uavhengig eller i samarbeid med QA-ingeniørene.

En annen fordel med å flytte testene mot venstre er en økende økning i bruk av ytelsestesting i programvareteam. Men mange av disse nye brukerne krever verktøy som passer fint inn i deres hverdags arbeidsflyt , slik at de kan test regelmessig med minimal innsats. Tradisjonelle verktøy som JMeter og LoadRunner passet ikke så bra, og i stedet henvender de seg til en ny generasjon verktøy, som k6.




Avduking k6

k6 er en gratis og verktøy for åpen kildekodetesting med sikte på å gjøre prestasjonstesting til en produktiv og hyggelig opplevelse.

Verktøyet er skriptbart, og k6-tester er skrevet inn Javascript , som gir muligheten til å skrive testene dine på et av de mest kjente programmeringsspråkene rundt.


Et kraftig skriptspråk og API gir den nødvendige fleksibiliteten til å etterligne virkelige scenarier i skriptene dine. Siden applikasjoner og systemer kontinuerlig utvikler seg, vil muligheten til å modulere testene dine øke effektiviteten i testprosessen dramatisk.

img / performance / 81 / k6-the-best-developer-experience.png

k6 er et kommandolinjeverktøy tilgjengelig for Windows, Linux og Mac. Alternativt er det et offisielt Docker-bilde.

Å kjøre en ytelsestest med k6 er like enkelt som å kjøre en bash-kommando:


img / performance / 81 / k6-the-best-developer-experience-2.png

Noen få bemerkelsesverdige skriptfunksjoner er:

  • Robuste og veldokumenterte Javascript APIer for testskripting
  • Dyp tilpasning gjennom flere konfigurasjonsalternativer
  • Scenarier
  • Parameterisering gjennom miljøvariabler
  • Websockets støtte
  • Lifecycle kroker for å tilpasse oppsett og nedrivning
  • Sjekker, beregninger, koder, informasjonskapsler ...


Sesjonsopptaker og omformere

Som de mest sofistikerte belastningstestverktøyene har k6 en øktopptaker som gjør det mulig å lage lastetester fra en brukersession. Du trenger bare å oppgi en HAR-fil fra en nettleser eller brukerøkt, og opptakeren lager k6-testen for deg. Dette er spesielt nyttig hvis du er det lastetesting nettsteder .

I tillegg kan andre verktøy hjelpe deg med å generere k6-tester fra forskjellige teknologier:


  • JMeter-omformer: konverter en JMeter .jmx-fil til k6-skript.
  • Postman converter: konverter en Postman-samling til k6-skript.
  • OpenAPI-omformer: konverter Swagger / OpenAPI-spesifikasjon til k6-skript.
  • Nettleserutvidelse: generer et k6-skript fra en nettlesersesjon. Bare tilgjengelig for brukere av k6 Cloud.

Selv om du ikke trenger å bruke opptakeren og omformerne for å begynne å teste, kan disse verktøyene hjelpe deg ombord på teamet ditt til k6, eller skript testene dine, raskere.

Sesjonsopptaker og omformer



Resultatvisualisering

Som standard leverer k6 resultatet til konsollen. I tillegg er flere integrasjoner tilgjengelig for å hjelpe deg under analysen og visualiseringen av testresultatene:

  • Apache Kafka
  • k6 Sky
  • DataDog
  • InfluxDB + Grafana
  • JSON
  • NewRelic
  • StatsD

img / performance / 81 / k6-the-best-developer-experience-4.png




Kontinuerlig og automatisert testing

I testmiljøet er automatisering slutten for mange organisasjoner. Når applikasjonen og systemet endres, vil automatisering og kjøring av hyppige tester hjelpe deg med å fange ytelsesregresjoner tidligere.

Dokumentasjonen gir guider for de mest populære CI / CD-verktøyene, slik at du enkelt kan integrere k6 i CI-rørledningene dine.

  • Azure Pipelines
  • CircleCI
  • GitHub-handlinger
  • GitLab
  • Jenkins
  • TeamCity

K6-teamet mener det å lage teste målrettet er en uunnværlig forutsetning for automatisering. Når du kjører automatiserte tester, bør testens primære formål være å validere ytelsesforventningene til systemet ditt, og for det andre å varsle deg om systemet ikke oppfyller ytelsesmålene. Valider for eksempel at:

  • Svartiden for 95% av forespørslene er ikke over 600 ms.
  • Systemet produserer ikke mer enn 0,5% feil.

I k6 definerer du disse forventningene med Terskler i testen din. Hvis systemet ikke når dem, vil k6 informere deg om feilen ved retur av en utgangskode som ikke er null.


img / performance / 81 / k6-the-best-developer-experience-5.png

Hvis du vil lære mer om dette emnet, kan du lese k6-guiden for automatisering av ytelsestesting og Thresholds-dokumentasjonen.



k6 Sky

k6 Sky er det kommersielle SaaS-produktet som følger med open source k6-verktøyet. k6 OSS er gratis å bruke og har flere integrasjoner å administrere belastningstester i din egen infrastruktur. K6 Cloud er en valgfri tjeneste som tilbyr belastningstestinfrastrukturen og -systemene for å hjelpe deg med ytelsestesting.

For å forstå bedre hva k6 Cloud er, la oss oppsummere noen av funksjonene:

  • Skala tester horisontalt og på forskjellige geografiske steder.
  • Lagre og visualiser testresultatene.
  • Oppdag ytelsesproblemer automatisk.
  • Korreler resultatene mellom forskjellige tester.
  • Ombordbrukere med GUI-testbyggeren.
  • Organiser team og tester sentralt.
  • Gi dedikert støtte.

k6 Sky



Samfunnet

K6-samfunnet er virkelig støttende og nyttig - styrken bak suksessen til prosjektet.

Hvis du begynner med k6, ikke glem å nå dem Slakk eller samfunnsforum for alle typer spørsmål. Det er flere kanaler og kategorier for forskjellige emner som #grafana, #documentation, #feedback, #discussion, etc.

For de som er interessert i det indre av prosjektet, følg prosjektet i GitHub .



Konklusjon

Dette innlegget tar sikte på å presentere en intro på k6 - et av de mest spennende lasttestverktøyene. Hvis du vil lære hva mer har k6 å tilby, anbefaler vi å lese k6 Dokumenter .

Med bare fire års levetid har k6 blitt funksjonsrikt og konkurrerer med veletablerte verktøy, og får fantastisk adopsjon i utviklere, DevOps og testmiljøer.

K6-teamet og samfunnet har bygget et utviklingssentrert ytelsesprøveverktøy som oppfyller behovet og behovene for en ny æra.