Samouczek testowania API: Co to jest automatyzacja testów API? Jak testować

Zanim przejdziemy do samouczka testowania API, najpierw zrozummy

Co to jest API?

API (Application Programming Interface) to interfejs obliczeniowy, który umożliwia komunikację i wymianę danych między dwoma oddzielnymi systemami oprogramowania. System oprogramowania, który wykonuje API, zawiera kilka funkcji / podprogramów, które może wykonywać inny system oprogramowania. API definiuje żądania, które mogą być wysyłane, jak je wysyłać, formaty danych, które mogą być używane, itp. Między dwoma systemami oprogramowania.

Co to jest testowanie API?

TESTOWANIE API to typ testowania oprogramowania, który weryfikuje interfejsy programowania aplikacji (API). Celem testów API jest sprawdzenie funkcjonalności, niezawodności, wydajności i bezpieczeństwa interfejsów programistycznych. W testowaniu API, zamiast korzystać ze standardowych wejść użytkownika (klawiatury) i wyjść, używasz oprogramowania do wysyłania wywołań do API, pobierania danych wyjściowych i notowania odpowiedzi systemu. Testy API bardzo różnią się od testów GUI i nie będą koncentrować się na wyglądzie i działaniu aplikacji. Koncentruje się głównie na warstwie logiki biznesowej architektury oprogramowania.

Testowanie automatyzacji API wymaga aplikacji, z którą można współdziałać za pośrednictwem interfejsu API. Aby przetestować API, musisz to zrobić

  • Użyj narzędzia testowego do sterowania interfejsem API
  • Napisz własny kod, aby przetestować interfejs API

W tym samouczku testowania API dowiesz się więcej o:

  • Konfiguracja środowiska testowego API
  • Typy danych wyjściowych interfejsu API
  • Przypadki testowe do testowania API
  • Podejście do testowania API
  • Różnica między testowaniem interfejsu API a testowaniem jednostkowym
  • Jak przetestować API
  • Najlepsze praktyki testowania API
  • Typy błędów wykrytych przez testy API
  • Jak zrobić automatyzację testów API
  • Wyzwania testowania API

Konfiguracja środowiska testowego API

  • Testowanie API różni się od innych typów testów oprogramowania, ponieważ GUI nie jest dostępne, a mimo to wymagane jest skonfigurowanie środowiska początkowego, które wywołuje interfejs API z wymaganym zestawem parametrów, a następnie ostatecznie sprawdza wynik testu.
  • Dlatego ustawienie środowiska testowego do testowania automatyzacji API wydaje się nieco skomplikowane.
  • Bazę danych i serwer należy skonfigurować zgodnie z wymaganiami aplikacji.
  • Po zakończeniu instalacji należy wywołać funkcję API, aby sprawdzić, czy ten interfejs API działa.

Typy danych wyjściowych interfejsu API

Wyjście API mogłoby być

  1. Dowolny typ danych
  2. Status (powiedz Pass or Fail)
  3. Wywołaj inną funkcję API.

Spójrzmy na przykład każdego z powyższych typów w tym samouczku testowania interfejsu API

Dowolny typ danych

Przykład: istnieje funkcja API, która powinna dodać dwie liczby całkowite.

Długi dodatek (int a, int b)

Liczby należy podać jako parametry wejściowe. Wynik powinien być sumą dwóch liczb całkowitych. Wynik ten należy zweryfikować pod kątem oczekiwanego wyniku.

Należy dzwonić, np

dodaj (1234, 5656)

Wyjątki muszą być obsługiwane, jeśli liczba przekracza limit liczb całkowitych.

Status (powiedz Pass or Fail)

Rozważ poniższą funkcję API -

  1. Zamek()
  2. Odblokować()
  3. Kasować()

Jako dane wyjściowe zwracają dowolną wartość, taką jak True (w przypadku sukcesu) lub false (w przypadku błędu).

Bardziej dokładnym przypadkiem testowym byłoby wywołanie funkcji w dowolnym ze skryptów, a następnie sprawdzenie zmian w bazie danych lub w interfejsie GUI aplikacji.

Wywołanie innego API / zdarzenia

W tym przypadku wywołujemy jedną z funkcji API, która z kolei wywoła inną funkcję.

Na przykład - Pierwsza funkcja API może służyć do usuwania określonego rekordu w tabeli, a ta z kolei wywołuje inną funkcję w celu ODŚWIEŻENIA bazy danych.

Przypadki testowe do testowania API:

Przypadki testowe testów API są oparte na

  • Wartość zwracana na podstawie warunku wejściowego: jest stosunkowo łatwa do przetestowania, ponieważ dane wejściowe można zdefiniować, a wyniki można uwierzytelnić
  • Nic nie zwraca: gdy nie ma wartości zwracanej, zachowanie API w systemie do sprawdzenia
  • Wyzwalanie innego interfejsu API / zdarzenia / przerwania: jeśli wyjście interfejsu API wyzwala jakieś zdarzenie lub przerwanie, należy śledzić te zdarzenia i nasłuchiwania przerwań
  • Zaktualizuj strukturę danych: Aktualizacja struktury danych będzie miała pewien skutek lub wpływ na system, a to powinno zostać uwierzytelnione
  • Modyfikuj określone zasoby: jeśli wywołanie API modyfikuje niektóre zasoby, należy je zweryfikować, uzyskując dostęp do odpowiednich zasobów

Podejście do testowania API

Podejście do testowania API to predefiniowana strategia lub metoda, którą zespół QA wykona w celu przeprowadzenia testów API po zakończeniu kompilacji. Te testy nie obejmują kodu źródłowego. Podejście do testowania API pomaga lepiej zrozumieć funkcje, techniki testowania, parametry wejściowe i wykonanie przypadków testowych.

Poniższe punkty pomagają użytkownikowi w podejściu do testowania API:

  1. Zrozumienie funkcjonalności programu API i jasne określenie zakresu programu
  2. Zastosuj techniki testowania, takie jak klasy równoważności, analiza wartości brzegowych i zgadywanie błędów oraz pisz przypadki testowe dla interfejsu API
  3. Parametry wejściowe dla API muszą być odpowiednio zaplanowane i zdefiniowane
  4. Wykonaj przypadki testowe i porównaj oczekiwane i rzeczywiste wyniki.

Różnica między testowaniem interfejsu API a testowaniem jednostkowym

Testów jednostkowych Testowanie API
  • Deweloperzy to wykonują
  • Testerzy to wykonują
  • Testowana jest osobna funkcjonalność
  • Testowana jest funkcjonalność od końca do końca
  • Programista może uzyskać dostęp do kodu źródłowego
  • Testerzy nie mają dostępu do kodu źródłowego
  • W grę wchodzi również testowanie interfejsu użytkownika
  • Testowane są tylko funkcje API
  • Testowane są tylko podstawowe funkcjonalności
  • Wszystkie problemy funkcjonalne są testowane
  • Ograniczony zakres
  • Szerszy zakres
  • Zwykle prowadzony przed zameldowaniem
  • Uruchomiony po utworzeniu kompilacji

Jak przetestować API

Testowanie automatyzacji API powinno obejmować co najmniej następujące metody testowania poza zwykłym procesem SDLC

  • Testowanie wykrywania: grupa testowa powinna ręcznie wykonać zestaw wywołań udokumentowanych w interfejsie API, np. Sprawdzenie, czy określony zasób udostępniony przez interfejs API może być wymieniony, utworzony i usunięty w razie potrzeby
  • Testy użyteczności: te testy sprawdzają, czy API jest funkcjonalne i przyjazne dla użytkownika. I czy API dobrze integruje się również z inną platformą
  • Testy bezpieczeństwa: te testy obejmują rodzaj wymaganego uwierzytelniania i czy poufne dane są szyfrowane za pośrednictwem protokołu HTTP lub obu
  • Testowanie automatyczne: testowanie API powinno zakończyć się stworzeniem zestawu skryptów lub narzędzia, które może być używane do regularnego wykonywania API
  • Dokumentacja: zespół testowy musi upewnić się, że dokumentacja jest odpowiednia i zawiera wystarczające informacje do interakcji z API. Dokumentacja powinna być częścią końcowego produktu dostarczanego

Najlepsze praktyki testowania API:

  • Przypadki testowe API należy pogrupować według kategorii testów
  • Oprócz każdego testu należy dołączyć deklaracje wywoływanych interfejsów API.
  • Wybór parametrów powinien być wyraźnie określony w samym przypadku testowym
  • Określ priorytety wywołań funkcji API, aby testerzy mogli je łatwo testować
  • Każdy przypadek testowy powinien być jak najbardziej samodzielny i niezależny od zależności
  • Unikaj tworzenia łańcuchów testów
  • Należy zachować szczególną ostrożność podczas obsługi funkcji połączeń jednorazowych, takich jak - Delete, CloseWindow itp.
  • Sekwencjonowanie rozmów powinno być wykonane i dobrze zaplanowane
  • Aby zapewnić pełne pokrycie testów, utwórz przypadki testowe API dla wszystkich możliwych kombinacji danych wejściowych API.

Typy błędów wykrytych przez testy API

  • Nie radzi sobie z wdzięczną obsługą warunków błędu
  • Nieużywane flagi
  • Brakujące lub zduplikowane funkcje
  • Problemy z niezawodnością. Trudności w łączeniu się i uzyskiwaniu odpowiedzi z API.
  • Problemy z bezpieczeństwem
  • Problemy wielowątkowe
  • Problemy z wydajnością. Czas odpowiedzi API jest bardzo długi.
  • Niewłaściwe błędy / ostrzeżenia dla dzwoniącego
  • Nieprawidłowa obsługa prawidłowych wartości argumentów
  • Dane odpowiedzi mają nieprawidłową strukturę (JSON lub XML)

Jak zrobić automatyzację testów API

Poniższe samouczki zawierają szczegółowy przewodnik dotyczący automatyzacji testów interfejsu API.

Jak przetestować API z REST Assured

Jak przetestować API z Postmanem

Jak przetestować API za pomocą UFT

Poza tym istnieją inne narzędzia do testowania API. Sprawdź je tutaj

Wyzwania testowania API

Wyzwania testowania API obejmują:

  • Główne wyzwania związane z testowaniem internetowego interfejsu API to kombinacja parametrów, wybór parametrów i sekwencjonowanie wywołań
  • Nie ma dostępnego GUI do testowania aplikacji, co utrudnia podanie wartości wejściowych
  • Walidacja i weryfikacja danych wyjściowych w innym systemie jest mało trudna dla testerów
  • Wybór i kategoryzacja parametrów muszą być znane testerom
  • Należy przetestować funkcję obsługi wyjątków
  • Znajomość kodowania jest niezbędna dla testerów

Wniosek:

API składa się z zestawu klas / funkcji / procedur, które reprezentują warstwę logiki biznesowej. Jeśli API nie zostanie poprawnie przetestowane, może powodować problemy nie tylko w aplikacji API, ale także w aplikacji wywołującej. Jest to niezastąpiony test w inżynierii oprogramowania.

Interesujące artykuły...