Testowanie API – jak do tego podejść we właściwy sposób?

Testowanie API (Application Programming Interface) to standardowa procedura stosowana przed oddaniem urządzeń i funkcjonalności informatycznych do użytku. API w swojej formie podstawowej jest dostępne jako kod – każdy kto swoją sztuką programistyczną wytwarza tego typu inteligentne mechanizmy, musi wiedzieć jak testować API. Zbierzmy najważniejsze informacje dotyczące przeprowadzania testów API.

 

 

Jakie są sposoby testowania API?

 

Zanim oddamy w ręce użytkownika aplikację, musimy sprawdzić wiele jej elementów, dokonać oględzin, poddać weryfikacji, a więc wykonać testowanie API. Ogólnie zadaniem API jest komunikacja pomiędzy jednostkami systemów złożonych w pewną całość oraz udostępnianie użytkownikowi różnego rodzaju informacji. Przeznaczeniem finalnym aplikacji jest jej użyteczność, a więc nie możemy pozwolić sobie na błędy – tak samo jak przed zakupem butów po prostu je przymierzamy, tak również zanim wyjdziemy na świat z naszym projektem – najpierw musimy przetestować API. Ale jak testować API?

Wyobraźmy sobie, że na stronie internetowej spotykamy formularz z przyciskiem zapisu na newsletter. Oczywiście chcemy, aby pola formularza przyjmowały i zwracały odpowiednie dane, a przycisk, po kliknięciu, zapisywał i przesyłał te dane tak, abyśmy mogli dokonać subskrypcji naszego biuletynu. To prosty ale instruktażowy przypadek. Będziemy wtedy sprawdzać poprawność danych wejściowych i wyjściowych, zajmiemy się frontendem (gdzie po kliknięciu ma się ukazać napis “Zostałeś zapisany na nasz newsletter”), ale także backendem, gdzie również każda operacja i funkcja muszą działać prawidłowo. Testowanie API to również sprawdzanie obsługi błędów, stabilności aplikacji, jej zachowań i interakcji, w które wchodzi z innymi API. Niektórzy porównują testowanie API do solidnego sprawdzenia GUI, czyli interfejsu w formie przeznaczonej dla użytkownika (pola tekstowe i pola wyboru przyjmujące pewne wartości, przyciski uruchamiające jakieś aspekty strony behawioralnej kodu, ale też protokoły komunikacji z innymi aplikacjami, itp.).

W testowaniu API upewniamy się zatem o tym, czy w pewnych warunkach nie dochodzi do awarii, otrzymujemy ostrzeżenia o możliwych błędach, potwierdzamy prawidłowość dostępności danych przez interfejs – najczęściej wykorzystuje się do tego testy automatyczne API.

 

 

Czy sposoby testowania API różnią się ze względu na zastosowane API?

 

Zadaniem każdej API zawsze jest wykonanie pewnej czynności. To część wspólna. Jednakże ze względu na zastosowanie możemy wyróżnić wiele czynności (działań), które API ma za zadanie wykonywać. Główne zasady testowania API pozostaną więc bez zmian, lecz za każdym razem, gdy krytycznie (testowo) podchodzimy do naszej aplikacji, musimy wziąć pod uwagę jej specyfikę, choćby ze względu na ułatwienie sobie pracy. Trochę inaczej będzie wyglądać testowanie API Postman, trochę inaczej REST API. Zaprojektowane testy automatyczne będą wykazywały pewne różnice, ale to, na czym polega testowanie API pozostaje z grubsza biorąc pod wspólnym mianownikiem. Na kursach testowania API dowiemy się o różnych stosowanych metodach, lecz istotą zawsze pozostaje niezakłócona komunikacja w ogólności. Testowanie API to właśnie sprawdzanie poprawności i łatwości tej komunikacji, z której ostatecznie skorzysta odbiorca docelowy (chyba niezbyt elegancko nazywany często “userem”). Bez odpowiedniej wiedzy, bez kursu testowania API, nie damy sobie z tym rady, ale jak testować API nietrudno się dowiedzieć. (Jest czymś oczywistym, że w tak krótkim artykule testowanie i automatyzacja API muszą być potraktowane bardzo ogólnie).

 

 

Dlaczego niezwykle istotne jest testowanie API?

 

Znaczenie i ważność testowania API są oczywiste i niezaprzeczalne. Nikt nie chce wprowadzać na rynek przysłowiowej znaczonej waluty, tak samo nikt nie chce wypuścić ze swojego studia programistycznego bubla. Copywriter sprawdza swój tekst przed oddaniem, kierowca upewnia się, że jego samochód jest sprawny, a informatyk testuje API. Najogólniej można myśleć o testowaniu API jako ostatnim kroku w naszym sprincie projektowym. Po wykonaniu testów API, aplikacja wkracza w nową fazę rozwojową, zostaje oddana do użytku.

 

 

Czy outsourcing w testowaniu API jest opłacalny?

 

Może być opłacalny, a czasem będzie nawet zalecany. Zewnętrzne spojrzenie może wykryć to, co my przeoczyliśmy, poza tym wyspecjalizowani testerzy API zapewniają pełną neutralność w podejściu do procesu testowania. Najciemniej jest pod latarnią. Programista piszący aplikację nie powinien raczej wykonywać jej testowania. To dość prosta zasada: wytwórca, który chce wprowadzić jakiś produkt na rynek, musi uzyskać zgodę i pozwolenie (pomyślmy o testowaniu szczepionek na Covid-19), które powinna wydać jakaś instytucja niezależna, kompetentna i zewnętrzna. Podobnie jest z outsourcingiem w testowaniu API.

 

 

Jakie narzędzia są przydatne przy testowaniu API?

 

Wykonujemy testy automatyczne API. Testowanie i automatyzacja REST API lub API Postman, SOAP i innych systemów można dość łatwo zoperacjonalizować przy pomocy następujących urządzeń, które zostały zaprojektowane do wykonywania zadań testowania API – wymienimy kilka najbardziej przydatnych:

  • świetny Rest-Assured, który jest projektem typu open-source i stanowi standard dla testowania REST API
  • dzięki Fiddler dowiemy się o wszystkich sprawach związanych z przesyłaniem danych w internecie, narzędzie ma także szersze zastosowania w testowaniu i jest bezpłatne
  • gdy nie jesteśmy profesjonalnymi znawcami kodu, wtedy przydatne może okazać się narzędzie Postman
  • JMeter – sprawdzone rozwiązanie dla testowania funkcjonalnego
  • ACCELQ – całkowicie graficzny interfejs wyręcza nas w wielu działaniach, pełna automatyzacja testowania

To tylko kilka przykładów przydatnych akcesoriów każdego testera API. Pojawiają się coraz to nowe i doskonalsze, warto więc trzymać rękę na pulsie.

Zautomatyzowane testowanie API nie musi być żmudne i niewdzięczne. Debugowanie, weryfikowanie żądań, projektowanie przebiegu testów oraz sam monitoring “tego, co w kodzie piszczy” wykonujemy dziś jako czynność konieczną, automatyczną i w pełni celową, zaplanowaną. Dodajmy na koniec, że testowanie API jest umiejętnością poszukiwaną na rynku pracy informatyków. Mimo iż obecnie większość procesów przebiega właściwie jako możliwy do zaprezentowania w formie graficznej strumień danych, to prawdziwi testerzy API są niezwykle potrzebni, gdy w grę wchodzi kod i możliwe weń ingerencje.