Türchen #10: Performance-Messungen mit Gatling.io


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.

HTML Report

Weitere Infomationen

Das Git Repository zu diesem Blog
Gatling
Dokumentation zu Gatling

Zurück zu den Blogbeiträgen

Trainings und Workshops

Vom Kurs für Einsteiger bis hin zu Experten-Workshops mit Tiefgang können wir Euch mit technischen Trainings unterstützen. Darüber hinaus bieten wir auch Workshops mit Fokus auf Cloud-Strategie oder für die Vertriebsmannschaft an.

Mehr...