QF-Runtime Skalierung über Jenkins/Docker inkl. Lizenzserver

Die Janitza electronics GmbH ist ein international agierendes, dynamisches Familienunternehmen mit Sitz im mittelhessischen Lahnau. Mit ca. 200 Mitarbeitern gehört das 1986 gegründete Unternehmen zu den führenden Anbietern von Komplettlösungen im Bereich Energiemanagement, Spannungsqualitäts-Monitoring und Differenzstrommessung (RCM). Janitza konzentriert sich auf die Entwicklung und Fertigung hochwertiger Messgeräte mit der speziell darauf abgestimmten GridVis®-Software und einem umfangreichen Dienstleistungsangebot. Janitza zählt zu den Markt- und Technologieführern weltweit in diesem Segment mit Vertriebskanälen in mehr als 60 Ländern.

Janitza nutzt seit vielen Jahren intensiv QF-Test, um dem stetigen Wachstum gerecht zu werden und dabei eine hohe Qualität zu gewährleisten.

Angefangen bei einer Swing-Anwendung wurden auch die Technologiewechsel zu JavaFx, JxBrowser und Webapplikation mit QF-Test effektiv abgedeckt.

Um trotz wachsender Tests schnelle Rückmeldung zu garantieren, setzen wir bei Janitza auf Skalierung mittels Docker.

Erste Voraussetzung zum parallelen Ausführen sind möglichst viele kleine Test-Suiten, die sich eine gemeinsame Basis teilen. Für jede Test-Suite entsteht dann durch das JobDSL-Plugin automatisch ein passender Jenkins-Job. Das Jenkins-Docker-Plugin erzeugt dann passend zur Last die Docker-Slaves und verteilt diese auf die Docker-Hosts. Dies skaliert sehr einfach über das Hinzufügen von weiteren Docker-Hosts.

Das Docker-Image der Slaves ist eine Eigenentwicklung aus einem normalen Ubuntu-Image (phusion/baseimage) plus notwendige Pakete und SSH-Schlüssel.

Damit die Oberflächen-Tests funktionieren, startet der Slave einen virtuellen Bildschirm (Xvfb).

Einige Testfälle sind aber auf eine Windows-Umgebung angewiesen. Diese Tests nutzen ein anderes Label, um auf festen Windows-Slaves zu laufen.

Die Slaves nutzen alle den gleichen QF-Lizenzserver.

 

Tristan Himmelreich

Diplom-Informatiker | Forschung & Entwicklung