k6 - Najlepsze środowisko programistyczne do testowania obciążenia

W ostatnich latach branża testowania wydajności przeszła radykalną transformację. Tradycyjnie testy obciążeniowe były przeprowadzane przez inżynierów testów wydajności, a także inżynierów i testerów zapewniania jakości. Te role zwykle działały jako niezależne jednostki, przeprowadzając testy wydajności po zakończeniu tworzenia aplikacji przez programistów.

Wraz z przyjęciem zwinnych zasad przez zespoły programistyczne, testowanie wydajnościowe jako aktywność rozpoczyna się znacznie wcześniej w procesie tworzenia oprogramowania, tzw testowanie z przesunięciem w lewo . Zamiast pozostawiać testy wydajności działowi kontroli jakości, zespoły oprogramowania wykonują teraz testy niezależnie lub we współpracy z inżynierami zapewniania jakości.

Kolejną korzyścią płynącą z przesunięcia w lewo testowania jest rosnący wzrost wykorzystania testów wydajnościowych w zespołach programistycznych. Jednak wielu z tych nowych użytkowników wymaga narzędzi, które dobrze pasują do ich codzienny przepływ pracy , pozwalając im na to testuj regularnie przy minimalnym wysiłku. Tradycyjne narzędzia, takie jak JMeter i LoadRunner, nie pasowały tak dobrze, a zamiast tego zwracają się w stronę narzędzi nowej generacji, takich jak k6.




Odsłonięcie k6

k6 to darmowy i narzędzie do testowania obciążenia typu open source dążenie do tego, aby testowanie wydajności było produktywnym i przyjemnym doświadczeniem.

Narzędzie jest skryptowalne, a testy k6 są napisane w JavaScript , dając możliwość pisania testów w jednym z najbardziej znanych języków programowania.


Potężny język skryptowy i interfejs API zapewniają niezbędną elastyczność, aby naśladować rzeczywiste scenariusze w skryptach. Ponieważ aplikacje i systemy nieustannie ewoluują, możliwość modularyzacji testów znacznie zwiększy wydajność procesu testowania.

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

k6 to narzędzie wiersza poleceń dostępne dla systemów Windows, Linux i Mac. Alternatywnie istnieje oficjalny obraz Dockera.

Przeprowadzenie testu wydajności za pomocą k6 jest tak proste, jak uruchomienie polecenia bash:


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

Kilka ważnych funkcji skryptów to:

  • Solidne i dobrze udokumentowane interfejsy API JavaScript do testowania skryptów
  • Głęboka personalizacja dzięki wielu opcjom konfiguracji
  • Scenariusze
  • Parametryzacja poprzez zmienne środowiskowe
  • Obsługa gniazd sieciowych
  • Haczyki cyklu życia do dostosowywania konfiguracji i rozłączania
  • Kontrole, metryki, tagi, pliki cookie…


Rejestrator sesji i konwertery

Jako najbardziej wyrafinowane narzędzia do testowania obciążenia, k6 posiada rejestrator sesji, który ułatwia tworzenie testów obciążenia z sesji użytkownika. Wystarczy dostarczyć plik HAR z przeglądarki lub sesji użytkownika, a rejestrator utworzy dla Ciebie test k6. Jest to szczególnie pomocne, jeśli tak jest strony testujące obciążenie .

Ponadto inne narzędzia mogą pomóc w automatycznym generowaniu testów k6 z różnych technologii:


  • Konwerter JMeter: przekonwertuj plik JMeter .jmx do skryptu k6.
  • Konwerter listonosza: przekonwertuj kolekcję Postman na skrypt k6.
  • Konwerter OpenAPI: przekonwertuj specyfikację Swagger / OpenAPI na skrypt k6.
  • Rozszerzenie przeglądarki: wygeneruj skrypt k6 z sesji przeglądarki. Dostępne tylko dla użytkowników chmury k6.

Chociaż nie musisz używać rejestratora i konwerterów, aby rozpocząć testowanie, narzędzia te mogą pomóc w szybszym wdrożeniu zespołu do K6 lub skryptu testów.

Rejestrator i konwerter sesji



Wizualizacja wyników

Domyślnie k6 wysyła wynik do konsoli. Dodatkowo dostępnych jest kilka integracji, które pomogą Ci podczas analizy i wizualizacji wyników testów:

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

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




Ciągłe i zautomatyzowane testy

W społeczności testerów automatyzacja jest końcowym celem wielu organizacji. Gdy Twoja aplikacja i system ulegną zmianie, automatyzacja i częste testy pomogą Ci wcześniej wykryć regresje wydajności.

Dokumentacja zawiera przewodniki po najpopularniejszych narzędziach CI / CD, umożliwiając bezproblemową integrację k6 z potokami CI.

  • Azure Pipelines
  • CircleCI
  • Akcje GitHub
  • GitLab
  • Jenkins
  • TeamCity

Zespół k6 uważa, że ​​robienie testowanie zorientowane na cel jest niezbędnym warunkiem automatyzacji. Podczas przeprowadzania testów automatycznych głównym celem testu powinno być po pierwsze sprawdzenie oczekiwań dotyczących wydajności systemu, a po drugie, ostrzeżenie, jeśli system nie spełnia celów wydajnościowych. Na przykład sprawdzenie, czy:

  • Czas odpowiedzi na 95% żądań nie przekracza 600 ms.
  • System nie generuje więcej niż 0,5% błędów.

W k6 definiujesz te oczekiwania za pomocą Progi w twoim teście. Jeśli Twój system do nich nie dotrze, k6 poinformuje Cię o niepowodzeniu zwracając niezerowy kod wyjścia.


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

Jeśli chcesz dowiedzieć się więcej na ten temat, przeczytaj przewodnik po k6 dla automatyzacja testów wydajnościowych oraz dokumentację dotyczącą progów.



k6 Chmura

k6 Chmura to komercyjny produkt SaaS, który towarzyszy narzędziu K6 typu open source. k6 OSS jest darmowy i ma kilka integracje do zarządzania testami obciążenia we własnej infrastrukturze. Chmura k6 to opcjonalna usługa, która zapewnia infrastrukturę do testowania obciążenia i systemy, które pomogą Ci w testowaniu wydajności.

Aby lepiej zrozumieć, czym jest chmura k6, wyliczmy kilka jej funkcji:

  • Skaluj testy w poziomie iw różnych lokalizacjach geograficznych.
  • Przechowuj i wizualizuj wyniki testów.
  • Automatyczne wykrywanie problemów z wydajnością.
  • Skoreluj wyniki między różnymi testami.
  • Zbuduj użytkowników z konstruktorem testów GUI.
  • Organizuj zespoły i testy w centralnej lokalizacji.
  • Zapewnij dedykowane wsparcie.

k6 Chmura



Społeczność

Społeczność k6 jest autentycznie wspierająca i pomocna - siła stojąca za sukcesem projektu.

Jeśli zaczynasz od k6, nie zapomnij dotrzeć do nich Luźny albo forum społecznościowe na wszelkiego rodzaju pytania. Istnieje kilka kanałów i kategorii dla różnych tematów, takich jak #grafana, #documentation, #feedback, #discussion itp.

Dla zainteresowanych wewnętrznymi aspektami projektu, śledź projekt w GitHub .



Wniosek

Ten post ma na celu przedstawienie wprowadzenia do k6 - jednego z najbardziej ekscytujących narzędzi do testowania obciążenia. Jeśli chcesz dowiedzieć się, co więcej ma do zaoferowania k6, zalecamy przeczytanie k6 Docs .

Mając zaledwie cztery lata życia, k6 stał się bogaty w funkcje i konkuruje z dobrze znanymi narzędziami, zyskując znakomitą adaptację w programistach, DevOps i społecznościach testujących.

Zespół i społeczność k6 stworzyli zorientowane na programistów narzędzie do testowania wydajności, które spełnia wymagania i potrzeby nowej ery.