Załóżmy, że używasz interfejsów API od dostawcy, jak upewnić się, że ich interfejs API działa zgodnie z oczekiwaniami?
Czasami moim głównym zmartwieniem jest to, że sprzedawca wypycha zmiany do swojego kodu i łamie API, chcemy mieć jakieś automatyczne oprogramowanie do ich ciągłego testowania. Jak sobie z tym poradzić?
testing
api
rest
continuous-integration
integration-tests
użytkownik34401
źródło
źródło
Odpowiedzi:
Krótka odpowiedź: potrzebujesz pakietu testowego dla interfejsu API dostawcy zewnętrznego - więc będziesz musiał go opracować.
Nie oczekuj, że ktoś zrobi to za Ciebie i nie oczekuj „magicznej kuli” do automatycznego generowania odpowiednich testów.
Niektóre rzeczy, które możesz wypróbować dodatkowo:
Jeśli te rzeczy działają, czy nie, zależy od tego, kto jest twoim dostawcą i jakiego rodzaju interfejsu API masz na myśli. Interfejs API, który generuje pewne dane wyjściowe, takie jak pliki, jest o wiele łatwiejszy do przetestowania niż interfejs API, który kontroluje niektóre urządzenia fizyczne, na których trzeba obserwować zachowanie rzeczy, aby zdecydować, czy wywołanie API zakończyło się powodzeniem, czy nie.
źródło
Oparty na frazowaniu plakatu, to coś więcej niż tylko testowanie, IMO. Po napisaniu testu jednostkowego interfejsu API i upewnieniu się, że wszystko działa zgodnie z oczekiwaniami, należy monitorować interfejsy API innych firm, aby wykryć problemy, zanim zrobią to użytkownicy. Takie jest prawdziwe ryzyko związane z interfejsami API innych firm - to nie jest twój kod i nie masz kontroli nad tym, ile testów przeprowadzono na interfejsie API ani kiedy / jeśli się zmieni.
(Zastrzeżenie: używane tutaj nazwy produktów) Jeśli używasz soapUI do pisania testów API, testy te mogą być ponownie użyte w AlertSite jako monitor operacyjny, aby upewnić się, że API działa zgodnie z oczekiwaniami. Jeśli test się nie powiedzie, możesz zostać ostrzeżony, zanim użytkownicy zadzwonią do Ciebie i narzekają, że Twoja aplikacja nie działa.
źródło
Zaimplementuj testy edukacyjne dla swojego obszaru zainteresowań (funkcje, których planujesz używać). Testy uczenia się są testami integracji napisanymi przez programistę na podstawie publicznej umowy API. Testy nie powinny być zapisywane w oparciu o wewnętrzne szczegóły implementacji, nawet jeśli kod źródłowy interfejsu API jest dostępny. Ten rodzaj testów uczenia się służy dwóm celom -
źródło
Istnieją 2 podejścia do tego problemu ...
Twoja aplikacja działa w środowisku produkcyjnym przy rzeczywistym ruchu użytkowników:
jeśli masz produkowaną aplikację, która ma ruch na żywo i zależy od zewnętrznego interfejsu API, nie masz innego wyboru, jak uważne monitorowanie i posiadanie dobrych progów, aby wiedzieć jak najszybciej, kiedy zewnętrzny interfejs dokonuje zmian bez powiadamiania.
zawsze należy wziąć pod uwagę, że:
Twoja aplikacja jest instalacją i ma zaplanowane wersje / wydania:
w tym przypadku masz okres karencji, aby zawieść ... użytkownik na żywo nie ma wpływu na zmiany w zewnętrznych interfejsach API.
moim zdaniem jest to łatwiejsze zadanie. napisz test (pełny test end-to-end), który dokonuje prawdziwych transakcji / http / żądań do aplikacji, która wywołuje zewnętrzny interfejs API i sprawdza, czy nie ma żadnych awarii. bez zestawów testowych bez fałszywych transakcji.
po wykonaniu tego zadania możesz je uruchamiać co 24 godziny, 1 minutę itp.
dobre praktyki:
przybory:
źródło