k6 - najbolje iskustvo programera za ispitivanje opterećenja

Industrija testiranja performansi doživjela je radikalnu transformaciju posljednjih godina. Tradicionalno, ispitivanje opterećenja izvodili su inženjeri za ispitivanje performansi, kao i inženjeri za ispitivanje kvaliteta. Te su uloge obično radile kao nezavisne jedinice, testirajući performanse nakon što su programeri završili s izradom aplikacija.

Usvajanjem agilnih principa među timovima za razvoj softvera, ispitivanje performansi kao aktivnost započinje mnogo ranije u razvojnom procesu, tzv ispitivanje u smjeru lijevo . Umjesto da testiranje performansi prepuste odjelu QA, softverski timovi sada testiraju samostalno ili u suradnji s QA inženjerima.

Još jedna prednost pomicanja testiranja ulijevo je sve veći porast usvajanja testiranja performansi u softverskim timovima. Ali mnogi od ovih novih korisnika zahtijevaju alate koji se lijepo uklapaju u njihove svakodnevni tok rada , omogućavajući im da redovno testirajte uz minimalan napor. Tradicionalni alati poput JMeter i LoadRunner nisu se tako dobro uklopili, već se okreću novoj generaciji alata, poput k6.




Otkrivanje k6

k6 je besplatan i alat za testiranje opterećenja otvorenog koda čiji je cilj testiranje performansi učiniti produktivnim i ugodnim iskustvom.

Alat je moguće skriptirati, a napisani su k6 testovi Javascript , dajući mogućnost pisanja testova na jednom od najpoznatijih programskih jezika.


Moćan skriptni jezik i API predstavljaju potrebnu fleksibilnost za oponašanje stvarnih scenarija u vašim skriptama. Budući da se aplikacije i sistemi kontinuirano razvijaju, mogućnost modularizacije testova dramatično će poboljšati efikasnost vašeg procesa testiranja.

img / performance / 81 / k6-najbolji-programer-iskustvo.png

k6 je alat za naredbene retke dostupan za Windows, Linux i Mac. Postoji i službena Dockerova slika.

Pokretanje testa performansi s k6 jednostavno je poput pokretanja bash naredbe:


img / performance / 81 / k6-najbolji-programer-iskustvo-2.png

Nekoliko značajnih karakteristika skriptiranja su:

  • Robusni i dobro dokumentirani Javascript API-ji za testno skriptiranje
  • Dubinsko prilagođavanje kroz više opcija konfiguracije
  • Scenariji
  • Parametriranje kroz varijable okoline
  • Podrška za Websockets
  • Kuke životnog ciklusa za prilagođavanje postavljanja i uklanjanja
  • Čekovi, mjerni podaci, oznake, kolačići ...


Snimač sesije i pretvarači

Kao najsofisticiraniji alat za testiranje opterećenja, k6 ima snimač sesija koji olakšava stvaranje testova učitavanja iz korisničke sesije. Trebate samo dostaviti HAR datoteku iz preglednika ili korisničke sesije, a snimač će stvoriti k6 test za vas. Ovo je posebno korisno ako jeste učitavanje web lokacija za testiranje .

Pored toga, drugi alati mogu vam pomoći da automatski generirate k6 testove iz različitih tehnologija:


  • JMeter pretvarač: pretvorite JMeter .jmx datoteku u k6 skriptu.
  • Pretvarač poštara: pretvorite zbirku poštara u skriptu k6.
  • OpenAPI pretvarač: pretvorite Swagger / OpenAPI specifikaciju u k6 skriptu.
  • Proširenje preglednika: generirajte k6 skriptu iz sesije pregledača. Dostupno samo za korisnike k6 Cloud-a.

Iako ne trebate koristiti snimač i pretvarače da biste započeli testiranje, ovi alati mogu vam pomoći da brže uđete u tim ili u k6 ili skriptirate svoje testove.

Snimač i pretvarač sesija



Vizualizacija rezultata

Prema zadanim postavkama, k6 prikazuje rezultat na konzoli. Pored toga, dostupno je nekoliko integracija koje će vam pomoći tokom analize i vizualizacije rezultata testa:

  • Apache Kafka
  • k6 Cloud
  • DataDog
  • InfluxDB + Grafana
  • JSON
  • NewRelic
  • StatistikaD

img / performance / 81 / k6-najbolji-programer-iskustvo-4.png




Kontinuirano i automatizirano testiranje

U zajednici za testiranje, automatizacija je krajnji cilj mnogih organizacija. Kada se vaša aplikacija i sistem promijene, automatizacija i izvođenje čestih testova pomoći će vam da ranije uhvatite regresije performansi.

Dokumentacija sadrži vodiče za najpopularnije CI / CD alate, omogućavajući vam da bez napora integrirate k6 u svoje CI cjevovode.

  • Azure cjevovodi
  • CircleCI
  • GitHub akcije
  • GitLab
  • Jenkins
  • TeamCity

K6 tim vjeruje da izrada testiranje ciljno orijentisano je neophodan uvjet za automatizaciju. Prilikom izvođenja automatiziranih testova, primarna svrha vašeg testa trebala bi biti prva provjera valjanosti očekivanja vašeg sistema, i drugo, upozorenje ako sistem ne ispunjava ciljeve izvedbe. Na primjer, potvrđivanje toga:

  • Vrijeme odgovora za 95% zahtjeva nije veće od 600 ms.
  • Sistem ne proizvodi više od 0,5% grešaka.

U k6 definirate ta očekivanja sa Pragovi u vašem testu. Ako ih vaš sistem ne dosegne, k6 će vas obavijestiti o kvaru koji vraća ne-nulu izlaznog koda.


img / performance / 81 / k6-najbolji-programer-iskustvo-5.png

Ako želite saznati više o ovoj temi, pročitajte k6 vodič za automatizacija ispitivanja performansi i dokumentaciju Thresholds.



k6 Cloud

k6 Cloud je komercijalni SaaS proizvod koji prati alat k6 otvorenog koda. k6 OSS je besplatan za upotrebu i ima nekoliko integracije za upravljanje testovima opterećenja u vašoj vlastitoj infrastrukturi. K6 Cloud je opcionalna usluga koja pruža infrastrukturu i sisteme za ispitivanje opterećenja koji će vam pomoći u vašim naporima za testiranje performansi.

Da bismo bolje razumjeli što je k6 Cloud, nabrojimo nekoliko njegovih karakteristika:

  • Skalajte testove vodoravno i na različitim geografskim lokacijama.
  • Pohranite i vizualizirajte rezultate testa.
  • Automatski otkrijte probleme s performansama.
  • Korelirati rezultate između različitih testova.
  • Korisnici na brodu s graditeljem GUI testa.
  • Organizirajte timove i testove na centralnoj lokaciji.
  • Pružite predanu podršku.

k6 Cloud



Zajednica

K6 zajednica iskreno podržava i pomaže - snaga koja stoji iza uspjeha projekta.

Ako započinjete s k6, ne zaboravite doći do njih Slack ili forum zajednice za bilo koju vrstu pitanja. Postoji nekoliko kanala i kategorija za različite teme poput #grafana, #documentation, #feedback, #discussion, itd.

Za one koji su zainteresirani za unutarnji dio projekta, slijedite projekt u GitHub .



Zaključak

Ovaj post želi predstaviti uvod u k6 - jedan od najuzbudljivijih alata za ispitivanje opterećenja. Ako želite saznati što više nudi k6, preporučujemo vam da pročitate k6 Dokumenti .

Sa samo četiri godine života, k6 je postao bogat sadržajima i takmiči se sa dobro uspostavljenim alatima, stekavši sjajno usvajanje u programerima, DevOps-u i zajednicama za testiranje.

K6 tim i zajednica izgradili su alat za testiranje performansi usmjeren na programere koji udovoljava potražnji i potrebama nove ere.