k6 - Den bästa utvecklarupplevelsen för belastningstest

Prestandatestindustrin har upplevt en radikal förändring de senaste åren. Traditionellt har belastningstestning utförts av ingenjörer som testar prestanda, liksom QA-ingenjörer och testare. Dessa roller fungerade vanligtvis som oberoende enheter och gjorde prestandatest när utvecklarna hade slutfört att bygga applikationerna.

Med antagandet av agila principer bland programvaruutvecklingsteam, startar prestandatest som aktivitet mycket tidigare i utvecklingsprocessen, så kallad skift-vänster-testning . Istället för att lämna prestandatestning till QA-avdelningen gör programteam nu sina tester oberoende eller i samarbete med QA-ingenjörerna.

En annan fördel med att flytta testet åt vänster är en växande ökning av antagandet av prestandatest i programvaruteam. Men många av dessa nya användare kräver verktyg som passar bra in i deras vardagligt arbetsflöde , så att de kan testa regelbundet med minimal ansträngning. Traditionella verktyg som JMeter och LoadRunner passade inte så bra, och istället vänder de sig till en ny generation verktyg, som k6.




Avtäckning k6

k6 är en gratis och verktyg för testning av öppen källkod syftar till att göra prestandatestning till en produktiv och trevlig upplevelse.

Verktyget kan skrivas och k6-tester skrivs in Javascript , ger möjlighet att skriva dina tester på ett av de mest kända programmeringsspråken.


Ett kraftfullt skriptspråk och API ger den nödvändiga flexibiliteten för att efterlikna verkliga scenarier i dina skript. Eftersom applikationer och system kontinuerligt utvecklas kommer effektiviteten i din testprocess att dramatiskt öka effektiviteten att ha möjligheten att modulera dina tester.

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

k6 är ett kommandoradsverktyg tillgängligt för Windows, Linux och Mac. Alternativt finns det en officiell Docker-bild.

Att köra ett prestandatest med k6 är lika enkelt som att köra ett bash-kommando:


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

Några anmärkningsvärda skriptfunktioner är:

  • Robusta och väldokumenterade Javascript API: er för testskript
  • Djup anpassning genom flera konfigurationsalternativ
  • Scenarier
  • Parameterisering genom miljövariabler
  • Webbplatsstöd
  • Livscykelkrokar för att anpassa installation och nedbrytning
  • Kontroller, mätvärden, taggar, kakor ...


Sessionsinspelare och omvandlare

Som de mest sofistikerade lasttestverktygen har k6 en sessionsinspelare som underlättar skapandet av belastningstester från en användarsession. Du behöver bara ange en HAR-fil från en webbläsare eller användarsession, och inspelaren skapar k6-testet åt dig. Detta är särskilt användbart om du är lasttestwebbplatser .

Dessutom kan andra verktyg hjälpa dig att automatisera k6-tester från olika tekniker:


  • JMeter-omvandlare: konvertera en JMeter .jmx-fil till k6-skript.
  • Postman-omvandlare: konvertera en Postman-samling till k6-skript.
  • OpenAPI-omvandlare: konvertera Swagger / OpenAPI-specifikation till k6-skript.
  • Webbläsartillägg: generera ett k6-skript från en webbläsarsession. Endast tillgängligt för användare av k6 Cloud.

Även om du inte behöver använda inspelaren och omvandlarna för att börja testa kan de här verktygen hjälpa dig att få ditt team in i k6, eller skanna dina tester snabbare.

Sessionsinspelare och omvandlare



Resultatvisualisering

Som standard matar k6 ut resultatet till konsolen. Dessutom finns flera integrationer tillgängliga för att hjälpa dig under analysen och visualiseringen av dina testresultat:

  • Apache Kafka
  • k6 Moln
  • DataDog
  • InfluxDB + Grafana
  • JSON
  • NewRelic
  • StatistikD

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




Kontinuerlig och automatiserad testning

I testgemenskapen är automatisering slutmålet för många organisationer. När din applikation och ditt system ändras kan automatisering och körning av täta tester hjälpa dig att få prestandaregressioner tidigare.

Dokumentationen ger guider för de mest populära CI / CD-verktygen, så att du enkelt kan integrera k6 i dina CI-rörledningar.

  • Azure Pipelines
  • CircleCI
  • GitHub-åtgärder
  • GitLab
  • Jenkins
  • TeamCity

K6-teamet tror att göra testa målinriktad är en oumbärlig förutsättning för automatisering. När du kör automatiska tester bör testets primära syfte vara att först validera prestandaförväntningarna för ditt system och för det andra att varna dig om systemet inte uppfyller prestandamålen. Validera till exempel att:

  • Svarstiden för 95% av förfrågningarna är inte över 600 ms.
  • Systemet producerar inte mer än 0,5% fel.

I k6 definierar du dessa förväntningar med Tröskelvärden i ditt test. Om ditt system inte når dem kommer k6 att informera dig om fel som returnerar en utgångskod som inte är noll.


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

Om du vill lära dig mer om detta ämne, läs k6-guiden för automatisering av prestandatestning och tröskelns dokumentation.



k6 Moln

k6 Moln är den kommersiella SaaS-produkten som medföljer k6-verktyget med öppen källkod. k6 OSS är gratis att använda och har flera integrationer för att hantera belastningstester i din egen infrastruktur. K6 Cloud är en valfri tjänst som tillhandahåller belastningstestinfrastrukturen och systemen för att hjälpa dig med dina prestandatester.

För att bättre förstå vad k6 Cloud är, låt oss räkna upp några av dess funktioner:

  • Skalatest horisontellt och på olika geografiska platser.
  • Lagra och visualisera testresultat.
  • Upptäck prestandaproblem automatiskt.
  • Korrelera resultat mellan olika tester.
  • Inbyggda användare med GUI-testbyggaren.
  • Organisera team och tester på en central plats.
  • Ge dedikerat stöd.

k6 Moln



gemenskap

K6-communityn är verkligen stödjande och hjälpsam - styrkan bakom projektets framgång.

Om du börjar med k6, glöm inte att nå dem Slak eller den community forum för alla typer av frågor. Det finns flera kanaler och kategorier för olika ämnen som #grafana, #documentation, #feedback, #discussion, etc.

För de som är intresserade av det inre av projektet, följ projektet i GitHub .



Slutsats

Det här inlägget syftar till att presentera en introduktion av k6 - ett av de mest spännande lasttestverktygen. Om du vill lära dig vad mer har k6 att erbjuda, rekommenderar vi att du läser k6 Dokument .

Med bara fyra års liv har k6 blivit funktionsrikt och konkurrerar med väletablerade verktyg och får stellar antagande i utvecklare, DevOps och testgrupper.

K6-teamet och communityn har byggt ett utvecklingscentrerat prestandatestverktyg som möter efterfrågan och behoven för en ny era.