how automate api requests using rest assured
V tomto výukovém programu se naučíme automatizovat požadavky API pomocí REST Assured při provádění testovacích skriptů přes Jenkins:
Ve 2. výukovém programu REST API Tutorial Series jsme se naučili různé typy kódů odpovědí, požadavky REST, osvědčené postupy REST a testování API pomocí POSTMANU.
ODPOČINEK webové služby se stávají populární každý den kvůli jejich snadnému vývoji, implementaci, přístupu a následnému provedení. Kromě toho jsou lehké a nemají žádné přísné standardy, které je třeba dodržovat.
jak otevřít soubor .key ve Windows 10
Když však existuje větší počet služeb, které existují a je třeba je provést v každém novém sestavení, stane se z něj noční můra pro testera a náklady na projekt. Některé služby jsou opět interní, které souvisejí se samotným projektem, a některé jsou vytvářeny ke spotřebě třetími stranami.
Myšlenka automatizace tedy přišla. K automatizaci služeb REST je k dispozici několik nástrojů, například -
- vRest
- HttpMaster
- Parasoft
- Zajištěno
RestAssured je populární automatizační nástroj mezi testery. Podívejme se, proč se jedná o upřednostňovanou možnost.
Co se naučíte:
Proč RESTAssured?
- Je to open-source, a proto ho může každá organizace použít pro své potřeby projektu.
- REST Assured je knihovna Java, takže nepřichází jako grafické uživatelské rozhraní jako jiné nástroje. Jedná se o rámec pro testování služeb REST v Javě.
- Poskytuje jazyk specifický pro doménu (DSL) pro vytvoření automatizačního skriptu, používá jakýkoli nativní jazyk, například Java, a testuje webové rozhraní RESTful Web.
- Podporuje formát XML a JSON pro požadavek, odpovědi.
- Funguje jako bezhlavý klient.
- Pomocí této knihovny můžeme přizpůsobit požadavek, který pošleme na server.
- Může také otestovat pestrou kombinaci složité obchodní logiky.
- Je schopen načíst stavový kód, odpovědi, tělo odpovědi, záhlaví ze serveru pro odeslaný požadavek.
- Umožňuje styl BDD psaní testovacího skriptu, tj. Ve formátu GIVEN-WHEN-THEN, takže jej může zobrazit jakýkoli člen obchodního týmu, zejména z jiného než IT prostředí, a porozumět logice a pokrytí testu.
V tomto kurzu budeme automatizovat požadavky, které jsme vytvořili ručně dříve v prvním kurzu REST API prostřednictvím POSTMANA a budeme také diskutovat o komerčním nástroji s názvem GITHUB.
Automatizace požadavků webového API pomocí REST Assured
V tomto kurzu provedeme automatizaci typu end-to-end, tj. Vytvoříme třídu Java a provedeme ji z Jenkins.
Předpoklady:
- Zamýšlení příjemci musí mít pracovní znalosti o Eclipse IDE, Maven, TestNG, ReportNG.
- Příjemci by si měli být také vědomi Jenkinse.
- Internetové připojení je vyžadováno, pokud přistupujeme ke službám nasazeným přes web. V případě, že přistupujeme ke službám nasazeným místně, v takovém případě se ujistěte, že má tester právo.
- Pokud automatizujeme jakékoli komerční zabezpečené weby, v takovém případě se ujistěte, že autorizační token, tokeny API, klíče API atd. Fungují správně a jsou poskytovány testerovi, který skript aktuálně automatizuje.
Testování URL
- http://jsonplaceholder.typicode.com je v provozu
- Uživatel má platné přihlašovací údaje GitHub
Nastavení prostředí
# 1) Nainstalujte Eclipse IDE
Nejprve si musíme stáhnout Eclipse IDE z oficiálních webových stránek Zatmění.
Poté nainstalujte IDE. Nastavte cestu, proměnnou prostředí JAVA_HOME správně. Uchovávejte cestu JDK, JRE pro budoucí použití. Jakmile je Eclipse nainstalován, vytvořte / nastavte pracovní prostor a otevřete jej.
V mém případě je to:
#dva) Vytvořte projekt Maven
Ujistěte se, že jste nakonfigurovali domovskou stránku Maven přes proměnné prostředí.
# 3) Přidejte všechny relevantní, nezbytné závislosti, doplňky týkající se REST-ASSURED, TESTNG, REPORTNG do pom.xml.
Zde je ukázka 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) Přidejte požadované sklenice do cesty sestavení projektů Maven.
Za normálních okolností se jedná o soubor knihovny, který spadá pod REST zajištěnou nádobu, TESTNG, REPORTNG. I když jsme přidali závislost, plugin přes soubor pom.xml, ale přesto někdy dojde k chybě, musíme přidat tyto sklenice / knihovny, abychom vytvořili cestu projektu maven, abychom zabránili chybám (pokud existují).
Když však vytváříme projekty Java namísto projektů Maven, v takovém případě musíme mít tyto sklenice, knihovny po ruce a podle potřeby je používat.
# 5) Nainstalujte JENKINS (ve Windows)
Stáhněte si Jenkins ze stránky jenkins.io/download/.
Dále otevřete nastavení a postupujte podle pokynů, dokud nebude správně nainstalován.
Po instalaci musíme spustit JENKINS, to samé můžeme udělat z příkazového řádku.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Jakmile se zobrazí výše uvedená zpráva, musíme počkat ještě nějakou dobu, než se zobrazí následující zpráva.
Jak vidíme poslední zprávu na výše uvedené obrazovce, kde je Jenkins plně funkční, můžeme nyní Jenkins spustit pomocí následující adresy URL.
http: // localhost: 9090 /
Poprvé to může nějakou dobu trvat, ale poté to bude rychlejší. Poté musíme vytvořit uživatele.
Jakmile je uživatel vytvořen, musíme znovu spustit Jenkinse a přistupovat k uživatelskému rozhraní pomocí hesla.
Jakmile je Jenkin nainstalován, můžeme nainstalovat pluginy přes Manage Jenkins> Global Tool Configuration (i během instalace Jenkin).
Vytváření automatizačního skriptu
# 6) Můžeme vytvořit novou JAVA CLASS a převést ji na TESNG nebo přímo vytvořte TESTOVACÍ TŘÍDU následovanou vytvořením nového souboru XML (testng.xml).
Pro zjednodušení jsou vytvořeny dvě třídy Java
# 1) Tutorial1.java - Tento soubor obsahuje použití všech metod, jako je GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT pomocí fiktivní testovací adresy URL https: jsonplaceholder.typicode.com.
I když se adresa URL chová jako původní adresa URL tím, že takové odpovědi poskytuje, ale ve skutečnosti přes server nedochází k žádným změnám. Je to pouze k prokázání vlastností webových služeb a reakce, když obdrží jakýkoli požadavek od klienta.
# 2) Tutorial2.java - Tento soubor obsahuje příklad GitHubu v reálném čase, kde budeme číst komentář přidaný do podstaty.
Poznámka : GitHub vyžaduje autentizaci, proto musíme po přihlášení na GitHub vygenerovat token API nebo základní autorizaci - nastavení, jinak můžeme vygenerovat autorizační token od samotného POSTMANA
TESNG.XML
Zde je soubor XML, který provede obě Tutorial1.java a Tutorial2.java
Pro demonstrační účely jsem vyloučil spuštění všech metod a umožnil provedení pouze jedné metody GET z Tutorial1.java. Pokud si však přejeme vidět všechny provedené metody, musíme je nahradit souborem TestNG XML. V našem případě je název souboru TestNG testng1.xml.
Nyní, pokud provedeme výše uvedené soubor testng1.xml přes Eclipse pak dostaneme následující výstup konzoly.
(TestNGContentHandler) (UPOZORNĚNÍ) Důrazně doporučujeme přidat „“ do horní části souboru, jinak může TestNG selhat nebo nebude fungovat podle očekávání.
(TestNG) Spuštěno:
D: RestAssured restapi testng1.xml
*** ZÍSKEJTE ZPŮSOB ***
Userid - (1) až - (3) Název - (pokud je obtížné, aby cvičení bylo bolestivé, nebo) tělo - (a správně, ale zákon
A všechny volby nebo k potěšení slepých jsou
nebo odsuzovat jakýkoli výsledný zármutek a potěšení
a je ochoten a z dřiny odporného nebo nepohodlí; a)
*** ZKONČTE METODU ***
—————————————————–
Výukové programy REST API
Celkový počet testů: 1, selhání: 0, přeskočení: 0
—————————————————-
Zde je výsledek testu sady.
Tady je výchozí zpráva generovaná TestNG.
Zde je přehled generovaný ReportNG.
Vzhledem k tomu, že jsme již nakonfigurovali ReportNG, můžeme tedy očekávat jasný pohled na celkový počet předaných, neúspěšných počítání, jak je uvedeno výše.
Spouštění testovacích skriptů pomocí příkazového řádku
- Musíme spustit příkazový řádek
- Nastavte pracovní adresář jako umístění pracovního prostoru
- Najděte umístění koše / cíle
- Najít / vytvořit umístění knihovny
- Nejprve potřebujeme sadu, adresář, kde projekt existuje. V mém případě je to D: RestAssured restapi
- Java - klíčové slovo
- str - Je to classpath, znamená cestu, ve které v projektu existuje třída Java
- cílová - Je to stejné jako složka bin, když pracujeme na projektu Java. Protože pracujeme na projektu Maven, budeme mít tuto složku. V této složce můžeme mít další dvě složky: třídy, testovací třídy. Skutečná třída Java musí existovat mezi těmito dvěma složkami
- Lib - Tato složka bude obsahovat všechny sklenice, které jsme použili při provádění testovacího skriptu z Eclipse. V některých případech nemusí být složka přítomna. Možná proto budeme muset vytvořit složku a ponechat v ní všechny sklenice, spustitelné soubory atd.
- org.testng.TestNG testng1.xml - Je to jako syntax. Poslední část je testng1.xml je soubor prostředků TestNG, který bude volán k provedení požadovaných testovacích skriptů
Celý příkaz bude
java -cp cíl / testovací třídy; cíl / třídy; lib / * org.testng.TestNG testng1.xml
Poté stiskněte klávesu Enter
Poznámka: Během práce na projektu Java můžeme vidět složku bin. Pokud však pracujeme v projektu Maven, budeme mít cílovou složku a normální třídy, pod ní bude složka testovacích tříd.
Vytváření souborů BAT a provádění testovacích skriptů
Namísto otevření příkazového řádku a spuštění výše uvedeného příkazu k provedení testovacího skriptu můžeme příkaz ponechat v textovém souboru a při ukládání mu dá název jako,
„Run.bat“ (nezapomeňte zachovat „“ kolem run.bat)
Takto to vypadá, jakmile je vytvořeno.
Nyní poklepejte na „spustit“
Otevře se příkazový řádek, který provede testovací skript a po dokončení spuštění se příkazový řádek zavře.
Integrace JENKINS s Maven, Java
Musíme provést 4-5 konfigurací v Jenkins, abychom jej integrovali s Maven, Java a provedli to samé.
Jakmile se přihlásíme k Jenkinsovi,
Přejít na správce Jenkins >> Globální konfigurace nástroje
nastavit instalační cestu JDK
Poznámka : Ujistěte se, že Jenkinova verze podporuje verzi JDK / Java. Jenkins verze 2.73 vyžaduje alespoň JDK / JAVA verze 1.8, jinak bude při provádění testovacích skriptů vytvářet problémy.
Nastavte instalační cestu Maven
Poté Goto Manager Jenkins >> Konfigurace systémů
Nastavit cestu proměnné prostředí
Další, Vytvořte novou položku
Musíme kliknout na vytvořit nový odkaz, zadat název u úlohy vyberte typ projektu jako Volný styl . Od této chvíle se nemusíte starat o jiné věci.
Jakmile je úloha vytvořena, bude vypadat takto.
Nyní klikněte na úlohu
Postupujte podle následujících kroků:
- Klikněte na odkaz pro konfiguraci na levém panelu.
- Přejděte dolů na kartu Obecné a klikněte na tlačítko Upřesnit.
- Zaškrtněte políčko vlastní pracovní prostor a zadejte umístění složky projektu.
Potom
- Posuňte se dolů k položce Build Triggers
- Zaškrtněte políčko Sestavovat pravidelně
- Nastavte nějaký čas, jak je uvedeno níže
Přejděte dolů a nastavte název sestavení. V našem případě se jedná o spustitelný dávkový příkaz systému Windows.
Je ve stejném umístění, kde jsme dříve udržovali soubor run.bat, což je složka D: RestAssured restapi
Uložte všechny dosud provedené změny.
Nyní počkejte, až se spustí úloha cron. Vidíme, že je zahájeno sestavení.
Jakmile je sestavení úspěšně provedeno, musíme kliknout na sestavení # 20, jak je uvedeno na obrázku výše.
Klikněte na Výstup konzoly odkaz v levém panelu.
Nyní bychom měli vidět následující výstup.
Závěr
REST ASSURED je velmi užitečná knihovna JAVA pro automatizaci rozhraní REST API bez ohledu na jazyk. Má mnoho vestavěných možností. Také má mnoho verzí se zajímavými funkcemi, v nichž jsou zahrnuty možnosti. Podporuje mnoho formátů jako požadavky, jako je XML, JSON atd.
V tomto kurzu jsme vysvětlili, jak automatizovat požadavky API pomocí RESTAssured při provádění testovacích skriptů pomocí Jenkins. Vysvětlili jsme také, proč je Rest Assured lepší volbou pro automatizaci požadavků API.
Doufáme, že se vám líbilo čtení této série výukových programů rozhraní API!
Doporučené čtení
- Testování REST API s okurkou pomocí přístupu BDD
- 10 nejlepších nástrojů pro testování API v roce 2021 (nástroje pro testování API SOAP a REST)
- Testování REST API s Spring RestTemplate a TestNG
- Práce s požadavky HTTP v JMeteru
- Výukový program POSTMAN: Testování API pomocí POSTMANU
- Top 20 nejdůležitějších API testů Interview Otázky a odpovědi
- Top 10 nejlepších nástrojů pro správu API s porovnáním funkcí
- Top 36 dotazů na rozhovor s Jenkinsem (pro rok 2021)