hvordan håndtere Jenkins Fra Slack

Anton Smirnov
23. Aug 2020 * 6 min lese

Testautomatisering er ikke bare automatisering av applikasjonen. Jeg vil si at selv å dele testresultatene programmatisk med teamet er en del Av Testautomatisering. Så, laget er ikke avhengig av noen person for å få resultatene. Teamet kan også ta ytterligere tiltak basert på testresultatene uten forsinkelse.

i denne artikkelen skal vi se hvordan vi kan dele testresultater I Slack. Også hvordan du kan utløse en automatisert test suite utførelse I Jenkins / CI verktøy.

Slakk

Vi bruker Slakk i vår organisasjon. Du kan også bruke Slack for å kommunisere informasjon blant gruppemedlemmene i organisasjonen. Slack er et flott verktøy, og det holder alle oppdatert og reduserer unødvendige e-poster.

Slack Er et samarbeidsnav for arbeid, uansett hvilket arbeid du gjør. Det er et sted hvor samtaler skje, beslutninger er gjort, og informasjon er alltid på fingertuppene. Med Slack er teamet ditt bedre tilkoblet.
Du kan bruke denne appen på-av.nettsted

Slack-Jenkins CI App-Integrasjon

jeg antar at de fleste av Oss bruker Jenkins For Kontinuerlig automatisert testing. Så i denne artikkelen har jeg gitt trinnene for å integrere Jenkins og Slack. Hvis Du bruker andre verktøy Som TeamCity, Bamboo, etc, vil prosessen fortsatt være nesten den samme.

Slakk:

  • Gå til https://slack.com
  • Bla etter ‘Jenkins’ app
  • Installer Jenkins CI App i slack
  • Klikk på ‘Legg Til Konfigurasjon’

  • Noter lagdomenet Og Token
  • Velg kanalen der vi ønsker å utgjøre resultatene

Jenkins

  • Gå Til Administrer Jenkins – > Administrer Plugins – > Tilgjengelig Fane
  • Installer Slakk Notification Plugin
  • Oppdater Slack domene og token = > Administrer Jenkins – > Konfigurer System – > Globale Slack Notifier Innstillinger

  • Klikk På ‘ Test Connection — – du bør se ‘success’ – meldingen I Jenkins og undermeldingen i slack-kanalen.

Jenkins-Testjobb

  • Opprett En jenkins-jobb For Test
  • Oppdater etterbyggingshandlingene som vist her — med den egendefinerte meldingen du vil Ha

Jenkins PipeLine

du må legge til et anrop til pluginet

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

Deretter må vi bestemme riktig farge og informasjonstekst i meldingen:

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

Sammendrag

som en Del av Den Kontinuerlige Testprosessen kjører Vi de automatiserte skriptene med jevne mellomrom. Bare du, som testingeniør, vet for det meste resultatene. Andre teammedlemmer er kanskje ikke klar over testresultatene. Ved hjelp av automatiserte verktøy kan vi lage automatiserte skript, Og Ved Hjelp Av Slack API kan vi dele resultatene programmatisk.

Opprette Ny Bruker

La oss begynne med å opprette en ny bruker I Jenkins for slack å bruke. Legg merke TIL API-token.

forutsetningen er at denne slack-brukeren har nok tilgang til å utløse jobben.

Utfør KOMMANDOEN NEDENFOR CURL for å kontrollere om brukeren kan starte jobben.

dette er formatet TIL NETTADRESSEN. Erstatt innholdet med relevant informasjon.

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

i mitt tilfelle prøvde jeg som vist her.

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

Slack — Slash-Kommandoen

for å påkalle Ovennevnte Jenkins-jobb, ville Vi bruke Slacks slash-kommandoer. Så når du skriver noe etter en skråstrek-for ex: ‘/ smoketests — – Slack vil behandle det som en kommando og kan svare på kommandoen. Så, For eksempel, Slack kan konfigureres til å gi en værmelding for byen din.

for å påberope Ovennevnte Jenkins jobb, ville vi bruke Slacks slash-kommandoer. Så når du skriver noe etter en skråstrek-for ex: ‘/ smoketests — – Slack vil behandle det som en kommando og kan svare på kommandoen. Så, For eksempel, Slack kan konfigureres til å gi en værmelding for byen din.

  • Gå Til Slack-konfigurasjonen for å legge Til Slash-konfigurasjon.
  • jeg skal lage en røyktestkommando – så teamet mitt kan utløse en røyktest fra slack for å sjekke helsen til søknaden.

  • Legg til integrasjonsinnstillingen som vist her. Oppgi NETTADRESSEN som vi må ringe for å utløse Jenkins-jobben.

  • Velg autofullfør-hjelpen

  • Når konfigurasjonen er ferdig, kan du bekrefte umiddelbart I Slack. Bare skriv ‘/ s — – du kunne se kommandoen’ smoketest’

  • Invoke kommandoen-Sjekk om Jenkins er i stand til å utløse jobben.

  • Hvis Jobben krever en parameter, Bruker DU URL-FORMATET nedenfor til å starte jobben Med Standardparametere.
curl -X POST http://@/job//buildWithParameters
  • Hvis du trenger å passere en bestemt parameter, må du bare legge til variabelen og verdien i parameteren.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • for å få status/resultat av jobben, bør jobben konfigureres til å legge resultatene tilbake Til Slack. Du kan sjekke en artikkel om det her.

Merk

  • For å gjøre tilnærmingen ovenfor, Bør Jenkins-serveren være tilgjengelig Med Slack. Kontroller at den ikke er blokkert av brannmuren.

Sammendrag

Slakkkommandoer er veldig nyttige og kommer til nytte for å få informasjon eller for å utløse noe du kan gjøre ofte. Ved å gjøre dette kan enhver ikke-teknisk bruker i teamet få deg til å bruke dine automatiserte testskript ved å ringe slash-kommandoen direkte.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.