how automate api requests using rest assured
W tym samouczku nauczymy się automatyzować żądania API przy użyciu REST Assured podczas wykonywania skryptów testowych na Jenkins:
W drugim samouczku z serii samouczków REST API poznaliśmy różne typy kodów odpowiedzi, żądań REST, najlepszych praktyk REST i testowania API przy użyciu POSTMAN.
ODPOCZYNEK usługi internetowe stają się popularne z dnia na dzień ze względu na ich łatwość tworzenia, wdrażania, dostępu, a następnie wykonywania. Co więcej, są lekkie i nie mają żadnych ścisłych standardów, których należy przestrzegać.
Jednak gdy istnieje większa liczba usług, które muszą być wykonywane w każdej nowej kompilacji, staje się to koszmarem dla testera i koszmarów projektu. Ponownie, niektóre usługi mają charakter wewnętrzny i są związane z samym projektem, a niektóre są tworzone w celu wykorzystania przez osoby trzecie.
Tak więc pojawił się pomysł automatyzacji. Dostępnych jest kilka narzędzi do automatyzacji usług REST, takich jak:
- vRest
- HttpMaster
- Parasoft
- RestAssured
RestAssured to popularne wśród testerów narzędzie do automatyzacji. Zobaczmy, dlaczego jest to preferowana opcja.
Czego się nauczysz:
Dlaczego RESTAssured?
- Jest open-source, dlatego każda organizacja może go używać do swoich potrzeb projektowych.
- REST Assured to biblioteka Java, więc nie występuje jako GUI, jak inne narzędzia. Jest to framework do testowania usług REST w Javie.
- Udostępnia język specyficzny dla domeny (DSL) do tworzenia skryptu automatyzacji, używa dowolnego języka natywnego, takiego jak Java, i testuje RESTful Web API.
- Obsługuje format XML i JSON dla żądania, odpowiedzi.
- Działa jako klient bez głowy.
- Możemy dostosować żądanie, które zamierzamy wysłać do serwera za pomocą tej biblioteki.
- Może również testować różne kombinacje złożonej logiki biznesowej.
- Jest w stanie pobrać kod statusu, odpowiedzi, treść odpowiedzi, nagłówki z serwera dla wysłanego żądania.
- Umożliwia pisanie skryptu testowego w stylu BDD, tj. W formacie GIVEN-WHEN-THEN, tak aby każdy członek zespołu biznesowego, zwłaszcza z zaplecza niezwiązanego z IT, mógł go również zobaczyć i zrozumieć logikę i pokrycie testu.
W tym samouczku będziemy automatyzować żądania, które utworzyliśmy ręcznie wcześniej w pierwszym samouczku dotyczącym interfejsu API REST za pośrednictwem POSTMAN, a także omówimy komercyjne narzędzie o nazwie GITHUB.
Automatyzacja żądań Web API przy użyciu REST Assured
W tym samouczku będziemy zajmować się kompleksową automatyzacją, tj. Utworzeniem klasy Java i uruchomieniem jej z Jenkinsa.
Wymagania wstępne:
- Adresaci muszą posiadać praktyczną wiedzę na temat Eclipse IDE, Maven, TestNG, ReportNG.
- Odbiorcy powinni również być świadomi Jenkinsa.
- Połączenie internetowe jest wymagane, jeśli uzyskujemy dostęp do usług wdrożonych przez Internet. W przypadku, gdy korzystamy z usług wdrożonych lokalnie, w takim przypadku upewnij się, że tester ma do tego uprawnienie.
- Jeśli automatyzujemy jakiekolwiek komercyjne, zabezpieczone witryny, w takim przypadku upewnij się, że token autoryzacyjny, tokeny API, klucze API itp. Działają poprawnie i są dostarczone testerowi, który obecnie automatyzuje skrypt.
Testowanie adresu URL
- http://jsonplaceholder.typicode.com działa i działa
- Użytkownik ma ważne poświadczenie powyżej GitHub
Ustawienia środowiskowe
# 1) Zainstaluj Eclipse IDE
Przede wszystkim musimy pobrać Eclipse IDE z oficjalnej strony internetowej Zaćmienie.
Następnie zainstaluj IDE. Ustaw poprawnie ścieżkę, zmienną środowiskową JAVA_HOME. Zachowaj ścieżkę JDK, JRE do wykorzystania w przyszłości. Po zainstalowaniu Eclipse utwórz / ustaw obszar roboczy i otwórz go.
W moim przypadku jest to:
#dwa) Utwórz projekt Maven
Upewnij się, że skonfigurowałeś stronę główną Mavena pod zmiennymi środowiskowymi.
# 3) Dodaj wszystkie istotne, niezbędne zależności, wtyczki związane z REST-ASSURED, TESTNG, REPORTNG do pom.xml.
Oto przykładowy plik pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Dodaj wymagane pliki JAR do ścieżki kompilacji projektów Maven.
Zwykle są to pliki biblioteki, które znajdują się w pliku jar z zabezpieczeniem REST, TESTNG, REPORTNG. Mimo że dodaliśmy zależność, wtyczkę do pliku pom.xml, ale nadal czasami pojawia się błąd, dlatego musimy dodać te pliki jars / biblioteki, aby zbudować ścieżkę projektu maven, aby zapobiec błędom (jeśli występują).
Jednakże, kiedy tworzymy projekty Java zamiast projektów Maven, w takim przypadku musimy mieć te pliki jar, biblioteki pod ręką i używać ich w razie potrzeby.
narzędzie Google dla webmasterów narzędzie do sprawdzania niedziałających linków
# 5) Zainstaluj JENKINS (w systemie Windows)
Pobierz Jenkins z jenkins.io/download/.
Następnie otwórz instalację i postępuj zgodnie z instrukcjami, aż zostanie poprawnie zainstalowana.
Po zainstalowaniu musimy uruchomić JENKINS, możemy zrobić to samo z wiersza poleceń.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Po wyświetleniu powyższego komunikatu musimy poczekać jeszcze trochę, aby zobaczyć następujący komunikat.
Jak widzimy ostatnią wiadomość na powyższym ekranie, gdzie Jenkins jest w pełni uruchomiony, możemy teraz uruchomić Jenkins za pomocą następującego adresu URL.
http: // localhost: 9090 /
Za pierwszym razem może to zająć trochę czasu, ale potem będzie szybciej. Następnie musimy utworzyć użytkownika.
Po utworzeniu użytkownika musimy ponownie uruchomić Jenkins i uzyskać dostęp do interfejsu użytkownika za pomocą hasła.
Po zainstalowaniu Jenkin możemy zainstalować wtyczki w Manage Jenkins> Global Tool Configuration (nawet podczas instalacji Jenkin).
Tworzenie skryptu automatyzacji
# 6) Możemy stworzyć nową JAVA CLASS i przekonwertować ją na TESNG lub bezpośrednio utwórz KLASĘ TESTNG, a następnie utwórz nowy plik XML (testng.xml).
Dla uproszczenia utworzono dwie klasy Java
# 1) Tutorial1.java - Ten plik zawiera użycie wszystkich metod, takich jak GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT przy użyciu fałszywego testowego adresu URL https: jsonplaceholder.typicode.com.
Mimo że adres URL zachowuje się jak oryginalny adres URL, zwracając takie odpowiedzi, ale w rzeczywistości na serwerze, nie wprowadza się żadnych modyfikacji. Służy jedynie do zademonstrowania właściwości i reakcji usług sieciowych, gdy otrzymają one żądanie od klienta.
# 2) Tutorial2.java - Ten plik zawiera przykład GitHub w czasie rzeczywistym, w którym będziemy czytać komentarz dodany do istoty.
Uwaga : GitHub wymaga uwierzytelnienia, dlatego po zalogowaniu się do GitHub musimy wygenerować token API lub podstawową autoryzację - ustawienia albo możemy wygenerować token autoryzacyjny z samego POSTMAN
TESNG.XML
Oto plik XML, który wykona oba Tutorial1.java i Tutorial2.java
Dla celów demonstracyjnych wykluczyłem wszystkie metody do uruchamiania i umożliwiłem wykonanie tylko jednej metody GET z Tutorial1.java. Jeśli jednak chcemy zobaczyć wszystkie wykonane metody, musimy zastąpić go plikiem XML typu over TestNG. W naszym przypadku nazwa pliku TestNG to testng1.xml.
Teraz, jeśli wykonamy powyższe plik testng1.xml przez Eclipse wtedy otrzymamy następujące wyjście konsoli.
(TestNGContentHandler) (WARN) Zdecydowanie zaleca się dodanie „” na początku pliku, w przeciwnym razie TestNG może się nie powieść lub nie działać zgodnie z oczekiwaniami.
(TestNG) Trwa:
D: RestAssured restapi testng1.xml
*** POZNAJ METODĘ ***
Userid - (1) to - (3) Title - (jeśli kłopotliwe jest to, że ćwiczenie jest bolesne lub) body - (i prawo, ale prawo
I wszystkie wybrania lub dla przyjemności niewidomych
lub potępiając wynikający z tego smutek i przyjemność
i jest chętny do i od trudu ohydnego lub niewygody; oraz)
*** POBIERZ METHOD ENS ***
————————————————–
Samouczki REST API
Łączna liczba uruchomionych testów: 1, niepowodzenia: 0, pominięcia: 0
—————————————————-
jak uruchomić plik jar
Oto wynik testu pakietu.
Oto domyślny raport wygenerowany przez TestNG.
Oto raport wygenerowany przez ReportNG.
Ponieważ skonfigurowaliśmy już ReportNG, możemy więc spodziewać się jasnego obrazu całkowitej liczby zaliczonych, nieudanych, jak powyżej.
Wykonywanie skryptów testowych za pomocą wiersza polecenia
- Musimy uruchomić wiersz polecenia
- Ustaw katalog roboczy jako lokalizację obszaru roboczego
- Znajdź pojemnik / lokalizację docelową
- Znajdź / utwórz lokalizację biblioteki
- Najpierw potrzebujemy zestawu, katalogu, w którym projekt istnieje. W moim przypadku jest to D: RestAssured restapi
- Java - słowo kluczowe
- cp - To jest ścieżka klas, czyli ścieżka, w której klasa Java istnieje w projekcie
- Cel - To jest to samo, co folder bin, kiedy pracujemy nad projektem Java. Ponieważ pracujemy nad projektem Maven, stąd będziemy mieć ten folder. W tym folderze możemy mieć jeszcze dwa foldery: classes, test-classes. Właściwa klasa Java powinna istnieć między tymi dwoma folderami
- Lib - Ten folder będzie zawierał wszystkie pliki JAR, których użyliśmy podczas wykonywania skryptu testowego z Eclipse. W niektórych przypadkach folder może nie być obecny. Dlatego może być konieczne utworzenie folderu i przechowywanie w nim wszystkich plików jar, plików wykonywalnych itp.
- org.testng.TestNG testng1.xml - To jest jak składnia. Ostatnia część to testng1.xml to plik zasobów TestNG, który zostanie wywołany w celu wykonania żądanych skryptów testowych
Kompletne polecenie będzie
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Następnie naciśnij enter
Uwaga: Możemy zobaczyć folder bin podczas pracy nad projektem Java. Jeśli jednak pracujemy w projekcie Maven to będziemy mieć folder docelowy i normalne klasy, pod nim będzie znajdował się folder test-classes.
Tworzenie pliku BAT i wykonywanie skryptów testowych
Zamiast otwierania wiersza poleceń i uruchamiania powyższego polecenia w celu wykonania skryptu testowego, możemy zachować polecenie w pliku tekstowym i podczas zapisywania nadać mu nazwę taką jak:
„Run.bat” (pamiętaj, aby zachować „” w pobliżu run.bat)
Oto, jak to wygląda po utworzeniu.
Teraz kliknij dwukrotnie „Uruchom”
Wiersz polecenia otworzy się i wykona skrypt testowy, a po zakończeniu wykonywania wiersz polecenia zostanie zamknięty.
Integracja JENKINS z Maven, Java
Musimy dokonać 4-5 konfiguracji w Jenkins, aby zintegrować go z Maven, Javą i wykonać to samo.
Po zalogowaniu się do Jenkinsa
Idź do Managera Jenkinsa >> Globalna konfiguracja narzędzi
ustawić ścieżkę instalacyjną JDK
Uwaga : Upewnij się, że wersja Jenkin obsługuje wersję JDK / Java. Jenkins w wersji 2.73 wymaga co najmniej JDK / JAVA w wersji 1.8, w przeciwnym razie spowoduje problemy podczas wykonywania skryptów testowych.
Ustaw ścieżkę instalacji Mavena
Następnie przejdź do menedżera Jenkins >> Konfiguracja systemów
plsql pytania do wywiadu i odpowiedzi dla doświadczonych
Ustaw ścieżkę zmiennej środowiskowej
Kolejny, Utwórz nowy element
Musimy kliknąć, aby utworzyć nowy link, określić Nazwa dla zadania wybierz typ projektu jako Freestyle . Nie musisz się teraz martwić o inne rzeczy.
Po utworzeniu praca będzie wyglądać następująco.
Teraz kliknij zadanie
Wykonaj poniższe kroki:
- Kliknij łącze konfiguracji w panelu po lewej stronie.
- Przewiń w dół kartę Ogólne i kliknij przycisk Zaawansowane.
- Zaznacz pole wyboru niestandardowego obszaru roboczego i określ lokalizację folderu projektu.
Po tym
- Przewiń w dół więcej, aby utworzyć wyzwalacze
- Zaznacz pole wyboru Buduj okresowo
- Ustaw trochę czasu, jak wspomniano poniżej
Przewiń w dół, ustaw nazwę Build. W naszym przypadku jest to wykonywalne polecenie wsadowe systemu Windows.
Znajduje się w tej samej lokalizacji, w której wcześniej trzymaliśmy plik run.bat, czyli folder D: RestAssured restapi
Zapisz wszystkie powyższe zmiany wprowadzone do tej pory.
Teraz poczekaj na uruchomienie zadania cron. Widzimy, że rozpoczęto budowę.
Po pomyślnym wykonaniu kompilacji, następnie musimy kliknąć kompilację nr 20, jak określono na powyższym obrazku.
Kliknij na Wyjście konsoli link w lewym panelu.
Teraz powinniśmy być w stanie zobaczyć następujące dane wyjściowe.
Wniosek
REST ASSURED to bardzo przydatna biblioteka JAVA do automatyzacji REST API niezależnie od języka. Posiada wiele wbudowanych opcji. Ma również wiele wersji z interesującymi funkcjami, zawartymi w nim opcjami. Obsługuje wiele formatów, takich jak żądania, takie jak XML, JSON itp.
W tym samouczku wyjaśniliśmy, jak zautomatyzować żądania API przy użyciu RESTAssured podczas wykonywania skryptów testowych przy użyciu Jenkins. Wyjaśniliśmy również, dlaczego Rest Assured jest lepszym wyborem do automatyzacji żądań API.
Mamy nadzieję, że podobała Ci się seria samouczków Rest API!
rekomendowane lektury
- Testowanie REST API z ogórkiem przy użyciu metody BDD
- 10 najlepszych narzędzi do testowania API w 2021 roku (narzędzia testowe SOAP i REST API)
- Testowanie REST API z Spring RestTemplate i TestNG
- Praca z żądaniami HTTP w JMeter
- Samouczek POSTMAN: Testowanie API przy użyciu POSTMAN
- 20 najważniejszych pytań i odpowiedzi do wywiadów dotyczących testowania API
- 10 najlepszych narzędzi do zarządzania interfejsami API z porównaniem funkcji
- 36 najpopularniejszych pytań do wywiadu z Jenkinsem (na 2021 r.)