Uruchamianie JMetera na Gitlabie to kolejny wpis w którym chcemy Wam pokazać możliwości narzędzia i jego wykorzystania w codziennej pracy. Jest to kolejny z wpisów w którym przedstawiamy Wam możliwość integracji kolejnego narzędzia z Gitlabem.
Czym jest JMeter
Apache JMeter to projekt Apache, który może być używany jako narzędzie do testowania obciążenia do analizowania i mierzenia wydajności różnych usług, ze szczególnym uwzględnieniem aplikacji internetowych. Więcej infromacji i artykułów o JMeterze w dedykowanym dziale.
Tworzenie gitlab-ci.yml
Chcąc uruchamiać testy z poziomu gitlaba nasze testy będą opierać się o stworzenie pliku gitlab-ci.yml, który będzie naszym centrum dowodzenia i zarządzania. Do uruchomienia naszych testów konieczne będzie:
- runner na gitlabie, na podstawie którego testy będą uruchamiane (pytaj Devopsów o tag)
- obraz dockerowy JMetera – dostępne na hub.docker.com.
- nasz test zapisany jako plik *.jmx
I. Najprostsza wersja
W naszym projekcie testowym tworzymy plik gitlab-ci.yml a następnie uzupełniamy go w najprostszy sposób:
jmeter_tests:
stage: test
image:
name: justb4/jmeter:latest
entrypoint: [""]
tags:
- nazwa-runnera
script:
- jmeter -v
- /entrypoint.sh -n -t ./test.jmx -l ./testresults.log -e -o results.csv
II. Tworzenie stage
W ramach naszych testów może zachodzić konieczność tworzenia faz egzekucji testów.
stages:
- test
- test2
III. Dodawanie elementów do obrazu
Każdy użytkownik JMetera ma świadomość, że konieczne jest czasami skorzytanie z plugin managera + dodatków które są dostępne. Więcej informacji o plugin managerze tutaj.
stages:
- test
jmeter_tests:
stage: test
image:
name: justb4/jmeter:latest
entrypoint: [""]
tags:
- nazwa runnera
script:
- ls
- ls $JMETER_HOME
- cp files/lib/jmeter-plugins-cmn-jmeter-0.6.jar $JMETER_HOME/lib/
- ls $JMETER_HOME/lib/ | grep jmeter
- cp files/lib/ext/* $JMETER_HOME/lib/ext/
- ls $JMETER_HOME/lib/ext/ | grep jmeter
- jmeter -v
- /entrypoint.sh -n -t ./test.jmx -l ./testresults.log -e -o results.csv
Polecenie:
cp files/lib/jmeter-plugins-cmn-jmeter-0.6.jar $JMETER_HOME/lib/
Służy do przekopiowania pliku umożliwiającego uruchomienie plugin managera.
cp files/lib/ext/* $JMETER_HOME/lib/ext/
Powyższe polecenie zaś odpowiada za przekopiowanie katalogu .ext wraz z rozszerzeniami które chcemy aby były działające w naszej aplikacji na Gitlabie.
IV. Raporty i artefakty
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.
artifacts:
when: always
paths:
- results.csv
expire_in: 10 days
Ważne jest abyście w skrypcie podanym w pierwszej linii podawali też rozszerzenie by otrzymać raporty.
Schedules
Jeżeli chcemy tak przygotowane testy w ramach naszego repozytorium, możemy uruchamiać cyklicznie. Z pomocą przychodzi nam Gitlab i zakładka CI/CD – Schedules:
Rozwiązanie to jest korzystne, gdyż dzięki niemu możemy wykorzystywać możliwości OWASP ZAP bez naszego ręcznego uruchamiania.
Podsumowanie
Uruchamianie JMetera na Gitlabie to kolejny wpis w ramach którego prezentujemy Wam możliwości integracji narzędzi z Gitlabem. Ponadto wpis ten tworzony jest w ramach szerzenia wiedzy z zakresu testów wydajnościowych. Zapraszamy na inne wpisy związane z JMeterem.