jak spravovat Jenkins z Slack

Anton Smirnov
23. srpna 2020 * 6 min čtení

automatizace testů není jen automatizace aplikace. Řekl bych, že i sdílení výsledků testů programově s týmem je součástí automatizace testů. Tým tedy nezávisí na žádném jednotlivci, aby získal výsledky. Tým může na základě výsledků testů bezodkladně podniknout další kroky.

v tomto článku uvidíme, jak můžeme sdílet výsledky testů v Slack. Také, jak byste mohli spustit automatické spuštění testovací sady v nástroji Jenkins/CI.

Slack

používáme Slack v naší organizaci. Můžete také používat Slack pro komunikaci informací mezi členy týmu ve vašem org. Slack je skvělý nástroj a udržuje všechny aktuální a snižuje zbytečné e-maily.

Slack je centrum spolupráce pro práci, bez ohledu na to, jakou práci děláte. Je to místo, kde probíhají konverzace, rozhodují se a informace jsou vždy na dosah ruky. S Slack je váš tým lépe propojen.
můžete použít tuto aplikaci on-off.web

Slack — Jenkins CI App-integrace

předpokládám, že většina z nás používá Jenkins pro nepřetržité automatizované testování. Takže v tomto článku, poskytl jsem kroky k integraci Jenkins a Slack. Pokud používáte jiné nástroje, jako je TeamCity, Bamboo atd., proces bude stále téměř stejný.

Slack:

  • přejděte na https://slack.com
  • vyhledejte aplikaci „Jenkins“
  • nainstalujte aplikaci Jenkins CI do slack
  • klikněte na „Přidat konfiguraci‘

  • poznamenejte si týmovou doménu a Token
  • Vyberte kanál, kde chceme prezentovat výsledky

Jenkins

  • přejít na Spravovat Jenkins – > spravovat pluginy – > dostupná karta
  • nainstalovat Slack Oznámení Plugin
  • Update Slack domain and token => Správa Jenkins – > Configure System – > Global Slack Notifier Settings

  • klikněte na „testovací připojení“ – měli byste vidět zprávu „úspěch“ v Jenkins a níže uvedenou zprávu v kanálu slack.

Jenkins-Test Job

  • Vytvořte Jenkins job pro Test
  • Aktualizujte akce po sestavení, jak je ukázáno zde – pomocí vlastní zprávy, kterou chcete

Jenkins PipeLine

musíte přidat hovor do pluginu

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

dále musíme určit správnou barvu a informační text zprávy:

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

souhrn

v rámci procesu kontinuálního testování pravidelně spouštíme automatizované skripty pomocí Jenkins. Pouze vy, jako zkušební inženýr, většinou znáte výsledky. Ostatní členové týmu si nemusí být vědomi výsledků testů. Pomocí automatizovaných nástrojů můžeme vytvářet automatizované skripty a pomocí Slack API můžeme výsledky sdílet programově.

vytvoření nového uživatele

začněme vytvořením nového uživatele v Jenkins pro použití slack. Poznamenejte si Token API.

předpokládá se, že tento uživatel slack má dostatečný přístup ke spuštění úlohy.

spusťte níže uvedený příkaz CURL a ověřte, zda je uživatel schopen vyvolat úlohu.

Toto je formát URL. Nahraďte obsah uvnitř příslušnými informacemi.

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

v mém případě jsem se snažil, jak je ukázáno zde.

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

Slack-Slash příkaz

Chcete-li vyvolat výše uvedenou jenkinsovu úlohu, použili bychom příkazy Slack ‚ s slash. Takže kdykoli něco napíšete po lomítku-například: ‚/ smoketests — – Slack to bude považovat za příkaz a může na příkaz reagovat. Takže pro tento příklad lze Slack nakonfigurovat tak, aby poskytoval zprávu o počasí pro vaše město.

pro vyvolání výše uvedené úlohy Jenkins bychom použili příkazy Slack ‚ s lomítko. Takže kdykoli něco napíšete po lomítku-například: ‚/ smoketests — – Slack to bude považovat za příkaz a může na příkaz reagovat. Takže pro tento příklad lze Slack nakonfigurovat tak, aby poskytoval zprávu o počasí pro vaše město.

  • přejděte do konfigurace Slack a přidejte konfiguraci lomítka.
  • Chystám se vytvořit příkaz smoke test – takže můj tým může spustit kouřový test z slack a zkontrolovat stav aplikace.

  • přidejte nastavení integrace, jak je znázorněno zde. Zadejte adresu URL, kterou musíme zavolat, abychom spustili Jenkinsovu úlohu.

  • vyberte nápovědu pro automatické dokončení

  • po dokončení konfigurace můžete okamžitě ověřit ve svém Slack. Stačí zadat ‚/ s — – můžete vidět příkaz ‚smoketest‘

  • vyvolejte příkaz-zkontrolujte, zda je Jenkins schopen spustit úlohu.

  • pokud úloha vyžaduje parametr, použijte níže uvedený formát URL pro vyvolání úlohy s výchozími parametry.
curl -X POST http://@/job//buildWithParameters
  • pokud potřebujete předat jakýkoli konkrétní parametr, jednoduše přidejte proměnnou a hodnotu do parametru.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • Chcete-li získat stav/výsledek úlohy, úloha by měla být nakonfigurována tak, aby zveřejňovala výsledky zpět do Slack. Můžete se podívat na článek o tom zde.

Poznámka

  • aby výše uvedený přístup fungoval, měl by být váš server Jenkins přístupný pomocí Slack. Ujistěte se, že není blokován bránou firewall.

shrnutí

Slack příkazy jsou velmi užitečné a hodí se k získání informací nebo ke spuštění něčeho, co byste mohli dělat často. Tímto způsobem by vás jakýkoli netechnický uživatel v týmu mohl využít automatizovaných testovacích skriptů přímým voláním příkazu lomítko.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.