Uruchamianie JMetera na Bitbuckecie

JMeter

Loading

Uruchamianie JMetera na Bitbuckecie 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 Bitbucketem. 

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 bitbucket-pipelines.yml

Chcąc uruchamiać testy z poziomu Bitbucketa nasze testy będą opierać się o stworzenie pliku bitbucket-pipelines.yml, który będzie naszym centrum dowodzenia i zarządzania. Do uruchomienia naszych testów konieczne będzie:

  • runner na Bitbucketem, na podstawie którego testy będą uruchamiane
  • obraz dockerowy JMetera – dostępne na hub.docker.com
  • nasz test zapisany jako plik *.jmx
I. Najprostsza wersja

W naszym projekcie testowym tworzymy plik bitbucket-pipelines.yml a następnie uzupełniamy go w najprostszy sposób:

image: justb4/jmeter:latest

pipelines:
default:
  - step:
      name: Run JMeter Tests
      script:
        - jmeter -v
        - /entrypoint.sh -n -t ./FirstTestCnc.jmx
 
1. image – nazwy dockerowych obrazów z których skorzystamy
2. Name – nazwa testu
3. skrypt – polecenie którym uruchamiamy testy (sprawdzenie wersji oraz polecenie do uruchomienia)
 
II. 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

image: justb4/jmeter:latest

pipelines:
default:
  - step:
      name: Run JMeter Tests
      script:
        - 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 ./FirstTestCnc.jmx

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 Bitbuckecie. 

III. 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. Poszerzamy skrypt o komendę:

 -e -o report/results.csv
 
Dodatkowo dodajemy miejsce na przechowywanie artefaktów:
 
        artifacts:
        - report/**
Gotowy skrypt wygląda następująco:
 
image: justb4/jmeter:latest

pipelines:
default:
  - step:
      name: Run JMeter Tests
      script:
        - 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 ./FirstTestCnc.jmx -l -l ./testresults.log -e -o report/results.csv
        artifacts:
          - report/**

Ważne jest abyście w skrypcie podanym w pierwszej linii podawali też rozszerzenie by otrzymać raporty. 

Uruchamianie JMetera na Gitlabie - dashboard

Schedules

Jeżeli chcemy tak przygotowane testy w ramach naszego repozytorium, możemy uruchamiać cyklicznie. Z pomocą przychodzi nam Bitbucket i zakładka CI/CD – Schedules:

Uruchamianie JMetera na Bitbuckecie

Rozwiązanie to jest korzystne, gdyż dzięki niemu możemy wykorzystywać możliwości JMetera bez naszego ręcznego uruchamiania.  

Podsumowanie

Uruchamianie JMetera na Bitbuckecie to kolejny wpis w ramach którego prezentujemy Wam możliwości integracji narzędzi z Bitbucketem. Ponadto wpis ten tworzony jest w ramach szerzenia wiedzy z zakresu testów wydajnościowych. Zapraszamy na inne wpisy związane z JMeterem