Einführung
Jenkins-Builds sind leichter nachvollziehbar, wenn sie Ergebnisse veröffentlichen. Testberichte zeigen auf, welche Tests erfolgreich waren oder fehlgeschlagen sind, und Benachrichtigungen helfen einem Team dabei, Builds zu identifizieren, die Aufmerksamkeit erfordern.
In diesem Lab verwenden Sie das Jenkins-Dashboard, um einen Freestyle-Job zu erstellen, einen kleinen JUnit-XML-Bericht zu generieren, diesen als Jenkins-Testbericht zu veröffentlichen, einen Empfänger für E-Mail-Benachrichtigungen zu konfigurieren und einen zweiten Build mit einem fehlerhaften Test auszuführen.
Erstellen eines Jobs, der JUnit-XML erzeugt
In diesem Schritt erstellen Sie einen Jenkins Freestyle-Job, der eine JUnit-XML-Datei schreibt. JUnit-XML ist ein gängiges Berichtsformat, das Jenkins auch dann lesen kann, wenn die Testdaten aus einem einfachen Shell-Skript stammen.
Öffnen Sie die Desktop-Oberfläche. Firefox öffnet Jenkins automatisch. Falls nicht, öffnen Sie http://localhost:8080.
Vom Jenkins-Dashboard aus:
Klicken Sie auf New Item, geben Sie test-report-demo ein, wählen Sie Freestyle project und klicken Sie dann auf OK.
Scrollen Sie auf der Konfigurationsseite zu Build Steps, klicken Sie auf Add build step und wählen Sie Execute shell.
Geben Sie dieses Shell-Skript in das Feld Command ein:
mkdir -p reports
printf '%s\n' \
'<testsuite name="LabExSuite" tests="2" failures="0" skipped="0">' \
' <testcase classname="demo.HealthTest" name="test_home_page"/>' \
' <testcase classname="demo.HealthTest" name="test_api_status"/>' \
'</testsuite>' > reports/junit.xml
echo "Generated passing JUnit report"
Klicken Sie auf Save.
Die Job-Seite sollte sich nach dem Speichern öffnen.

Führen Sie diesen Befehl im Terminal aus, um den gespeicherten Shell-Schritt zu protokollieren:
docker exec jenkins sh -lc "grep -n -E 'reports/junit.xml|Generated passing JUnit report' /var/jenkins_home/jobs/test-report-demo/config.xml" | tee /home/labex/project/test-report-job-config.txt
Veröffentlichen des JUnit-Testergebnisberichts
In diesem Schritt fügen Sie eine Post-Build-Aktion hinzu, die die JUnit-XML-Datei veröffentlicht. Ein Build-Schritt erstellt Dateien während des Builds. Eine Post-Build-Aktion verarbeitet Dateien, nachdem der Build abgeschlossen ist.
Klicken Sie auf der Job-Seite test-report-demo auf Configure.
Scrollen Sie zu Post-build Actions, klicken Sie auf Add post-build action und wählen Sie Publish JUnit test result report.
Geben Sie im Feld Test report XMLs Folgendes ein:
reports/junit.xml
Klicken Sie auf Save.

Führen Sie diesen Befehl aus, um den gespeicherten JUnit-Publisher zu protokollieren:
docker exec jenkins sh -lc "grep -n -E 'JUnitResultArchiver|<testResults>reports/junit.xml</testResults>' /var/jenkins_home/jobs/test-report-demo/config.xml" | tee /home/labex/project/junit-publisher-lines.txt
Die Ausgabe sollte sowohl JUnitResultArchiver als auch reports/junit.xml enthalten.
Ausführen eines Builds und Überprüfen der Testergebnisse
In diesem Schritt führen Sie den Job aus und überprüfen den veröffentlichten Testbericht. Der erste Bericht enthält zwei erfolgreiche Tests, daher sollte Jenkins den Build als erfolgreich markieren.
Klicken Sie auf der Job-Seite test-report-demo auf Build Now.
Wenn Build #1 in der Build-Historie erscheint, öffnen Sie ihn und klicken Sie auf Test Result.
Die Seite mit den Testergebnissen sollte null Fehler anzeigen und das Paket demo auflisten.

Führen Sie diesen Befehl im Terminal aus, um dieselben Ergebnisdaten zur Überprüfung zu speichern:
curl -fsS http://localhost:8080/job/test-report-demo/1/api/json | grep '"result":"SUCCESS"' | tee /home/labex/project/passing-test-result.txt
curl -fsS http://localhost:8080/job/test-report-demo/1/testReport/api/json | grep '"failCount":0' | tee -a /home/labex/project/passing-test-result.txt
Sie sollten Folgendes sehen:
"result":"SUCCESS"
"failCount":0
Hinzufügen eines Empfängers für Build-Benachrichtigungen
In diesem Schritt fügen Sie einen Empfänger für Jenkins-E-Mail-Benachrichtigungen hinzu. In einem produktiven Controller müsste Jenkins über SMTP-Einstellungen verfügen, bevor E-Mails versendet werden können. In diesem Lab ist das wichtige grundlegende Konzept, wo der Job den Empfänger der Benachrichtigung speichert.
Klicken Sie auf der Job-Seite test-report-demo auf Configure.
Scrollen Sie zu Post-build Actions, klicken Sie auf Add post-build action und wählen Sie E-mail Notification.
Geben Sie im Feld Recipients Folgendes ein:
dev-team@example.com
Klicken Sie auf Save.

Führen Sie diesen Befehl aus, um die gespeicherte Benachrichtigungskonfiguration zu protokollieren:
docker exec jenkins sh -lc "grep -n -E 'hudson.tasks.Mailer|dev-team@example.com' /var/jenkins_home/jobs/test-report-demo/config.xml" | tee /home/labex/project/mail-notification-lines.txt
Die Ausgabe sollte den Jenkins-Mailer-Publisher und die Empfängeradresse enthalten.
Einen Test fehlschlagen lassen und neu bauen
In diesem Schritt aktualisieren Sie den Shell-Schritt, sodass der JUnit-Bericht einen fehlgeschlagenen Test enthält. Jenkins markiert Builds mit fehlgeschlagenen JUnit-Tests als UNSTABLE. Dies ist die Art von Build-Ergebnis, die eine Team-Benachrichtigung hervorheben sollte.
Klicken Sie auf der Job-Seite test-report-demo auf Configure.
Suchen Sie den Build-Schritt Execute shell. Ersetzen Sie den Befehl durch diesen fehlerhaften Bericht:
mkdir -p reports
printf '%s\n' \
'<testsuite name="LabExSuite" tests="2" failures="1" skipped="0">' \
' <testcase classname="demo.HealthTest" name="test_home_page"/>' \
' <testcase classname="demo.HealthTest" name="test_api_status">' \
' <failure message="API returned 500">simulated failure</failure>' \
' </testcase>' \
'</testsuite>' > reports/junit.xml
echo "Generated failing JUnit report"
Klicken Sie auf Save und dann auf Build Now.
Wenn Build #2 erscheint, öffnen Sie ihn und klicken Sie auf Test Result. Die Seite sollte einen fehlgeschlagenen Test anzeigen.

Führen Sie diesen Befehl aus, um den Nachweis des instabilen Builds zu speichern:
curl -fsS http://localhost:8080/job/test-report-demo/2/api/json | grep '"result":"UNSTABLE"' | tee /home/labex/project/unstable-test-result.txt
curl -fsS http://localhost:8080/job/test-report-demo/2/testReport/api/json | grep '"failCount":1' | tee -a /home/labex/project/unstable-test-result.txt
Sie sollten Folgendes sehen:
"result":"UNSTABLE"
"failCount":1
Zusammenfassung
Sie haben über das Dashboard einen Jenkins Freestyle-Job erstellt, JUnit-XML generiert, diese mit einer Post-Build-Aktion veröffentlicht, erfolgreiche und fehlgeschlagene Testberichte überprüft und einen E-Mail-Benachrichtigungsempfänger für den Job konfiguriert.