30. Januar 2019
QF-Test und Java Client Codeabdeckungsanalyse
Mit der Codeabdeckungsanalyse können Sie heraus finden in welchem Umfang der Quellcode eines Programms während der Testausführung ausgeführt wird. QF‑Test allein bietet keine Codeabdeckungsanalyse.
Möglich wird dies aber durch eine Kombination von QF‑Test mit Open Source Tools wie JaCoCo. Die Integration solcher Tools ermöglicht die Erstellung von Codeabdeckungsberichten für die von QF-Test durchgeführten Testschritte.
So integrieren Sie JaCoCo in einen QF-Test-Testlauf
Um JaCoCo in einen QF-Test-Testlauf zu integrieren müssen Sie zunächst die Datei 'jacocoagent.jar' aus dem lib-Ordner der Datei 'jacoco - $ (version) .zip' extrahieren. Diese ZIP-Datei kann hier heruntergeladen werden.
Am einfachsten können Sie JaCoCo integrieren, wenn die Java-Anwendung, die Sie testen, eine JAR- oder eine .class-Datei ist. Dann müssen Sie nur den Knoten "Java SUT-Client starten" suchen, der Ihre Java-Anwendung startet. Dann geben Sie in der "Parametertabelle" dieses Knotens ein:
-javaagent:<Pfad zur jacocoagent.jar Datei>=destfile=<Pfad und Dateiname für die von jacoco generierten Statistiken>
Falls Sie eine .exe- oder .bat-Java-Anwendung haben, funktioniert der obige Weg nicht. In diesem Fall werden zwei Jython Server-Skripts benötigt. Das erste Skript mit dem Inhalt
jacocojar = "<Pfad zur jacoco.jar Datei>"
destfile = "<Pfad und Dateiname für die von jacoco generierten Statistiken>"
rc.setProperty("env", "JAVA_TOOL_OPTIONS", "-javaagent:%s=destfile=%s" % (jacocojar, destfile))
muss vor dem Knoten 'SUT-Client starten' und ein weiteres optionales Skript kann nach dem Knoten 'Wait for client to verbindung' mit eingefügt werden.
rc.setProperty("env", "JAVA_TOOL_OPTIONS", None)
Hinweise
- Bitte beachten Sie, dass JaCoCo seinen Bericht nicht direkt in die Ergebnisdatei schreibt. Diese wird dann erstellt, wenn die Anwendung, die Sie testen, beendet wird!
- Mit den meisten Texteditoren ist die JaCoCo-Ergebnisdatei schwer lesbar. Um die Statistiken zu analysieren empfehlen wir ein Plugin für Ihre IDE zu verwenden.
- Um Kontrolle über die Anwendung die Sie testen zu erlangen, fügt QF-Test einige seiner eigenen Klassen in die Anwendung ein. Daher enthält die Ergebnisdatei nicht nur Codeabdeckungs-Statistiken für die Klassen Ihrer Anwendung, sondern auch für einige QF-Test-Klassen.
- Da Sie QF-Test wahrscheinlich nicht für Ihre Anwendung testen möchten, sondern Ihre Anwendung, können Sie die für QF-Test-Klassen erstellten Statistiken einfach ignorieren.
- Bitte stellen Sie sicher, dass der Prozess, der Ihre Anwendung ausführt, die Rechte zum Schreiben der JaCoCo-Ergebnisdatei besitzt.
- Wenn Sie einen (Windows-) Pfad in einem Jython / Groovy-Skript angeben ersetzen Sie bitte alle "" Zeichen im Pfad durch "/".