RestAssured – wprowadzenie do testów API i ich automatyzacji. Poznaj w jaki sposób z wykorzystaniem tej biblioteki testować backend. Automatyzacja testów API zyskuje na popularności. Testując z użyciem Selenium dostrzegamy pewne mankamenty – m.in. czas wykonywania testów.
Co możemy testować z użyciem RestAssured
Biblioteka RestAssured pozwala nam na testowanie Rest API. Przedmiotowa biblioteka ma solidne wsparcie dla HTTP i w trakcie pracy można wykonywać metody typu GET, POST, PUT, DELTE. Chcąc korzystać z tej biblioteki zapoznaj się z wpisami na temat metod HTTP jak i statusów HTTP by później w łatwy sposób wywoływać pożądane metody czy weryfikować odpowiedzi. Zaletą testów RestAssured jest ich szybkość. Jeżeli mamy konieczność zweryfikowania czy dana witryna internetowa odpowiada (tylko i wyłącznie – bez wyświetlania contentu). Test Selenium inicjalizujący drivera otwierający przeglądarkę i uruchamiający stronę potrwa kilka sekund. Test RestAssured po swojej inicjalizacji – krótszej niż w Selenium, następnie odpytuje witryny w kilkadziesiąt/kilkaset ms. Przy odpytywaniu małej puli adresów może to nie robić bardzo znaczącej różnicy. Co jednak gdy musimy sprawdzić status odpowiedzi 100 adresów.
Skąd możemy pobrać.
Cały projekt związany z RestAssured jest dostępny na GitHubie Johana Haleby. Oczywiście możemy też pobrać kod do wpisania w POM jako dependency. Doskonałym źródłem wszystkich elementów związanych z tą biblioteką jest mvnrepository.com. Na tej witrynie znajdziemy wiele dodatków, które rozszerzą nam możliwości naszych testów jak:
JSON Path, JSON Schema Validator, XML Path i wiele innych. Tworząc testy z pomocą RestAssured dobrze będzie zapoznać się Hamcrest które będą niezwykle pomocne przy weryfikowaniu naszych założeń w testach.
<!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured --> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>4.3.1</version> <scope>test</scope> </dependency>
Zalety
Szybkość, stabilność czy przewidywalność. Chwilę wcześniej pisaliśmy o szybkości testów RestAssured względem Selenium. Czas wykonywania w zależności od ilości przypadków będzie tylko szerzej obrazował tą różnicę. Przyjmijmy, że uruchomienie testu Selenium sprawdzającego tylko i wyłącznie czy strona odpowiada – tj. jej uruchomienie zajmie kilkadziesiąt sekund. W tym czasie możemy odpytać kilkanaście adresów url i czy każdy z nich zwraca żądany status – np. 200. Stabilność testów RestAssured wydaje się o wiele większa aniżeli Selenium. Podobnie z przewidywalnością – gdy oczekujemy otrzymania w JSONie pewnych danych i napiszemy dobrze test, to w sytuacji gdy JSON nam zwróci jakieś elementy, to test będzie to odzwierciedlał. Jasne ktoś może zaraz wskazać a co w przypadku gdy np. strona nie odpowiada przez krótką chwilę i dostaniem informację fałszywą? Są też na to sposoby, by zminimalizować ryzyko takich zwrotek, jednak wszystko zależ od specyfikacji Waszego projektu i założeń testów.
Podsumowanie
RestAssured – wprowadzenie jest pierwszym z artykułów dotyczącym testowania z użyciem tej biblioteki. W dalszych wpisach poznacie dokładnie do czego można wykorzystywać tą bibliotekę, co można testować, jak też ulepszać swoje testy i zwiększać ich stabilność. Więcej informacji o testach automatycznych z wykorzystaniem RestAssured znajdziesz tutaj.