hvordan man styrer Jenkins fra Slack

Anton Smirnov
Aug 23, 2020 * 6 min læst

testautomatisering automatiserer ikke kun applikationen. Jeg vil sige, at selv deling af testresultaterne programmatisk med teamet er en del af testautomatisering. Så holdet er ikke afhængig af nogen person for at få resultaterne. Holdet kan også tage yderligere handlinger baseret på testresultaterne uden forsinkelse.

i denne artikel skal vi se, hvordan vi kan dele testresultater i Slack. Også hvordan du kan udløse en automatiseret test suite udførelse i din Jenkins/CI værktøj.

Slack

vi bruger Slack i vores organisation. Du bruger muligvis også Slack til at kommunikere oplysninger blandt teammedlemmerne i din organisation. Slack er et fantastisk værktøj, og det holder alle ajour og reducerer unødvendige e-mails.

Slack er et Samarbejdscenter for arbejde, uanset hvilket arbejde du udfører. Det er et sted, hvor samtaler sker, beslutninger træffes, og information er altid lige ved hånden. Med Slack er dit team bedre forbundet.
du kan bruge denne app on-off.site

Slack — Jenkins CI App-Integration

jeg antager, at de fleste af os bruger Jenkins til kontinuerlig automatiseret test. Så i denne artikel har jeg givet trinene til at integrere Jenkins og Slack. Hvis du bruger andre værktøjer som TeamCity, Bamboo osv., vil processen stadig være næsten den samme.

Slack:

  • gå til https://slack.com
  • Søg efter’ Jenkins ‘app
  • installer Jenkins CI App i din slack
  • Klik på ‘Tilføj konfiguration’

  • noter team domain and Token
  • Vælg den kanal, hvor vi vil stille resultaterne

Jenkins

  • gå til Administrer Jenkins – > Administrer Plugins – > tilgængelig fane
  • installer Slack Notification Plugin
  • Opdater Slack domæne og token => Administrer Jenkins – > Konfigurer System- > Global Slack Notifier Settings

  • Klik på’ Test Connection ‘— du skal se’ succes ‘ – meddelelsen i Jenkins og nedenstående meddelelse i slack-kanalen.

Jenkins-Testjob

  • Opret et Jenkins-job til Test
  • Opdater post-build-handlingerne som vist her-med den brugerdefinerede besked, du ønsker

Jenkins PipeLine

du skal tilføje et opkald til plugin

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

Dernæst skal vi bestemme den korrekte farve og informationstekst i meddelelsen:

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

Resume

som en del af den kontinuerlige testproces kører vi de automatiserede scripts ved hjælp af Jenkins med jævne mellemrum. Kun du som testingeniør kender for det meste resultaterne. Andre teammedlemmer er muligvis ikke opmærksomme på testresultaterne. Ved hjælp af automatiserede værktøjer kan vi oprette automatiserede scripts, og ved hjælp af Slack API kan vi dele resultaterne programmatisk.

oprettelse af ny bruger

lad os starte med at oprette en ny bruger i Jenkins, som slack kan bruge. Noter API-token.

antagelsen er, at denne slack-bruger har tilstrækkelig adgang til at udløse jobbet.

Udfør nedenstående CURL-kommando for at kontrollere, om brugeren er i stand til at påberåbe sig jobbet.

dette er formatet af URL ‘ en. Udskift indholdet inden for med passende oplysninger.

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

i mit tilfælde forsøgte jeg som vist her.

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

Slack — Slash kommando

for at påberåbe sig ovenstående Jenkins job, ville vi bruge Slack ‘ s slash kommandoer. Så når du skriver noget efter en skråstreg — for eks: ‘/smoketests’ — vil Slack behandle det som en kommando og kan svare på kommandoen. Så for det eksempel kan Slack konfigureres til at give en vejrrapport til din by.

for at påberåbe sig ovenstående Jenkins job, ville vi bruge Slack ‘ s slash kommandoer. Så når du skriver noget efter en skråstreg — for eks: ‘/smoketests’ — vil Slack behandle det som en kommando og kan svare på kommandoen. Så for det eksempel kan Slack konfigureres til at give en vejrrapport til din by.

  • gå til din Slack-konfiguration for at tilføje Slash-konfiguration.
  • jeg skal oprette en røgtestkommando — så mit team kan udløse en røgtest fra slack for at kontrollere applikationens helbred.

  • Tilføj integrationsindstillingen som vist her. Angiv den URL, som vi skal ringe til for at udløse Jenkins-jobbet.

  • Vælg hjælp til automatisk udfyldning

  • når konfigurationen er færdig, kan du straks bekræfte i din Slack. Skriv bare ‘ / s — – du kunne se kommandoen ‘smoketest’

  • påkald kommandoen-Kontroller, om Jenkins er i stand til at udløse jobbet.

  • hvis jobbet kræver en parameter, skal du bruge nedenstående URL-format til at påkalde jobbet med standardparametre.
curl -X POST http://@/job//buildWithParameters
  • hvis du har brug for at videregive en bestemt parameter, skal du blot tilføje variablen og værdien i parameteren.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • for at få status/resultatet af jobbet skal jobbet konfigureres til at sende resultaterne tilbage til Slack. Du kan tjekke en artikel om det her.

Bemærk

  • for at få ovenstående tilgang til at fungere, skal din Jenkins-server være tilgængelig med Slack. Sørg for, at det ikke er blokeret af brandvæggen.

oversigt

Slack-kommandoer er meget nyttige og er nyttige til at få information eller til at udløse noget, som du måske gør ofte. Ved at gøre dette kan enhver ikke-teknisk bruger i teamet få dig til at bruge dine automatiserede testskripter ved direkte at ringe til skråstregskommandoen.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.