Testy wydajnościowe K6 – uruchamianie na Githubie

K6

Loading

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
  1. Pierwsza część to nazwa flow;
  2. Następnie sposoby uruchomienia – po zmianach i ręcznie (w dalszej części artykułu opisane dokładnie)
  3. Później jest nasz job testowy, gdzie korzystamy z uruchomienia na ubuntu w wersji najnowszej
  4. Następnie wykorzystujemy Github-actions (opisane szczegółowo tutaj).
  5. Później następuje uruchomienie naszego skrypu
  6. 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. 

Testy wydajnościowe K6 - uruchamianie na Githubie

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.