Testy API: kluczowy krok w rozwoju i utrzymaniu aplikacji

Opublikowane: 2023-11-30
Autor: Magdalena Mazur

Wynajmujesz samochód, robisz przelew, rezerwujesz nocleg – a czy wiesz, że za tymi wszystkimi operacjami kryje się tajemnicze API? Jeśli API nie byłoby przetestowane na wszystkie możliwe sposoby, to jest spora szansa, że aplikacja, z której korzystasz, nie pozwoliłaby Ci na wykonanie konkretnych operacji. Z artykułu dowiesz się, czym jest testowanie API i dlaczego ten etap podczas tworzenia systemu lub aplikacji jest kluczowy dla Twoich przyszłych klientów i użytkowników.

Jesteśmy Platynowym Partnerem ISTQB. Każdego dnia przeprowadzamy tysiące testów automatycznych. Sprawdź naszą ofertę!

 

Czym są testy API?

API (Application Programming Interface) to interfejs umożliwiający komunikację między aplikacjami czy programami. API zawiera w sobie pewnego rodzaju specyfikację, która opisuje zasady i wymagania, które obie strony muszą spełnić, żeby komunikacja była możliwa i żeby mogły wymieniać dane.

Załóżmy, że wybierasz się na upragnione wakacje i chcesz wynająć samochód. Jeśli zależy Ci na konkretnym dostawcy, możesz sprawdzić cenę oraz dostępność na jego stronie internetowej. Ponieważ  konkurencja nie śpi, zwykle lepiej skorzystać ze strony, która gromadzi oferty wielu  dostawców tego typu usług. Taka wyszukiwarka nie ma dostępu do bazy danych poszczególnych dostawców aut, może jednak łączyć się z API każdego dostawcy i wyszukać najkorzystniejsze oferty.

Zanim jednak będziemy mieć pewność, że wszystko działa jak należy, API musi zostać przetestowane.

Testowanie API to taki rodzaj testowania oprogramowania, w którym sprawdzamy interfejsy programowania aplikacji. Koncentrujemy  się na weryfikacji funkcjonalności, niezawodności, wydajności oraz bezpieczeństwa API. Nie skupiamy się na wyglądzie aplikacji, czy szerzej na GUI (graficznym interfejsie użytkownika, ang. graphical user interface). Najważniejsze jest przeanalizowanie wartości wejściowych i zwracanych danych.

Testy API są wykonywane z użyciem specjalistycznego oprogramowania. Dzięki niemu możemy wysyłać zapytania (request) do odpowiednich endpointów (linków, pod którym znajduje się usługa API), a następnie odczytywać oraz interpretować odpowiedź systemu (response).

Aby w pełni zrozumieć, jak ma działać dane API, musimy wiedzieć jakie kody odpowiedzi (kody HTTP) są oczekiwane dla poszczególnych żądań, jakich kodów możemy oczekiwać w przypadku nieudanych żądań oraz jakie komunikaty powinniśmy zobaczyć dla nieudanego żądania.

W przypadku REST API zapytania korzystają ze standardowych metod HTTP: GET, POST, PUT/PATCH, DELETE. Metody te umożliwiają działanie stron internetowych, natomiast w przypadku API są wykorzystywane do wykonywania podstawowych operacji na zasobach. Operacje te to CREATE, READ, UPDATE, DELETE, w skrócie CRUD.

Metoda HTTPOpisAkcja API
POSTTworzy nowy zasóbCreate
GETPobiera daneRead
PUT/PATCHAktualizuje istniejący zasóbUpdate
DELETEUsuwa daneDelete

Jeśli chodzi o kody odpowiedzi dla powyższych metod, wygląda to następująco. 

Status odpowiedziOdpowiedź
Informacyjne 1XX
Sukcesu2XX
Przekierowań3XX
Błędów po stronie klienta4XX
Błędów po stronie serwera5XX

Testowanie API gdy rozwijasz aplikację – dlaczego to takie ważne?

Testowanie API jest  możliwe już na bardzo wczesnym etapie rozwoju oprogramowania, dzięki czemu ewentualne błędy wykrywa się bardzo szybko, zanim jeszcze trafią do środowiska produkcyjnego. Pozwala to na oszczędność czasu, gdy na kolejnym etapie odbywają się testy interfejsu użytkownika GUI. 

API powinno oczywiście działać zgodnie z dokumentacją, która opisuje dostępne endpointy, parametry, metody HTTP itp. Testy API mogą potwierdzić, że API działa zgodnie z tą dokumentacją.

Testy API mogą być zautomatyzowane dzięki czemu łatwo je powtarzać po każdej zmianie w kodzie źródłowym. Przykładowe narzędzia, które można wykorzystać do testowania API to Postman, SoapUI, Swagger, JMeter.

Rozwój aplikacji do fakturowania korzystającej z API – praktyczny przykład

Podsumowując, warto pamiętać, że testowanie API jest kluczowym etapem w procesie tworzenia i rozwijania oprogramowania, zapewniającym zgodne z oczekiwaniami działanie interfejsów programistycznych oraz wysoką jakość aplikacji. 

Jednym z ciekawych przykładów aplikacji, korzystającej z różnych źródeł danych przez API, jest system firmy Carnect, która jest wiodącym i światowym specjalistą w dziedzinie dystrybucji wynajmu samochodów. Mieliśmy okazję pracować nad usprawnieniem ich procesu fakturowania i stworzyliśmy rozwiązanie, które połączyło dwa systemy klienta, rewolucjonizując ten trudny proces, dzięki czemu zaoszczędzony czas i zasoby można przeznaczyć na zadania bardziej angażujące i wpływające na rozwój biznesu. Testy systemu były integralną częścią projektu – zweryfikowaliśmy wymagania funkcjonalne, przez co wiemy, że najważniejsze elementy działają zgodnie z założeniami.

Jeśli poszukujesz partnera technologicznego, który zadba o jakość twojej aplikacji – zaplanuje proces testowy, dobierze typ i rodzaj testów, skonfiguruje framework, przygotuje środowisko testowe, to dobrze trafił_ś!

Przygotowaliśmy zestaw odpowiedzi na 10 pytań najczęściej zadawanych przez naszych klientów odnośnie testowania oprogramowania Jeśli nie znajdziesz tam odpowiedzi na te, które Cię nurtują – napisz do nas i umów się na bezpłatną konsultację z naszymi ekspertami od testowania oprogramowania!

Dlaczego testujemy oprogramowanie

Autor: Magdalena Mazur,
Tester Oprogramowania

Tester funkcjonalny, manualny z doświadczeniem w testowaniu aplikacji webowych, mobilnych oraz API. Pasjonatka gotowania i jedzenia. Uwielbiająca podróże i jazdę na rowerze.

SKONTAKTUJ SIĘ
Wypełnij
formularz.
Skontaktujemy się z Tobą,
żeby umówić rozmowę
w dogodnym dla Ciebie terminie.