So verwalten Sie Jenkins von Slack aus

 Anton Smirnow
Aug 23, 2020 * 6 min Lesezeit

Testautomatisierung ist nicht nur die Automatisierung der Anwendung. Ich würde sagen, dass sogar das programmgesteuerte Teilen der Testergebnisse mit dem Team Teil der Testautomatisierung ist. Das Team hängt also nicht von einer Person ab, um die Ergebnisse zu erzielen. Das Team kann auch ohne Verzögerung weitere Maßnahmen auf der Grundlage der Testergebnisse ergreifen.

In diesem Artikel werden wir sehen, wie wir Testergebnisse in Slack teilen können. Auch, wie Sie eine automatisierte Testsuite-Ausführung in Ihrem Jenkins / CI-Tool auslösen können.

Slack

Wir verwenden Slack in unserer Organisation. Möglicherweise verwenden Sie Slack auch, um Informationen zwischen den Teammitgliedern in Ihrer Organisation zu kommunizieren. Slack ist ein großartiges Tool, das alle auf dem Laufenden hält und unnötige E-Mails reduziert.

Slack ist ein Kollaborationszentrum für die Arbeit, unabhängig davon, welche Arbeit Sie ausführen. Es ist ein Ort, an dem Gespräche stattfinden, Entscheidungen getroffen werden und Informationen immer zur Hand sind. Mit Slack ist dein Team besser vernetzt.
Sie können diese App on-off verwenden.seite

Slack – Jenkins CI App – Integration

Ich gehe davon aus, dass die meisten von uns Jenkins für kontinuierliche automatisierte Tests verwenden. In diesem Artikel habe ich die Schritte zur Integration von Jenkins und Slack beschrieben. Wenn Sie andere Tools wie TeamCity, Bamboo usw. verwenden, ist der Prozess immer noch fast derselbe.

Schlaff:

  • Gehe zu https://slack.com
  • Suche nach ‚Jenkins‘ App
  • Installiere die Jenkins CI App in deinem Slack
  • Klicke auf ‚Konfiguration hinzufügen‘

  • Notieren Sie sich die Teamdomäne und das Token
  • Wählen Sie den Kanal aus, in dem die Ergebnisse angezeigt werden sollen

Jenkins

  • Gehe zu Jenkins verwalten -> Plugins verwalten -> Verfügbare Registerkarte
  • Slack installieren Benachrichtigungs-Plugin
  • Slack-Domäne und Token aktualisieren => Jenkins verwalten – > System konfigurieren -> Globale Slack Notifier-Einstellungen

  • Klicken Sie auf ‚Verbindung testen‘ — Sie sollten die Meldung ‚Erfolg‘ in Jenkins und die folgende Meldung im Slack-Kanal sehen.

Jenkins – Testjob

  • Erstellen Sie einen Jenkins-Job für Test
  • Aktualisieren Sie die Post-Build-Aktionen wie hier gezeigt – mit der gewünschten benutzerdefinierten Nachricht

Jenkins PipeLine

Sie müssen dem Plugin einen Aufruf hinzufügen

slackSend color: 'good', message: 'Message from Jenkins Pipeline'

Als nächstes müssen wir die richtige Farbe und den richtigen Informationstext der Nachricht bestimmen:

def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}

Zusammenfassung

Im Rahmen des kontinuierlichen Testprozesses führen wir die automatisierten Skripte regelmäßig mit Jenkins aus. Nur Sie als Testingenieur kennen die Ergebnisse meistens. Andere Teammitglieder sind sich der Testergebnisse möglicherweise nicht bewusst. Mithilfe automatisierter Tools können wir automatisierte Skripte erstellen und mithilfe der Slack-API die Ergebnisse programmgesteuert freigeben.

Neuen Benutzer erstellen

Erstellen wir zunächst einen neuen Benutzer in Jenkins, den Slack verwenden kann. Notieren Sie sich das API-Token.

Angenommen, dieser Slack-Benutzer hat genügend Zugriff, um den Job auszulösen.

Führen Sie den folgenden CURL-Befehl aus, um zu überprüfen, ob der Benutzer den Job aufrufen kann.

Dies ist das Format der URL. Ersetzen Sie den Inhalt durch entsprechende Informationen.

curl -X POST http://@/job//build

In meinem Fall habe ich versucht, wie hier gezeigt.

curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build

Slack — Slash-Befehl

Um den obigen Jenkins-Job aufzurufen, würden wir Slacks Slash-Befehle verwenden. Wenn Sie also nach einem Schrägstrich etwas eingeben — z. B. ‚/ smoketests‘ -, behandelt Slack es als Befehl und kann auf den Befehl antworten. In diesem Beispiel kann Slack so konfiguriert werden, dass es einen Wetterbericht für Ihre Stadt bereitstellt.

Um den obigen Jenkins-Job aufzurufen, würden wir Slacks Slash-Befehle verwenden. Wenn Sie also nach einem Schrägstrich etwas eingeben — z. B. ‚/ smoketests‘ -, behandelt Slack es als Befehl und kann auf den Befehl antworten. In diesem Beispiel kann Slack so konfiguriert werden, dass es einen Wetterbericht für Ihre Stadt bereitstellt.

  • Gehen Sie zu Ihrer Slack-Konfiguration, um die Slash-Konfiguration hinzuzufügen.
  • Ich werde einen Rauchtestbefehl erstellen, damit mein Team einen Rauchtest von Slack aus auslösen kann, um den Zustand der Anwendung zu überprüfen.

  • Fügen Sie die Integrationseinstellung wie hier gezeigt hinzu. Geben Sie die URL an, die wir aufrufen müssen, um den Jenkins-Job auszulösen.

  • Wählen Sie die Hilfe zur automatischen Vervollständigung

  • Sobald die Konfiguration abgeschlossen ist, können Sie sofort in Ihrem Slack überprüfen. Geben Sie einfach ‚/ s‘ ein — Sie könnten den Befehl ’smoketest‘ sehen

  • Rufen Sie den Befehl auf — Überprüfen Sie, ob Jenkins den Job auslösen kann.

  • Wenn für den Job ein Parameter erforderlich ist, verwenden Sie das folgende URL-Format, um den Job mit Standardparametern aufzurufen.
curl -X POST http://@/job//buildWithParameters
  • Wenn Sie einen bestimmten Parameter übergeben müssen, fügen Sie einfach die Variable und den Wert in den Parameter ein.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • Um den Status / das Ergebnis des Jobs zu erhalten, sollte der Job so konfiguriert sein, dass er die Ergebnisse zurück an Slack sendet. Sie könnten hier einen Artikel dazu lesen .

Hinweis

  • Damit der obige Ansatz funktioniert, sollte Ihr Jenkins-Server über Slack erreichbar sein. Stellen Sie sicher, dass es nicht von der Firewall blockiert wird.

Zusammenfassung

Slack-Befehle sind sehr nützlich und nützlich, um Informationen abzurufen oder etwas auszulösen, was Sie möglicherweise häufig tun. Auf diese Weise kann jeder nicht-technische Benutzer im Team Ihre automatisierten Testskripte verwenden, indem er den Befehl slash direkt aufruft.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.