hur man hanterar Jenkins från Slack

Anton Smirnov
Aug 23, 2020 * 6 min läs

testautomatisering är inte bara att automatisera applikationen. Jag skulle säga att även dela testresultaten programmatiskt med laget är en del av testautomatisering. Så, laget beror inte på någon individ för att få resultaten. Teamet kan också vidta ytterligare åtgärder baserat på testresultaten utan dröjsmål.

i den här artikeln kommer vi att se hur vi kan dela testresultat i Slack. Också hur du kan utlösa en automatiserad testsvit utförande i din Jenkins/CI verktyg.

Slack

vi använder Slack i vår organisation. Du kan också använda Slack för att kommunicera information mellan teammedlemmarna i din organisation. Slack är ett bra verktyg och det håller alla uppdaterade och minskar onödiga e-postmeddelanden.

Slack är ett samarbetsnav för arbete, oavsett vilket arbete du gör. Det är en plats där samtal händer, beslut fattas och information finns alltid till hands. Med Slack är ditt team bättre anslutet.
du kan använda denna app on-off.webbplats

Slack-Jenkins CI App-Integration

jag antar att de flesta av oss använder Jenkins för kontinuerlig automatiserad testning. Så i den här artikeln har jag tillhandahållit stegen för att integrera Jenkins och Slack. Om du använder andra verktyg som TeamCity, Bamboo, etc, kommer processen fortfarande att vara nästan densamma.

Slack:

  • gå till https://slack.com
  • Bläddra efter ’Jenkins’ app
  • installera Jenkins CI App i din slack
  • klicka på ’Lägg till konfiguration’

  • anteckna teamdomän och Token
  • välj den kanal där vi vill posera resultaten

Jenkins

  • gå till Hantera Jenkins – > hantera Plugins – > tillgänglig flik
  • installera Slack Meddelande Plugin
  • uppdatera Slack domän och token = > hantera Jenkins – > konfigurera systemet – > globala Slack Notifier Inställningar

  • klicka på ’Test Connection’ – du ska se’ success ’ – meddelandet i Jenkins och meddelandet nedan i slack-kanalen.

Jenkins-testjobb

  • skapa ett Jenkins-jobb för Test
  • uppdatera efterbyggnadsåtgärderna som visas här-med det anpassade meddelandet du vill ha

Jenkins PipeLine

du måste lägga till ett samtal till plugin

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

Därefter måste vi bestämma rätt färg och informationstext i meddelandet:

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)
}
}

sammanfattning

som en del av den kontinuerliga testprocessen kör vi de automatiska skripten med Jenkins regelbundet. Bara du, som testingenjör, känner mest till resultaten. Andra teammedlemmar kanske inte är medvetna om testresultaten. Med hjälp av automatiserade verktyg kan vi skapa automatiserade skript och med hjälp av Slack API kan vi dela resultaten programmatiskt.

Skapa ny användare

låt oss börja med att skapa en ny användare i Jenkins för slack att använda. Notera API-token.

antagandet är att denna slack-användare har tillräckligt med åtkomst för att utlösa jobbet.

utför kommandot nedan CURL för att verifiera om användaren kan anropa jobbet.

detta är formatet för webbadressen. Ersätt innehållet inom med lämplig information.

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

i mitt fall försökte jag som visas här.

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

Slack — Slash-kommando

för att åberopa ovanstående Jenkins-jobb skulle vi använda Slacks slash-kommandon. Så när du skriver något efter ett snedstreck — till exempel: ’/smoketests’ — kommer Slack att behandla det som ett kommando och kan svara på kommandot. Så för det exemplet kan Slack konfigureras för att ge en väderrapport för din stad.

för att åberopa ovanstående Jenkins-jobb skulle vi använda Slacks slash-kommandon. Så när du skriver något efter ett snedstreck — till exempel: ’/smoketests’ — kommer Slack att behandla det som ett kommando och kan svara på kommandot. Så för det exemplet kan Slack konfigureras för att ge en väderrapport för din stad.

  • gå till din Slack-konfiguration för att lägga till Slash-konfiguration.
  • jag ska skapa ett röktestkommando-så mitt team kan utlösa ett röktest från slack för att kontrollera applikationens hälsa.

  • Lägg till integrationsinställningen som visas här. Ange webbadressen som vi behöver ringa för att utlösa Jenkins-jobbet.

  • Välj Auto-complete hjälp

  • när konfigurationen är klar kan du verifiera omedelbart i din Slack. Skriv bara’ / s ’— du kan se kommandot’ smoketest’

  • anropa kommandot-kontrollera om Jenkins kan utlösa jobbet.

  • om jobbet kräver en parameter använder du nedanstående URL-format för att anropa jobbet med standardparametrar.
curl -X POST http://@/job//buildWithParameters
  • om du behöver skicka någon specifik parameter lägger du bara till variabeln och värdet i parametern.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • för att få status/resultat av jobbet ska jobbet konfigureras för att skicka resultaten tillbaka till Slack. Du kan kolla en artikel om det här.

Obs

  • för att ovanstående tillvägagångssätt ska fungera bör din Jenkins-server vara tillgänglig med Slack. Se till att den inte blockeras av brandväggen.

sammanfattning

Slack kommandon är mycket användbara och komma till hands för att få information eller att utlösa något som du kan göra ofta. Genom att göra detta kan alla icke-tekniska användare i teamet få dig att använda dina automatiserade testskript genom att direkt ringa slash-kommandot.

Lämna ett svar

Din e-postadress kommer inte publiceras.