Samouczek testowania API: Co to jest automatyzacja testów API?
⚡ Inteligentne podsumowanie
Testowanie API weryfikuje interfejsy programowania aplikacji (API) w celu zapewnienia funkcjonalności, niezawodności, wydajności i bezpieczeństwa przy użyciu wywołań opartych na kodzie, a nie interakcji z interfejsem GUI.

Co to jest testowanie API?
Testowanie API jest typem testowania oprogramowania, który weryfikuje interfejsy programowania aplikacji (API). Celem testowania API jest sprawdzenie funkcjonalności, niezawodności, wydajności i bezpieczeństwa interfejsów programowania. W testowaniu API zamiast używania standardowych danych wejściowych użytkownika (klawiatury) i danych wyjściowych, używasz oprogramowania do wysyłania wywołań do API, pobierania danych wyjściowych i zapisywania odpowiedzi systemu. Testy API bardzo różnią się od testów GUI i nie koncentrują się na wyglądzie i działaniu aplikacji. Koncentrują się głównie na warstwie logiki biznesowej architektury oprogramowania.
W tle API (interfejs programowania aplikacji) to interfejs obliczeniowy umożliwiający komunikację i wymianę danych pomiędzy dwoma odrębnymi systemami oprogramowania. System oprogramowania wykonujący interfejs API zawiera kilka funkcji/podprogramów, które może wykonać inny system oprogramowania. API definiuje żądania, które można wysyłać, sposób wysyłania żądań, formaty danych, których można używać itp. pomiędzy dwoma systemami oprogramowania.
Konfiguracja środowiska automatyzacji testów API
Testowanie automatyzacji API wymaga aplikacji, z którą można wchodzić w interakcję za pośrednictwem API. Aby przetestować API, należy:
- Użyj narzędzia testowego do uruchomienia interfejsu API
- Napisz własny kod, aby przetestować API
Kilka punktów, na które należy zwrócić uwagę:
- Testowanie API różni się od innych typów testowania, ponieważ nie jest dostępny interfejs graficzny i konieczne jest skonfigurowanie środowiska, które wywołuje API z wymaganymi parametrami, a następnie analizuje wyniki testów.
- Konfiguracja środowiska testowego do testowania automatyzacji interfejsu API wydaje się nieco skomplikowana.
- Bazę danych i serwer należy skonfigurować zgodnie z wymaganiami aplikacji.
- Po zakończeniu instalacji należy wywołać funkcję API, aby sprawdzić, czy API działa.
Rodzaje danych wyjściowych interfejsu API
Wynikiem działania interfejsu API może być:
- Dowolny rodzaj danych
- Status (powiedz Pass lub Fail)
- Wywołaj inną funkcję API.
Dowolny typ danych
Przykład: Istnieje funkcja API, która powinna dodać dwie liczby całkowite.
Long add(int a, int b)
Liczby muszą być podane jako parametry wejściowe. Wyjście powinno być sumą dwóch liczb całkowitych. To wyjście musi zostać zweryfikowane z oczekiwanym wynikiem.
add (1234, 5656)
Wyjątki muszą zostać obsłużone, jeśli liczba przekroczy limit całkowity.
Status (zaliczony lub niezaliczony)
Rozważ poniższe funkcje API:
- Zamek()
- Odblokować()
- Usuwać()
Zwracają dowolną wartość, taką jak Prawda (w przypadku powodzenia) lub Fałsz (w przypadku błędu) jako wynik. Bardziej dokładny walizka testowa wywołałby funkcje w dowolnym skrypcie, a następnie sprawdził, czy nastąpiły zmiany w bazie danych lub w interfejsie graficznym aplikacji.
Wywołanie innego API/zdarzenia
W tym przypadku wywołujemy jedną z funkcji API, która z kolei wywołuje inną funkcję. Na przykład – pierwsza funkcja API może zostać użyta do usunięcia określonego rekordu z tabeli, a ta z kolei wywołuje inną funkcję w celu odświeżenia bazy danych.
Przypadki testowe do testowania API
Przypadki testowe testowania API opierają się na:
- Wartość zwracana na podstawie warunku wejściowego: testowanie jest stosunkowo łatwe, ponieważ można zdefiniować dane wejściowe i uwierzytelnić wyniki
- Nic nie zwraca: Jeśli nie ma wartości zwracanej, należy sprawdzić zachowanie API w systemie
- Wywołaj inne API/zdarzenie/przerwanie: Jeśli dane wyjściowe interfejsu API wyzwalają jakieś zdarzenie lub przerwanie, wówczas te zdarzenia i obiekty nasłuchujące przerwań powinny być tracKED
- Zaktualizuj strukturę danych: Aktualizacja struktury danych będzie miała pewien skutek lub wpływ na system i należy to uwierzytelnić
- Zmodyfikuj niektóre 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ół ds. zapewnienia jakości zastosuje w celu przeprowadzenia testów API po zakończeniu kompilacji. Testowanie to nie obejmuje kodu źródłowego. Podejście do testowania API pomaga lepiej zrozumieć funkcjonalności, techniki testowania, parametry wejściowe i wykonywanie przypadków testowych.
Poniższe punkty pomogą Ci w wyborze metody testowania interfejsu API:
- Zrozumienie funkcjonalności programu API i jasne określenie zakresu programu
- Stosuj techniki testowania, takie jak klasy równoważności, analiza wartości brzegowych i zgadywanie błędów, a także pisz przypadki testowe dla interfejsu API
- Parametry wejściowe dla interfejsu API muszą być odpowiednio zaplanowane i zdefiniowane
- Wykonaj przypadki testowe i porównaj oczekiwane i rzeczywiste wyniki.
Jak przetestować API
Testowanie automatyzacji interfejsu API powinno obejmować co najmniej następujące metody testowania oprócz typowego procesu SDLC:
- Testowanie odkrywania: Grupa testowa powinna ręcznie wykonać zestaw wywołań udokumentowanych w interfejsie API, np. sprawdzić, czy konkretny zasób udostępniony przez interfejs API może zostać odpowiednio wyszczególniony, utworzony i usunięty
- Test użyteczności: Testowanie to sprawdza, czy interfejs API jest funkcjonalny i przyjazny dla użytkownika. I czy API dobrze integruje się również z inną platformą
- Testowanie bezpieczeństwa: Testowanie to obejmuje wymagany typ uwierzytelniania i to, czy wrażliwe dane są szyfrowane za pośrednictwem protokołu HTTP, czy obu
- Automatyczne testy: Testowanie API powinno zakończyć się stworzeniem zestawu skryptów lub narzędzia, które będzie można wykorzystać do regularnego uruchamiania API
- Dokumentacja: Zespół testowy musi upewnić się, że dokumentacja jest odpowiednia i zapewnia wystarczającą ilość informacji do interakcji z API. Dokumentacja powinna stanowić część produktu końcowego
Różnica między testowaniem API a testowaniem jednostkowym
| Testów jednostkowych | Testowanie API |
|---|---|
| Deweloperzy to wykonują | Testerzy to wykonują |
| Testowana jest osobna funkcjonalność | Testowana jest kompleksowa funkcjonalność |
| Programista może uzyskać dostęp do kodu źródłowego | Testerzy nie mają dostępu do kodu źródłowego |
| W grę wchodzi także 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 uruchamiane przed odprawą | Uruchomienie testu po utworzeniu kompilacji |
Najlepsze praktyki testowania API
- Przypadki testowe API powinny być grupowane 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.
- Nadaj priorytet wywołaniom funkcji API, aby testerzy mogli łatwo je testować.
- Każdy przypadek testowy powinien być możliwie jak najbardziej samodzielny i niezależny od zależności.
- Unikaj „łańcuchowania testów” w swoim rozwoju.
- Szczególną ostrożność należy zachować przy obsłudze funkcji wywołań jednorazowych, takich jak Delete, CloseWindow itp.
- Należy dobrze zaplanować sekwencjonowanie połączeń.
- Aby zapewnić pełne pokrycie testami, utwórz przypadki testowe API dla wszystkich możliwych kombinacji wejściowych API.
Rodzaje błędów wykrywanych podczas testowania API
- Nie radzi sobie z błędami w należyty sposób
- Nieużywane flagi
- Brakująca lub zduplikowana funkcjonalność
- Problemy z niezawodnością, w tym trudności z połączeniem i uzyskaniem odpowiedzi z interfejsu API
- Kwestie bezpieczeństwa
- Problemy z wielowątkowością
- Problemy z wydajnością, w przypadku których czas reakcji API jest bardzo długi
- Niewłaściwe błędy/ostrzeżenie dla osoby dzwoniącej
- Niepoprawna obsługa prawidłowych wartości argumentów
- Dane odpowiedzi nie są poprawnie ustrukturyzowane (JSON lub XML)
Jak przeprowadzić automatyzację testów API
Poniżej znajdują się szczegółowe przewodniki dotyczące automatyzacji testowania API:
- Jak przetestować API za pomocą Zapewniony odpoczynek
- Jak przetestować API za pomocą Postman
- Jak przetestować API za pomocą UFT
Poza tym są inne narzędzia do testowania API.
Jak AI zmienia testowanie API
Sztuczna inteligencja to reshaping Testowanie API poprzez automatyzację zadań manualnych. Algorytmy uczenia maszynowego mogą analizować specyfikacje API, generować przypadki testowe i identyfikować przypadki skrajne, które testerzy mogliby przeoczyć.
Sztuczna inteligencja usprawnia również testy bezpieczeństwa poprzez wykrywanie luk w zabezpieczeniach. Powinna jednak uzupełniać, a nie zastępować wiedzę specjalistyczną człowieka, ponieważ inżynierowie ds. zapewnienia jakości wnoszą wiedzę dziedzinową, której AI nie jest w stanie odtworzyć.
Wyzwania testowania API
- Główne wyzwania w testowaniu interfejsu API sieci Web to łączenie parametrów, dobór parametrów i sekwencjonowanie wywołań.
- Brak dostępnego interfejsu graficznego umożliwiającego testowanie aplikacji, co utrudnia podawanie wartości wejściowych.
- Sprawdzanie i weryfikowanie wyników w innym systemie jest dla testerów nieco trudne.
- Testerzy muszą być zaznajomieni z wyborem i kategoryzacją parametrów.
- Należy przetestować funkcję obsługi wyjątków.
- Wiedza z zakresu kodowania jest niezbędna dla testerów.
Wniosek
API składa się z zestawu klas/funkcji/procedur reprezentujących warstwę logiki biznesowej. Jeśli API nie zostanie odpowiednio przetestowane, może to spowodować problemy nie tylko w aplikacji API, ale także w aplikacji wywołującej. Jest to niezbędny test w inżynierii oprogramowania.



