Neues rund um JMeter

🕒 Lesedauer: 3 Minuten

Die Qytera hat sich schon seit einigen Jahren auf das Thema Lasttesten und Performancetesten spezialisiert und konzentrierte sich dabei von Anfang an auf Open Source. Da war es naheliegend, dass wir bei diesem Thema bei JMeter landeten und seit der Version 3.0 immer wieder Projekte damit umsetzten. In der Zeit wandelte sich JMeter mal mehr, mal weniger. So jetzt auch mit den aktuelleren Versionen 5.5 aus Mitte 2022 und 5.6.3 aus dem Juli letzten Jahres . Hiermit möchte ich euch einige Neuerungen vorstellen und vielleicht entdeckt ihr auch für euch das neue Potenzial.

Java 17 Unterstützung

Lange hat es gedauert, bis JMeter mit einem neueren Java ohne Einschränkungen funktioniert. Denn gerade die Version 17 von Java ist im Unternehmensumfeld sehr wichtig, denn durch den LTS Support können darauf langfristige Projekte entwickelt werden, ohne den ständigen Updates ins Risiko zu laufen, dass die Applikation dadurch nicht mehr funktioniert. Gerade die vorherige offiziellen Java 8 Unterstützung, konnte schon zum Problemen in Betrieb führen, da diese Version von 2014 war und selbst die nächste LTS Version 11 von 2018 nie ganz offiziell supportet wurde. Nichtsdestotrotz sind viele Plugins immer noch mit Java 8 erstellt worden und Java 8 biete vermutlich die größte Kompatibilität. Das wird sich in Zukunft hoffentlich ändern.

Image
Java Logo

 

Open Model Thread Group

Die Anforderungen an die Gestaltung von Performancetest-Szenarien werden immer vielfältiger und mit den bestehenden Möglichkeiten konnte man einige Szenarien kaum umsetzen. Deshalb griff man oft auf Thread Groups zurück, die von Drittherstellern bereitgestellt wurden. Mit allen Vor- und Nachteilen. Nun aber gibt es mit der JMeter Basis eine neue Open Model Thread Group die eine hohe Flexibilität zu lässt. Für mehr Details zu dem Thema Open und Closed Models haben wir einen eigenen Beitrag: Performance Testing: Ein Überblick über Closed und Open Workflow Models

Image
Open Model Thread Group
Bild: Beispiel einer Open Model Thread Group [Quelle: Qytera]

 

Log4j

Nachdem Ende 2021 eine große Log4Shell Sicherheitslücke in der Bibliothek von log4j gefunden wurde, sind in den Softwareentwicklungsprojekten viele Aktivitäten gestartet worden, damit diese Lücke geschlossen wurde. So gut wie jedes Projekt hatte mit den Auswirkungen zu kämpfen. Auch in sehr vielen Open-Source-Projekten wurde diese Bibliothek verwendet. Leider war anfangs nicht genau klar, welche Auswirkungen die Lücke auf die Anwendungen hat. Es wurden mehrere Bugfixes in kurzer Zeit vorgenommen. Es kamen aber immer wieder weitere Sicherheitslücken hinzu, bzw. es wurden bessere Lösungen implementiert, mit diesem Umstand gut umzugehen. In JMeter 5.5 wurde nochmals ein Update auf einen neuere Version 2.17.2 dieser Bibliothek integriert, die nun gegenüber den bekannten Problemen gefixt ist.

Version 1.2: Kritische "Log4Shell" Schwachstelle in weit verbreiteter Protokollierungsbibliothek Log4j

https://builtin.com/cybersecurity/log4j-vulerability-explained

 

Java RegEx

Die bis dato verwendete Oro RegEx Implementierung kann durch die in Java enthaltene RegEx Implementierung ersetzt werden. Diese Option lässt sich über das JMeter Property jmeter.regex.engine mit dem Wert java ändern. Somit kann in neueren JMeter Projekten mit der Java-RegEx gearbeitet werden, aus abwärtskompatibilität aber weiterhin mit dem Oro-RegEx. Vorteile sehe ich darin, dass wir mit der Java-Internen Implementierung ressourcensparender unsere RegEx-Prüfungen erstellen können.

https://objectcomputing.com/resources/publications/sett/october-2001-regular-expressions-in-java 

 

Kernverbesserungen mit Kotlin

Es hält in JMeter immer mehr Kotlin-Code Einzug, so dass neue Elemente, wie z.B. die schon beschriebene Open Model Thread Group, damit geschrieben wurden. Außerdem werden schon einige Kernklassen von JMeter damit implementiert. Für uns als ambitionierter Anwender kann die Diagrammbibliothek lets-plot-kotlin Neuerungen bieten, wenn wir eigene Diagramme in der Benutzeroberfläche erstellen möchten.

 

Weitere Verbesserungen oder Bugfixing

In die Version 5.5 sind weit über 70 Verbesserungen oder Bugfixings implementiert worden, in der Version 5.6 eben. Hier kann ich leider nicht alle Verbesserungen erwähnen, aber einige sind dennoch hervorzuheben.

Anzahl sichtbarer Zeilen bei If oder While Controllern

Damit bei längeren If oder While Controllern der gesamte Code lesbar wird, ist die Anzahl der Zeilen von 5 vergrößert worden. Nun kann je nach Fenstergröße mehr Zeilen angezeigt werden. Wie vorher kann im Code gescrollt werden, wenn die Codezeilen den sichtbaren Bereich überschreiten.

Image
JMeter sichtbare Zeilen
Bild: Sichtbare Codezeilen [Quelle: Qytera]

Exception bei HTTP-Samplern mit korrekter Zeit

Wird bei der Ausführung eines HTTP-Samplers eine Exception geworfen, dann wird der darin angezeigte Zeitstempel korrekt ausgegeben. Vorher war dort der 31.12.1969 gestanden. Zudem nutzen die HTTP_Sampler jetzt Caffeine für das Caching der Headers und nciht wie zuvor commons-collection4, was die Implementierungen wohl etwas verschlanken sollte.

File-Upload mit fehlende Buttons ergänzt

In der Registerkarte File-Upload des HTTP-Request Samplers wurden die fehlenden Buttons am unteren Fensterrand ergänzt, damit auch in diesem Dialog die notwendigen Funktionen zur Verfügung stehen, wie Sortierung, Einfügen aus Zwischenablage oder die Details, die einen vergrößertes Fenster zum bearbeiten öffnet.

Image
Buttons im JMeter File Upload
Bild: Buttons im File-Upload [Quelle: Qytera]

Zusammenfassung und Fazit

Es sind einige Details verbessert worden, die als Anwender kaum auffallen, wenn man sie in diesem Moment nicht vermisst oder als Fehler erhielt. Aber die Unterstützung von Java 17 und die Open Model Thread Group machen es schon sehr sinnvoll, JMeter zu aktualisieren. Ich selbst habe es schon seit einiger Zeit im Einsatz, finde es sehr stabil und finde gerade die neue Steuerung mit der Open Model Thread Group sehr gelungen und bringe diese für meine Projekte in den Einsatz.

Alle Änderungen und Verbesserungen können in den aktuellen Releasenotes eingesehen werden: https://jmeter.apache.org/changes.html 

 

Veröffentlicht am 10.Februar 2025

Aktualisiert am 08.April 2025

Moritz Salein

Senior Testmanager und Test Automation Engineer

Moritz Salein ist seit über 20 Jahren in der IT tätig, aber vor über 10 Jahren begann seine Passion des Softwaretestens. Seit dieser Zeit übernahm er immer mehr Aufgaben die im Softwaretest, Testmanagement und auch ganz speziell in der Testautomatisierung anfallen. Dadurch war er in den unterschiedlichsten, meist international aufgestellten Unternehmen und Projekten beschäftigt. Auch in der agilen Softwareentwicklung fand er großen Gefallen, so dass er schon seit über 8 Jahren Erfahrungen mit verschiedensten Vorgehensweisen, wie Scrum, Kanban oder SAFe sammeln konnte. Er war als Senior Testmanager und Test Automation Engineer bei Qytera tätig.

Finden Sie weitere interessante Artikel zum Thema: