Jenkins wtyczki dla testerów

Jenkins

Loading

Jenkins wtyczki dla testerów to artykuł o kilku przydatnych pluginach do Jenkinsa które mogą się Wam przydać jako testerom automatyzującym. Wśród poruszanych wtyczek znajdzie się Slack Notification, Editable Email Notification, pluginy do analizowania testów, dodawania kolorów w logach. Dodatkowo umożliwimy wstawiania opisów HTML do Job Description. Opisywane przeze mnie pluginy są dostępna na plugins.jenkins.io gdzie znajduje się wiele przydatnych dodatków, które mogą pomóc Wam w codziennej pracy.

AnsiColor

Jest to plugin, który wspiera standard ANSI w consoli. Koniecznym jest w naszym kodzie korzystać z ANSI colors dla wiadomości wysyłanych do konsoli. Aby zacząć należy zainstalować plugin. Następnie przejść do swojego joba i w sekcji Build Environmment wybrać:

Kolorystyka jest możliwa do zmian w sekcji Customize by wpisać inne kolory niż te domyślne. Możecie zapytać po co nam kolorki w konsoli. Wydaje się, że gąszczu logów, czy wiadomości w konsoli, możemy wybrać takie kolory, które będą rzucały nam się w oczy. W jakich przypadkach – jeżeli jakiś krok w danym teście nie przejdzie, możemy printować na czerwono by od razu wiedzieć na jakim etapie test się nie powiódł.

Link do pobrania wtyczki.

Slack Notification

Jeżeli używacie w pracy komunikatora Slack i Jenkinsa, to połączenie jest idealne. Dzięki tej wtyczce będziecie mogli otrzymywać powiadomienia o stanach Waszych jobów bezpośrednio na wybrany kanał na Slacku. Po zainstalowaniu wtyczki na Jenkinsie konieczne jest dodanie bota jenkinsowego do Slacka i dodanie go do kanału na który chcemy by przychodziły powiadomienia. Dodatkowo możemy dokonać na jenkinsie weryfikacji czy połączenie ze Slackiem jest prawidłowe (Test Connection). Wracając do konfiguracji to w dolnej części konfiguracji joba dodaj Post-build Actions i wybierz Slack Notification. W ramach tych opcji możesz ustawić o czym mamy otrzymywać powiadomienia.

Gdy wybierzemy elementy o których chcemy być powiadamiani, to Jenkins będzie nam przesyłał wiadomości na slacka jak na poniższych screenach.

Jak widzimy plugin jest dość prosty w swojej konstrukcji i dzięki niemu jako testerzy możemy wyłapywać bardzo szybko krytyczne problemy. Mając serię testów regresji uruchamianych o różnych porach nie musimy sprawdzać czy testy wykonały się prawidłowo, tylko możemy ustawić by otrzymywać wiadomości o niestabilnych testach.

Jest również możliwość konfiguracji slacka dla pippeline. Wówczas wystarczy w jenkinsfile ustawić kanał na który mamy przesyłać informację, treść wiadomości i przypadki dla których ma być wysłana wiadomość.

Link do pobrania wtyczki.

Editable Email Notification

Ta wtyczka to coś więcej niż zwykłe powiadomienia e-mailowe, które otrzymujemy standardowo. Pisząc coraz więcej testów i zakładając coraz więcej jobów a także mając dużo codziennych obowiązków niewystarczające mogą być powiadomienia e-mailowe typu: Jenkins build became unstable + nazwa joba, zaś w treści joba tylko link do danego builda. Konieczna jest instalacja wtyczki Email Extension. Następnie wramach konfiguracji globalnej lub per job ustawiamy jakie informacje chcemy otrzymywać z danego joba. W trakcie tworzenia powiadomień mailowych korzystajcie z dużej puli zmiannych.

Wszystkich niezbędnych zmiennych możesz używać + dodawać dowolny tekst  by szybko móc uzyskiwać informacje w swoim e-mailu joba w którym to ustawisz. Częstym problemem na jenkinsie jest to, że logi przechowujemy przez określony czas (określona liczba buildów lub dni). Dzięki tej wtyczce możemy niejako „oszukiwać system” i wysyłać spakowane logi, które na jenkinsie np. przechowujemy tylko przez 14 dni czy np. 100 buildów, zaś na e-mailu będziemy je mieć dowolnie długo.

Następnie na e-mail przychodzi wiadomość dotycząca skonfigurowanego joba. Oczywiście wiadomość można jeszcze dopracować, jednakże celem było przedstawienie Wam samej opcji konfiguracji.

Plugin który pozwala mi w szybki sposób zobaczyć co nie działa poprawnie w ramach joba, przeczytać które logi. Umożliwia też by zweryfikować czy np. dla joba posiadającego 50 przypadków testowych nie działa jeden, dwa czy więcej elementów i już w ramach emaila ocenić czy warto błyskawicznie zareagować na takie powiadomienie.

Link do pobrania wtyczki.

Priority Sorter

Ciekawy plugin umożliwiający przypisywanie różnych priorytetom naszym jobom na Jenkinsie. W skrócie – im niższy priorytet im przypiszemy, tym szybciej będzie ono działać. Po co nam takie narzędzie? Zapewne u każdego job nie jest równy jobowi i istnieją ważniejsze i mniej ważne. W przypadku ograniczonej liczby wątków na Slave taki plugin jest idealny. Możesz dokonywać sortowania określonych grup, konkretnych jobów. Jak to działa – posiadasz w ramach slave 4 wątki które są aktualnie zajęte, na listę oczekujących wpadają kolejne 2-3 joby. Po nich kolejny ale posiadający priorytetyzację. Ten priorytetowy przeskakuje na pierwsze miejsce w kolejce. Po instalacji wtyczki w lewym menu pojawi się Job Priorites.

Link do pobrania wtyczki.

Result Test Analyzer

Ten plugin to typowy smaczek dla testerów. Wtyczka ta została pobrana ponad 10.000 razy. Z pomocą tej wtyczki możemy przeanalizować wyniki naszych poszczególnych przypadków testowych na przestrzeni czasu. Po zainstalowaniu wtyczki powinieneś ustawić kilka elementów. Najważniejsze to liczba buildów które mamy zapamiętać + liczbę dni z których trzymamy logi (Discard old build and set Days to keep builds and Max # of builds to keep). W ogólnej konfiguracji jenkinsa możesz ustawić wszystkie niezbędne dla Ciebie elementy. Dobrze ustawić domyślną ilość buildów, jak graficznie chciałbyś to mieć przedstawione i wiele innych). Ustawienie to powoduje, że nie musisz zmieniać ustawień per job w przypadku gdy masz dziesiątki czy setki jobów a chciałbyś zachować jednolitą strukturę. 

Oczywiście ustawienia globalne to jedno, my zaś możemy zrobić ustawienia per job – jeżeli potrzebujesz  inne zakresy i dane dla swojego zadania.

Prawdopodobnie i tak najciekawszy jest dla Was wygląd końcowy, czyli co wtyczka pokazuje testerowi z joba.  Możemy szybko i wyraźnie odczytać np. który element failuje najczęściej i szukać przyczyny w kodzie testu, czy też w samej aplikacji. 

Plugin przejrzysty, prosty i przydatny. W łatwy i przyjemny sposób agreguje błędy. Pozwala na szerszą analizę bez monotonnego liczenia czy śledzenia częstotliwości, ilości i wagi błędów.

Link do pobrania wtyczki.

Test Stability History

Wtyczka w swoim działaniu podobna do Result Test Analyzera. Pozwala na dodawanie historycznych informacji na temat stabilności przypadku testowego. W globalnej konfiguracji wtyczki możemy ustawić maksymalną długość historii na 30. Następnie w jobie w zakładce Test Result możesz zweryfikować jak działa dany test w przestrzeni historycznej. 

Jest również możliwość dodania tej wtyczki do pippeline, poprzez dodanie odpowiedniej linii w jenkinsfile.

junit testResults: '**/*.xml', testDataPublishers: [[$class: 'StabilityTestDataPublisher']]

Link do pobrania wtyczki.

OWASP Markup Formatter

Ostatnią wtyczką, którą chcemy przedstawić jest OWASP Markup Formatter. Wtyczka ta umożliwia używanie znaczników HTML – np. w opisie joba. Pozwolić to może na stworzenie linków do dokumentacji czy innych miejsc. Po instalacji należy udać się do Global Security menu i wybrać Safa HTML. Od teraz będziesz mógł korzystać ze znaczników HTML. 

Link do pobrania wtyczki.

Podsumowanie

Jenkins wtyczki dla testerów to merytoryczna odmiana artykułu o pluginach z przymrużeniem oka. Zadaniem niniejszego wpisu było przedstawić wtyczki, które nie wymagają bardzo wiele konfiguracji, a mogą dać wiele korzyści. O innych kwestiach związanych z Jenkinsem piszemy niniejszym dziale.