Sii Polska

SII UKRAINE

SII SWEDEN

  • Szkolenia
  • Kariera
Dołącz do nas Kontakt
Wstecz

Sii Polska

SII UKRAINE

SII SWEDEN

Wstecz

25.03.2021

Kilka słów o testowaniu API

25.03.2021

Kilka słów o testowaniu API

Testowanie aplikacji kojarzy mi się z poznaniem jej, sprawdzeniem, czy wszystko działa zgodnie z projektem, a także z weryfikacją i przetestowaniem również tego, co jest niewidoczne dla użytkownika! Z testowaniem API właśnie 😊

Testowanie aplikacji

Zanim przejdziemy do rozwinięcia tego akronimu, na początek zastanówmy się nad samym testowaniem aplikacji. Dla przykładu – w jaki sposób przetestujesz stronę internetową z polem „imię”, które może składać się maksymalnie z 20 znaków?

Domyślam się, że na początku sprawdzisz, czy pole może być puste. Następnie zweryfikujesz przykładowe imiona, których zakres mieści się w wymaganiach. Kolejnym krokiem może być sprawdzenie wartości granicznych – wpisanie imienia o 20 i 21 znakach. Jeśli 21 znaków nie spowoduje błędu, to może rozbicie słowa na dwa dużo mniejsze i rozdzielone spacją, ukaże prawdziwe oblicze aplikacji? Nie, wszystko wciąż działa dobrze. Nie wykryto błędów. Zespół zatem poprawnie napisał tę funkcjonalność. Zatwierdzasz ją jako przetestowaną i działającą. Strona może iść na produkcję.

Po tygodniu, gdy popijasz kawę, dostajesz informację zwrotną od biznesu o tytule „NA PRODUKCJI WYKRYTO KRYTYCZNY BŁĄD” oraz treści: „w polu „imię” została zapisana wartość o długości 21 znaków”. Jak to możliwe? Przecież wszystko zostało sprawdzone i przetestowane! Developerzy napisali kod, a testerzy potwierdzili poprawne działanie funkcjonalności!

Dlaczego warto znać API?

Czy domyślasz się, co poszło nie tak? Dobrze podejrzewasz – zawinił brak wiedzy i doświadczenia. Nikt nie zasugerował, że samo przetestowanie funkcjonalności na front-endzie (czyli za pomocą samej przeglądarki i interfejsu graficznego), to nie wszystko. Czasami konieczne jest również przetestowanie połączenia pomiędzy front-endem a back-endem.

Jak jednak tego dokonać z poziomu zwykłego użytkownika? W tym celu możemy (i powinniśmy) wykorzystać znajomość API. Jeśli jest już wykonana walidacja na front-endzie, to wcale nie oznacza, że back-end nie wymaga naszej uwagi.

API to angielski akronim od słów Application Programming Interface. Jest to zbiór metod służących do komunikacji pomiędzy dwoma systemami. Dzięki użyciu tego interfejsu, dostęp do zasobów jest łatwiejszy i bezpieczniejszy (pod warunkiem, że są dobrze zaprojektowane), a dodatkowo ułatwiona jest wymiana danych pomiędzy różnymi platformami. API pozwala użyć danych bez wglądu w szczegóły implementacji.

Architektura klient-serwer

Ze względu na to, że pracuję głównie z aplikacjami webowymi, zacznę od opisania architektury klient-serwer (client-server). W tym podejściu klientem może być przeglądarka, telefon lub inna aplikacja. Operacje i zadania wykonane po stronie klienta muszą być odwzorowane po stronie serwera.

Aby doszło do wymiany danych pomiędzy klientem a serwerem, powinny zostać wysłane wiadomości. Wg standardu W3C do komunikacji sieciowej może być użyty protokół HTTP (Hypertext Transfer Protocol), a konkretnie wiadomości HTTP (HTTP messages). Takimi wiadomościami będą żądania (requests) i odpowiedzi (responses).

Jak wygląda to w praktyce?

Wyobraź sobie formularz do rejestracji uczestnika na zawody motocyklowe. Po wypełnieniu formularza na stronie internetowej (po stronie klienta) klikasz „wyślij”. Kliknięcie przycisku powoduje wysłanie żądania do serwera. Serwer przetwarza żądanie i odsyła odpowiednią odpowiedź, którą następnie widzi klient. Tyle w teorii. Przejdźmy do strony technicznej.

API webowe jest podzielone na 3 typy:

  • prywatne,
  • partnerskie,
  • zewnętrzne.

Prywatne API jest zbudowane i wykorzystywane np. w przypadku aplikacji używanych przez pracowników jednej firmy (z ograniczonym dostępem z zewnątrz). Partnerskie API jest dostępne dla każdego, kto spełni odpowiednie warunki. Głównie używane jest do integracji pomiędzy firmami. Zewnętrzne API jest z kolei dostępne dla każdego.

Najpopularniejszymi typami API są:

  • REST,
  • SOAP,
  • RPC,
  • oraz, od pewnego czasu, GraphQL.

Najczęściej używanym typem jest REST. I to jemu poświęcę kolejny akapit.

REST API

REST API (ang. Representational State Transfer) jest architekturą oraz zbiorem zasad. API REST-owe umożliwia wykorzystanie dowolnego formatu danych – np. JSON, XML. Korzystając z REST-owego API, wykorzystujesz tzw. CRUD, czyli następujące operacje:

  • Utwórz (Create),
  • Odczytaj (Read),
  • Zmodyfikuj (Update),
  • Usuń (Delete).

W przypadku REST API wykorzystasz następujące metody:

  • Create – będzie to głównie metoda POST
  • Read – metoda GET
  • Update – metoda PUT/PATCH
  • Delete – metoda DELETE.

Oczywiście to tylko czubek góry lodowej. Samo REST API można wykorzystać do szeregu innych operacji jak np. restart serwera.

Dlaczego warto wykorzystać API w testowaniu?

Po pierwsze testy API to nie tylko testy funkcjonalne. API jest na tyle elastycznym rozwiązaniem, że możesz wykorzystać je jako podstawę do testów wydajności, bezpieczeństwa czy niezawodności. Początkowy przykład i problem z polem „imię” testy z wykorzystaniem API wykryłyby niemal natychmiast. Prawdopodobnie udałoby Ci się zapisać do bazy danych imię składające się z 23 znaków i takim testem sprawdzić poprawność pola, używając np. Swaggera lub konsoli deweloperskiej (popularne F12).

Zastanów się – jakie inne pola powinny także uwzględniać walidację zarówno na front-endzie jak i back-endzie? Np. pola, których niedostateczne przetestowanie mogłoby wywołać o wiele poważniejsze konsekwencje!

Poza tym, uwzględniając w testach API, możesz zweryfikować konkretne żądania (bez potrzeby wywołania ich na front-endzie). Ba! Możesz wręcz pominąć front-end! Oprócz tego masz możliwość wykorzystania swoich umiejętności przy nowoczesnych projektach pokroju technologii Internetu Rzeczy (IoT, która opiera się o API), dodatkowo mając świadomość, że podążasz za najnowszymi trendami. Przecież Shift Left opiera się o koncepcję „testowania bliżej kodu”.

Podsumowując, ten „API” nie jest taki najgorszy. 

***

Jeśli interesuje Cię temat API, zajrzyj do innych artykułów naszych ekspertów m.in.: Dane przemysłowe w Internecie – implementacja REST API z wykorzystaniem sieci polowej MODBUS oraz Charles – pomocne narzędzie w testowaniu REST API.

***
Chcesz lepiej zrozumieć aplikacje i systemy, które testujesz? Dołącz do ModernTester, poznaj najpotrzebniejsze narzędzia, frameworki oraz języki programowania i ćwicz na specjalnie przygotowanych środowiskach testowych: Platforma e-learningowa ModernTester

4.1/5
Ocena
4.1/5
Avatar

O autorze

Emilia Lendzion-Barszcz

Tester w Sii oraz szkoleniowiec. Na co dzień zajmuje się testowaniem backendu – szeroko rozumianą automatyzacją, wydajnością oraz testami jednostkowymi, zaś po godzinach chwyta adrenalinę za sprawą m.in. enduro. Znajdziesz ją tutaj: https://www.facebook.com/JavaGirlPL

Wszystkie artykuły autora

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

  • Od kilku dni próbuję zrozumieć ideę Postmana i wreszcie ktoś prostymi słowami od podszewki wytłumaczył mi co i po co się wysyła. Wielkie dzięki!

  • Fajny artykuł. Byłoby miło, jakby podany link do Platformy Modern tester działał. 🙂 błąd 502.

Może Cię również zainteresować

ZAPISZ SIĘ I BĄDŹ NA BIEŻĄCO

Newsletter blogowy

Dołącz do nas

Sprawdź oferty pracy

Pokaż wyniki
Dołącz do nas Kontakt

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?