Testy wydajnościowe K6 – uruchamianie na Githubie to kolejny wpis w którym chcemy Wam pokazać możliwości tego narzędzia i jego wykorzystania w codziennej pracy. Jest to kolejny z wpisów przedstawiających Wam alternatywę dla JMetera czy Gatlinga. Z tego powodu, że testerzy poszukują różnych alternatyw, wypróbuj to co będzie dla Ciebie najbardziej odpowiednie.
Czym jest K6
O narzędziu K6 pisaliśmy kilkanaście tygodni wcześniej – robiąc Wam krótkie wprowadzenie do tworzenia testów wydajnościowych z wykorzystaniem tego narzędzia. W ramach naszych wpisów przedstawialiśmy też w jaki sposób tworzyć raporty z wykorzystaniem tego narzędzia.
Tworzenie w github/workflows pliku yml
Chcąc uruchamiać testy z poziomu Githuba nasze testy będą opierać się o stworzenie pliku k6.yml, który będzie naszym centrum dowodzenia i zarządzania. Do uruchomienia naszych testów konieczne będzie:
- runner na Githubie na podstawie którego testy będą uruchamiane
- obraz dockerowy Ubuntu – dostępne na hub.docker.com.
- nasz test zapisany jako script.js
Plik k6.yml
W naszym projekcie testowym tworzymy plik k6.yml a następnie uzupełniamy go w najprostszy sposób:
name: k6 Performance Tests
on:
push:
branches:
- main
workflow_dispatch:
jobs:
performance_tests:
name: Run k6 test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run k6 test
uses: grafana/k6-action@v0.3.0
with:
filename: script.js
- name: Archive Reports
uses: actions/upload-artifact@v2
with:
name: k6-reports
path: report/result.html
- Pierwsza część to nazwa flow;
- Następnie sposoby uruchomienia – po zmianach i ręcznie (w dalszej części artykułu opisane dokładnie)
- Później jest nasz job testowy, gdzie korzystamy z uruchomienia na ubuntu w wersji najnowszej
- Następnie wykorzystujemy Github-actions (opisane szczegółowo tutaj).
- Później następuje uruchomienie naszego skrypu
- Na koniec generujemy artefakty w katalogu
II. Artefakty i Raport
Jeżeli chcesz możesz generować i potem zapisywać swój raport. Dzięki temu będziesz mógł analizować dokładniej wyniki, lub przedstawiać je innym w formie graficznej.
- name: Archive Reports
uses: actions/upload-artifact@v2
with:
name: k6-reports
path: report/result.html
Ważnym aspektem jest wskazanie dobrej ścieżki i ewentualne stworzenie folderu wcześniej. W naszej opcji mamy katalog z raporami w głównej części repo.
Ręczne uruchomienie
W skrypcie został dodany workflow_dispatch.
workflow_dispatch to jeden z mechanizmów dostępnych w GitHub Actions, który umożliwia manualne uruchamianie workflow. GitHub Actions to narzędzie do automatyzacji zadań i procesów w repozytoriach GitHub. Workflow Dispatch pozwala użytkownikom na wywołanie określonego workflow z poziomu interfejsu użytkownika na stronie repozytorium.
Główne cechy workflow_dispatch to:
Ręczne uruchamianie: Użytkownik może wywołać określone workflow na żądanie, bez konieczności czekania na automatyczne wyzwalacze (na przykład zmiany w repozytorium).
Parametryzacja: Można dostarczyć parametry, które zostaną przekazane do uruchamianego workflow. To pozwala na dostosowanie działania workflow w zależności od potrzeb.
Dostęp przez interfejs użytkownika: użytkownik może uruchomić workflow, przechodząc na stronę repozytorium na GitHubie i klikając odpowiednią opcję.
Schedules
Jeżeli chcemy tak przygotowane testy w ramach naszego repozytorium, możemy uruchamiać cyklicznie. Z pomocą przychodzi nam Github i nasz skrypt.
on:
schedule:
- cron: '0 0 * * *' # Uruchamia workflow codziennie o północy (UTC)
Rozwiązanie to jest korzystne, gdyż łatwo możemy wdrożyć nasze rozwiązanie w proces CI/CD bądź uruchamiać wcześniej zdefiniowane testy na środowisku. Oczywiście – zachodzi konieczność optymalizacji, by uruchamiane testy rzeczywiście pokrywały się z tym co powinno się zadziać.
Podsumowanie.
Artykuł Testy wydajnościowe K6 – uruchamianie na Githubie – jest kolejnym krokiem dla Was by rozpocząć przygodę z tym narzędziem, W ramach kategorii dotyczącej testów wydajnościowych będziemy poruszać wiele narzędzi. Przodownikiem z racji popularności będzie JMeter, jednak znajdziemy tam różne alternatywy, jak wspomniany K6, czy Gatling, oraz inne narzędzia wykorzystywane przez testerów.