het beheren van Jenkins van Slack

Anton Smirnov
Aug 23, 2020 · 6 min lezen

Test automatisering is niet alleen het automatiseren van de toepassing. Ik zou zeggen dat zelfs het programmatisch delen van de testresultaten met het team deel uitmaakt van testautomatisering. Dus, het team is niet afhankelijk van een individu om de resultaten te krijgen. Het team kan ook verdere actie ondernemen op basis van de testresultaten zonder enige vertraging.

In dit artikel gaan we kijken hoe we testresultaten kunnen delen in Slack. Ook hoe je een geautomatiseerde test suite uitvoering in uw Jenkins/CI tool zou kunnen activeren.

Slack

we gebruiken Slack in onze organisatie. U kunt ook gebruik maken van Slack voor het communiceren van informatie tussen de teamleden in uw org. Slack is een geweldig hulpmiddel en het houdt iedereen up-to-date en vermindert onnodige e-mails.

Slack is een samenwerkingscentrum voor werk, ongeacht het werk dat u doet. Het is een plek waar gesprekken plaatsvinden, beslissingen worden genomen en informatie altijd binnen handbereik is. Met Slack is je team beter verbonden.
u kunt deze app on-off gebruiken.site

Slack-Jenkins CI App-integratie

Ik neem aan dat de meesten van ons Jenkins gebruiken voor continue geautomatiseerde testen. Dus in dit artikel heb ik de stappen gegeven om Jenkins en Slack te integreren. Als je andere tools gebruikt zoals TeamCity, Bamboo, etc, zal het proces nog steeds bijna hetzelfde zijn.

Slack:

  • Ga naar https://slack.com
  • Bladeren voor ‘Jenkins’ app
  • Installeren Jenkins CI App in uw slack
  • Klik op ‘Voeg toe Configuratie’

  • Maak een notitie van team domein en Token
  • Selecteer het kanaal waar we willen om te poseren de resultaten

Jenkins

  • Ga naar Beheren Jenkins -> Beheren Insteekfilters -> Beschikbaar op het Tabblad
  • Installeren Slack Meldingsplugin
  • Slack domain en token bijwerken => Jenkins beheren – > systeem configureren – > globale Slack Notifier-Instellingen

  • klik op de ’test verbinding’ – je zou het ‘succes’ bericht in Jenkins en het onderstaande bericht in het slack kanaal moeten zien.

Jenkins — Test Baan

  • Maak een Jenkins taak voor de Test
  • Bijwerken van de post-build acties, zoals hier wordt weergegeven — met het aangepaste bericht dat u wilt

Jenkins Pijplijn

moet U een oproep om de plugin

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

Vervolgens moeten we bepalen de juiste kleur en informatie tekst van het bericht:

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

samenvatting

als onderdeel van het continue testproces draaien we de geautomatiseerde scripts periodiek met behulp van Jenkins. Alleen jij, als Testingenieur, kent meestal de resultaten. Andere teamleden zijn misschien niet op de hoogte van de testresultaten. Met behulp van geautomatiseerde tools kunnen we geautomatiseerde scripts maken en met Slack API kunnen we de resultaten programmatisch delen.

Nieuwe Gebruiker aanmaken

laten we beginnen met het aanmaken van een nieuwe gebruiker in Jenkins om slack te gebruiken. Maak een notitie van de API token.

de veronderstelling is dat deze slack-gebruiker voldoende toegang heeft om de taak te activeren.

voer het onderstaande CURL commando uit om te controleren of de gebruiker de taak kan aanroepen.

Dit is het formaat van de URL. Vervang de inhoud binnen door de juiste informatie.

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

in mijn geval probeerde ik het zoals hier getoond.

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

Slack — Slash commando

om de bovenstaande Jenkins-taak aan te roepen, zouden we Slack ’s slash commando’ s gebruiken. Dus wanneer je iets typt na een slash — bijvoorbeeld: ‘/smoketests’ — zal Slack het behandelen als een commando en kan reageren op het commando. Dus, voor dat voorbeeld, Slack kan worden geconfigureerd om een weerbericht voor uw stad te bieden.

om de bovenstaande Jenkins-taak aan te roepen, zouden we Slack ’s slash commando’ s gebruiken. Dus wanneer je iets typt na een slash — bijvoorbeeld: ‘/smoketests’ — zal Slack het behandelen als een commando en kan reageren op het commando. Dus, voor dat voorbeeld, Slack kan worden geconfigureerd om een weerbericht voor uw stad te bieden.

  • Ga naar je Slack configuratie om Slash configuratie toe te voegen.
  • ik ga een rooktestcommando aanmaken-zodat mijn team een rooktest van slack kan starten om de gezondheid van de toepassing te controleren.

  • voeg de integratie-instelling toe zoals hier getoond. Geef de URL die we moeten bellen om de Jenkins baan te activeren.

  • Selecteer de auto-complete help

  • Nadat de configuratie is voltooid, kunt controleren of direct in uw Slack. Typ gewoon ‘/ s ‘ — je kon het ‘smoketest’ Commando zien

  • roep het commando aan-controleer of Jenkins in staat is om de taak te activeren.

  • als de taak een parameter vereist, gebruikt u de onderstaande URL-indeling om de taak met standaardparameters aan te roepen.
curl -X POST http://@/job//buildWithParameters
  • als je een specifieke parameter moet doorgeven, voeg dan gewoon de variabele en waarde in de parameter toe.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • om de status/het resultaat van de taak te krijgen, moet de taak worden geconfigureerd om de resultaten terug te plaatsen naar Slack. Daar kun je een artikel over lezen.

Note

  • om de bovenstaande aanpak te laten werken, moet uw Jenkins server toegankelijk zijn met Slack. Zorg ervoor dat het niet wordt geblokkeerd door de firewall.

samenvatting

Slack-commando ‘ s zijn zeer nuttig en zijn handig om informatie te krijgen of om iets te activeren dat u vaak zou kunnen doen. Door dit te doen, kan elke niet-technische gebruiker in het team u gebruik maken van uw geautomatiseerde testscripts door direct het slash commando aan te roepen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.