Türchen #10: Performance-Messungen mit Gatling.io
Von Dirk Piethan am 10. Dezember 2019
Performance-Messungen
Performance-Messungen sind in vielen Projekten wichtig, da nur so bestimmt werden kann, ob die Applikation und auch die Infrastruktur zukünftige Lasten aufnehmen kann.
Bestandteile einer Performance-Messung
- Simulation vieler Benutzeranfragen mit komplexen Surfverhalten
- Sammeln wichtiger Parameter, und diese aggregieren
- Analyse der Daten und Berichterstellung
Gatling
Mit Gatling gibt es hier ein schönes Open Source Projekt, welches sehr flexibel eingesetzt werden kann. Wir zeigen Euch, wie Ihr Gatling dockerisiert und
einen kleinen Test durchführen könnt.
Dafür packen wir zunächst einmal Gatling in einen Docker Container. Dies hat den Vorteil, dass alle Abhängigkeiten im Container installiert werden und nicht lokal auf einem Rechner.
- mit ENV GATLING_VERSION 3.3.1 teilen wir Docker mit, welche Gatling Version geladen werden soll
FROM openjdk:8-jdk-alpine
LABEL maintainer="Dirk Piethan <dirk@centrias.de>"
WORKDIR /opt
ENV GATLING_VERSION 3.3.1
RUN mkdir -p gatling
RUN apk add --update wget && \
apk add --update bash libc6-compat &&\
mkdir -p /tmp/downloads && \
wget -q -O /tmp/downloads/gatling-$GATLING_VERSION.zip \
https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/$GATLING_VERSION/gatling-charts-highcharts-bundle-$GATLING_VERSION-bundle.zip && \
mkdir -p /tmp/archive && cd /tmp/archive && \
unzip /tmp/downloads/gatling-$GATLING_VERSION.zip && \
mv /tmp/archive/gatling-charts-highcharts-bundle-$GATLING_VERSION/* /opt/gatling/
WORKDIR /opt/gatling
VOLUME ["/opt/gatling/conf", "/opt/gatling/results", "/opt/gatling/user-files"]
ENV PATH /opt/gatling/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV GATLING_HOME /opt/gatling
ENTRYPOINT ["gatling.sh"]
CMD ["--help"]
Nach dem wir das Dockerfile erstellt haben, können wir dieses mit docker build bauen.
docker build -t mein-gatling .
Der Container benötigt drei Volumes:
- die Konfiguration für Gatling (./conf)
- die Userfiles, enhalten die Tests (./user-files
- das Result Verzeichnis, hier werden die Ergbenisse gespeichert
Folgende Paramenter können hier nur geändert werden:
- Dusers = Anzahl der User
- Dduration = Dauer des Tests
Diese Ordner müssen zuvor noch erstellt werden. Die Konfiguration von Gatling und der Test findet ihr in unserem Git Repository.
Mit folgendem Befehl führst Du dann Gatling aus:
docker run --rm -v $(pwd)/conf:/opt/gatling/conf \
-v $(pwd)/user-files:/opt/gatling/user-files \
-v $(pwd)/results:/opt/gatling/results \
-e JAVA_OPTS="-Dusers=10 -Dduration=60" \
mein-gatling -s MeinErsterTest
Gatling wird nun ausgeführt, zum Ende des Tests wird eine HTML-Ausgabe erstellt, die im Ordner Results zu finden ist, jeder Testlauf bekommt ein eigenes Verzeichnis, dort öffnest du die Index.html mit einem Browser.
Weitere Infomationen
Das Git Repository zu diesem Blog
Gatling
Dokumentation zu Gatling