26.05.2022 - Przeczytasz w 2 min.
Monitorowanie wydajności aplikacji po wdrożeniu na produkcję
26.05.2022 - Przeczytasz w 2 min.
Jeżeli jesteś członkiem zespołu deweloperskiego (szczególnie testerem), to artykuł idealny dla ciebie. Zapewne na pewnym etapie prac zaczynasz robić publikację aplikacji.

Z czasem funkcjonalności przybywa, baza danych rośnie, maszyny są coraz bardziej obciążone, a publikację nowych wersji aplikacji są coraz częstsze. W całym tym zgiełku i pośpiechu codziennego życia na pewno trafiliście na pewien dialog.

To częste pytanie, z którym możecie się spotkać podczas pracy w projekcie. Zdarza się, że odpowiedź na nie, nie jest poprawna, ponieważ nie zawsze zapytania, są należycie monitorowane. Podczas odpowiedzi często wracamy pamięcią do zamierzchłych czasów, wiedzy sprzed 5 tygodni, 5 miesięcy 5 lat lub dokumentacji technicznej która również nie została zaktualizowana.
Jak możemy szybko, skutecznie oraz stosunkowo niedużym nakładem czasu rozwiązać ten problem? (odpowiedzi jest wiele, ale dziś przedstawię wam jedną z prostszych).
Do rozwiązania problemu z monitorowaniem wydajności użyjemy narzędzia o nazwie Postman (przykład oraz możliwości monitoringu znajdziecie poniżej, jeżeli już wam się to rozwiązanie podoba, w dalszej części opisana jest instrukcja konfiguracji takiego monitoringu). Możesz przeczytać również o Testowaniu API – Postman dla początkujących.

Powyższy raport z monitoringu w Postmanie możemy przeglądać w formie sumarycznej lub indywidualnej (per request), wybierając konkretny słupek, który oznacza dzień znajdziemy podsumowanie zawierające szczegółowe dane do każdego requesta.

Najważniejsze w monitoringu Postman jest to, że każdy z requestów może zawierać dowolną asercję, w tym przypadku najbardziej interesuje nas asercja weryfikująca czas, jaki jest potrzebny od momentu wysyłki zapytania do odpowiedzi z naszego serwisu.Dodatkowo możemy zastosować weryfikację kodu odpowiedzi lub zawartości odpowiedzi.
W przypadku gdy taka asercja okaże się negatywna, otrzymamy powiadomienie na email.
Dużą zaletą jest łatwość konfiguracji takiego monitoringu wydajności, w raporcie mamy historię, oś czasu i czasy odpowiedzi oraz metrykę naszych zapytań na dowolnym środowisku wraz z asercjami, jakie są weryfikowane na danym requeście.
Korzyści utworzenia takiego monitoringu są niepodważalne, wcześnie wykrywamy opóźnienia w odpowiedzi z API, a na tej podstawie jesteśmy w stanie wydedukować czy jest to wina najnowszego releasu? Dużego obciążenia? Lub innych czynników. Mamy czas na reakcję przed katastrofą.
(W planie darmowym Postmana mamy 1000 odwołań api w monitoringu miesięcznie)
Konfiguracja monitoringu:
Jeżeli nie mamy kolekcji musimy ją utworzyć (szczegóły jak to zrobić znajdziecie w tutorialu do postmana). W przykładzie wykorzystamy bardziej zaawansowaną formę zapytania do API, która jest zabezpieczona dostępem poprzez token autoryzacyjny (w zakładce test pobieram token z autoryzacji do zmiennej)

if (responseCode.code === 200){
try{
var tokenData = JSON.parse(responseBody),
token = tokenData.access_token;
}
catch(e){
console.log(e);
}
postman.setGlobalVariable("myToken",`Bearer ${token}`)
}
Następnie w zapytaniu docelowym przekazuje token w sekcji headers jak na załączniku poniżej.

Teraz najważniejsze, w zakładce test wprowadzam dowolne asercję np. na czas odpowiedzi oraz kod odpowiedzi (przypominam, że weryfikację można rozbudować o dowolne asercję weryfikujące np. zawartość odpowiedzi)

pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response time is less than 2000ms", function () {
pm.expect(pm.response.responseTime).to.be.below(2000);
});
W tym momencie weryfikujemy czy status jest równy 200 oraz czy czas odpowiedzi jest poniżej 2 sekund.
Nadeszła pora na konfigurację monitora.
Wybieramy zakładkę monitors wybieramy create a monitor i uzupełniamy zgodnie z potrzebami jak na wideo poniżej.
Wprowadzamy nazwę monitora, wybieramy kolekcję do uruchomienia, środowisko (jeżeli korzystamy ze zmiennych), częstotliwość wywołań oraz kogo powiadomić w razie failów.
Teraz to już wszystko monitor jest gotowy do pracy i informowania o zaistniałych problemach (życzę wam ich jak najmniej).
Udostępnij