jak zarządzać Jenkinsem ze Slacka

Anton Smirnow
Aug 23, 2020 · 6 min czytać

automatyzacja testów to nie tylko automatyzacja aplikacji. Powiedziałbym, że nawet dzielenie się wynikami testów programowo z zespołem jest częścią automatyzacji testów. Tak więc zespół nie zależy od żadnej osoby, aby uzyskać wyniki. Zespół może również podjąć dalsze działania w oparciu o wyniki testu bez żadnych opóźnień.

w tym artykule zobaczymy, jak możemy udostępnić wyniki testów w Slack. Również w jaki sposób można uruchomić automatyczne wykonanie pakietu testowego w narzędziu Jenkins/CI.

Slack

używamy Slacka w naszej organizacji. Możesz również używać Slack do przekazywania informacji między członkami zespołu w swojej organizacji. Slack to świetne narzędzie, które utrzymuje wszystkich na bieżąco i redukuje niepotrzebne wiadomości e-mail.

Slack to centrum współpracy do pracy, bez względu na to, jaką pracę wykonujesz. To miejsce, w którym odbywają się rozmowy, podejmowane są decyzje, a informacje są zawsze na wyciągnięcie ręki. Dzięki Slack Twój zespół jest lepiej połączony.
możesz używać tej aplikacji on-off.strona

Slack-Jenkins CI App-Integration

zakładam, że większość z nas używa Jenkinsa do ciągłego automatycznego testowania. Tak więc w tym artykule podałem kroki, aby zintegrować Jenkins i Slack. Jeśli używasz innych narzędzi, takich jak TeamCity, Bamboo itp., proces nadal będzie prawie taki sam.

:

  • przejdź do https://slack.com
  • wyszukaj aplikację 'Jenkins’
  • zainstaluj aplikację Jenkins CI w swoim Slacku
  • kliknij 'Dodaj konfigurację’

  • zanotuj domenę zespołu i Token
  • Wybierz kanał, na którym chcemy przedstawić wyniki

Jenkins

  • przejdź do Zarządzaj Jenkinsem – > Zarządzaj wtyczkami – > dostępna karta
  • zainstaluj Slack Wtyczka powiadomień
  • Update Slack domain and token => Manage Jenkins – > Configure System – > Global Slack Notifier Settings

  • kliknij na 'Test Connection’ – powinieneś zobaczyć komunikat 'success’ w Jenkinsie i poniższy komunikat w kanale slack.

Jenkins-zadanie testowe

  • Utwórz zadanie Jenkins dla testu
  • zaktualizuj akcje po kompilacji, jak pokazano tutaj – za pomocą niestandardowej wiadomości, którą chcesz

Jenkins PipeLine

musisz dodać połączenie do wtyczki

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

następnie musimy określić poprawny kolor i tekst informacji wiadomości:

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

podsumowanie

w ramach ciągłego procesu testowania uruchamiamy automatyczne skrypty przy użyciu Jenkinsa okresowo. Tylko Ty, jako inżynier testowy, znasz wyniki. Inni członkowie zespołu mogą nie być świadomi wyników testu. Za pomocą zautomatyzowanych narzędzi możemy tworzyć automatyczne skrypty, a za pomocą Slack API możemy programowo udostępniać wyniki.

Tworzenie nowego Użytkownika

zacznijmy od utworzenia nowego Użytkownika w Jenkinsie dla Slacka. Zanotuj token API.

założenie jest takie, że ten użytkownik Slacka ma wystarczający dostęp do uruchomienia zadania.

wykonaj poniższe polecenie CURL, aby sprawdzić, czy użytkownik jest w stanie wywołać zadanie.

jest to format adresu URL. Zastąp zawartość w odpowiednich informacjach.

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

w moim przypadku próbowałem jak pokazano tutaj.

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

Slack — polecenie ukośnika

aby wywołać powyższe zadanie Jenkinsa, użylibyśmy poleceń ukośnika Slacka. Tak więc za każdym razem, gdy wpiszesz coś po ukośniku-np.’ / smoketests ’ — Slack potraktuje to jako polecenie i może odpowiedzieć na to polecenie. Na tym przykładzie Slack można skonfigurować tak, aby dostarczał prognozy pogody dla Twojego miasta.

aby wywołać powyższe zadanie Jenkinsa, użylibyśmy poleceń Slacka slash. Tak więc za każdym razem, gdy wpiszesz coś po ukośniku-np.’ / smoketests ’ — Slack potraktuje to jako polecenie i może odpowiedzieć na to polecenie. Na tym przykładzie Slack można skonfigurować tak, aby dostarczał prognozy pogody dla Twojego miasta.

  • przejdź do konfiguracji Slack, aby dodać konfigurację ukośnika.
  • zamierzam utworzyć komendę smoke test — aby mój zespół mógł uruchomić test smoke z slack, aby sprawdzić kondycję aplikacji.

  • Dodaj ustawienie integracji, jak pokazano tutaj. Podaj adres URL, który musimy wywołać, aby uruchomić zadanie Jenkinsa.

  • wybierz Pomoc automatycznego uzupełniania

  • po zakończeniu konfiguracji możesz natychmiast zweryfikować w swoim Slack. Wystarczy wpisać '/ s’ — Możesz zobaczyć polecenie 'smoketest’

  • wywołanie polecenia-sprawdź, czy Jenkins jest w stanie wywołać zadanie.

  • jeśli zadanie wymaga parametru, użyj poniższego formatu adresu URL, aby wywołać zadanie z domyślnymi parametrami.
curl -X POST http://@/job//buildWithParameters
  • jeśli chcesz przekazać określony parametr, po prostu dołącz zmienną i wartość do parametru.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • aby uzyskać status/wynik zadania, zadanie powinno być skonfigurowane tak, aby publikować wyniki z powrotem w Slack. Możesz sprawdzić artykuł na ten temat tutaj.

Uwaga

  • aby powyższe podejście działało, Serwer Jenkins powinien być dostępny przez Slack. Upewnij się, że nie jest zablokowany przez zaporę.

podsumowanie

polecenia Slack są bardzo przydatne i przydają się, aby uzyskać informacje lub uruchomić coś, co możesz robić często. W ten sposób każdy nietechniczny użytkownik w zespole może użyć automatycznych skryptów testowych, bezpośrednio wywołując polecenie ukośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.