how automate api requests using rest assured
V tomto výučbe sa naučíme automatizovať požiadavky API pomocou REST Assured pri vykonávaní testovacích skriptov nad Jenkinsom:
V 2. tutoriáli zo série REST API Tutorial Series sme sa naučili rôzne typy kódov odpovedí, požiadavky REST, osvedčené postupy REST a testovanie API pomocou programu POSTMAN.
ODDYCH webové služby sa stávajú populárnymi každý deň kvôli ľahkému vývoju, implementácii, prístupu a následnému vykonávaniu. Navyše sú ľahké a nepodliehajú nijakým prísnym normám, ktoré treba dodržiavať.
Ak však existuje väčší počet služieb, ktoré je potrebné vykonať v každom novom zostavení, stane sa pre testera a náklady na projekt nočnou morou. Niektoré služby sú opäť interné, ktoré súvisia so samotným projektom, a niektoré sú postavené tak, aby ich spotrebovali tretie strany.
Myšlienka automatizácie teda prišla. Existuje niekoľko nástrojov na automatizáciu služieb REST, napríklad
- vRest
- HttpMaster
- Parasoft
- Upokojený
RestAssured je obľúbený automatizačný nástroj medzi testermi. Pozrime sa, prečo je to preferovaná možnosť.
Čo sa dozviete:
Prečo RESTAssured?
- Je to open-source, a preto ho môže ktorákoľvek organizácia použiť pre svoje projektové potreby.
- REST Assured je knižnica Java, takže neprichádza ako grafické používateľské rozhranie ako iné nástroje. Jedná sa o rámec na testovanie služieb REST v Jave.
- Poskytuje jazyk špecifický pre doménu (DSL) na vytvorenie automatizačného skriptu, používa ľubovoľný materinský jazyk, napríklad Java, a testuje webové rozhranie RESTful Web API.
- Podporuje formát XML a JSON pre žiadosť, odpovede.
- Funguje ako bezhlavý klient.
- Pomocou tejto knižnice môžeme prispôsobiť požiadavku, ktorú pošleme na server.
- Môže tiež vyskúšať rozmanitú kombináciu zložitej obchodnej logiky.
- Je schopný načítať stavový kód, odpovede, telo odpovede, hlavičky zo servera pre odoslanú požiadavku.
- Umožňuje BDD štýl písania testovacieho skriptu, tj. Vo formáte GIVEN-WHEN-THEN, takže ktorýkoľvek člen obchodného tímu, najmä z prostredia iného ako IT, si ho tiež môže pozrieť a porozumieť logike a pokrytiu testu.
V tomto tutoriáli budeme automatizovať požiadavky, ktoré sme manuálne vytvorili skôr v prvom tutoriále REST API prostredníctvom POSTMANA a budeme tiež diskutovať o komerčnom nástroji s názvom GITHUB.
Automatizácia požiadaviek webového API pomocou REST Assured
V tomto tutoriáli budeme robiť automatizáciu typu end-to-end, t. J. Vytvoríme triedu Java a vykonáme ju z Jenkins.
Predpoklady:
- Zamýšľaní príjemcovia musia mať pracovné znalosti aplikácií Eclipse IDE, Maven, TestNG, ReportNG.
- Príjemcovia by si mali byť vedomí aj Jenkinsa.
- Ak pristupujeme k službám nasadeným na webe, je potrebné pripojenie na internet. V prípade, že pristupujeme k službám nasadeným lokálne, v takom prípade sa uistite, že má tester právo.
- Ak automatizujeme akékoľvek komerčné, zabezpečené stránky, v takom prípade skontrolujte, či autorizačný token, tokeny API, kľúče API atď. Fungujú správne a poskytujú sa testerovi, ktorý skript v súčasnosti automatizuje.
Testuje sa adresa URL
- http://jsonplaceholder.typicode.com je v prevádzke
- Používateľ má platné poverenie GitHub
Nastavenia prostredia
# 1) Nainštalujte Eclipse IDE
ako odstrániť prvok poľa v jave -
Najskôr si musíme stiahnuť Eclipse IDE z oficiálnej webovej stránky systému Zatmenie.
Potom nainštalujte IDE. Nastavte cestu, environmentálnu premennú JAVA_HOME správne. Uchovajte cestu JDK, JRE pre ďalšie použitie. Po nainštalovaní aplikácie Eclipse vytvorte / nastavte pracovný priestor a otvorte ho.
V mojom prípade to je:
#dva) Vytvorte projekt Maven
Uistite sa, že ste nakonfigurovali domovský server Maven cez premenné prostredia.
# 3) Pridajte všetky relevantné, potrebné závislosti, doplnky týkajúce sa REST-ASSURED, TESTNG, REPORTNG do pom.xml.
Tu je ukážka 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) Pridajte požadované poháre do cesty zostavenia projektov Maven.
Za normálnych okolností sa jedná o knižničný súbor, ktorý spadá pod nádobu so zárukou REST, TESTNG, REPORTNG. Aj keď sme pridali závislosť, doplnok cez súbor pom.xml, ale niekedy niekedy dôjde k chybe, musíme pridať tieto poháre / knižnice, aby sme vytvorili cestu projektu maven, aby sa zabránilo chybám (ak existujú).
Keď však namiesto projektov Maven vytvárame projekty Java, v takom prípade musíme mať tieto poháre, knižnice vždy po ruke a podľa potreby ich používať.
# 5) Nainštalujte JENKINS (v systéme Windows)
Stiahnite si Jenkins zo stránky jenkins.io/download/.
Ďalej otvorte nastavenie a postupujte podľa pokynov, až kým nebude správne nainštalovaný.
Po nainštalovaní musíme spustiť program JENKINS, čo môžeme urobiť aj z príkazového riadku.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Akonáhle sa zobrazí vyššie uvedená správa, musíme si počkať ešte nejaký čas, kým sa zobrazí nasledujúca správa.
Ako vidíme poslednú správu na vyššie uvedenej obrazovke, kde je Jenkins plne funkčný, môžeme teraz spustiť Jenkins pomocou nasledujúcej adresy URL.
http: // localhost: 9090 /
Prvýkrát to môže chvíľu trvať, ale potom to bude rýchlejšie. Potom musíme vytvoriť používateľa.
Po vytvorení používateľa musíme znova spustiť Jenkins a získať prístup k používateľskému rozhraniu pomocou hesla.
Akonáhle je Jenkin nainštalovaný, môžeme si nainštalovať doplnky cez Manage Jenkins> Global Tool Configuration (aj počas Jenkinovej inštalácie).
Vytváranie automatizačného skriptu
# 6) Môžeme vytvoriť novú JAVA TRIEDU a previesť ju na TESNG alebo priamo vytvorte TESTOVACU TRIEDU nasledovanú vytvorením nového súboru XML (testng.xml).
Pre jednoduchosť sú vytvorené dve triedy Java
# 1) Tutorial1.java - Tento súbor obsahuje použitie všetkých metód, ako napríklad GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT pomocou atrapy testovacej adresy URL https: jsonplaceholder.typicode.com.
Aj keď sa adresa URL chová ako pôvodná adresa URL, dáva takéto odpovede späť, ale v skutočnosti je serverom vykonaná žiadna zmena. Je to iba na demonštráciu vlastností a reakcií webových služieb, keď dostanú od klienta akúkoľvek požiadavku.
# 2) Tutorial2.java - Tento súbor obsahuje príklad GitHubu v reálnom čase, kde budeme čítať komentár pridaný do podstaty.
Poznámka : GitHub vyžaduje autentizáciu, a preto musíme po prihlásení do GitHubu vygenerovať token API alebo základnú autorizáciu - nastavenia, inak môžeme vygenerovať autorizačný token od samotného POSTMANA
TESNG.XML
Tu je súbor XML, ktorý vykoná obe Tutorial1.java a Tutorial2.java
Na demonštračné účely som vylúčil spustenie všetkých metód a umožnil vykonanie iba jednej metódy GET súboru Tutorial1.java. Ak však chceme vidieť všetky vykonané metódy, musíme ich nahradiť viac ako súborom TestNG XML. V našom prípade je názov súboru TestNG testng1.xml.
Teraz, ak vykonáme vyššie uvedené súbor testng1.xml cez Eclipse potom dostaneme nasledujúce výstup na konzolu.
(TestNGContentHandler) (UPOZORNENIE) Dôrazne sa odporúča pridať „“ do hornej časti súboru, inak môže TestNG zlyhať alebo nebude fungovať podľa očakávaní.
(TestNG) Beží:
D: RestAssured restapi testng1.xml
*** ZÍSKAJTE SPÔSOB ***
Userid - (1) až - (3) Názov - (ak je problematické, že cvičenie je bolestivé, alebo) telo - (a správne, ale zákon
A všetko je zvolenie alebo pre potešenie nevidiacich
alebo odsúdiť akýkoľvek výsledný smútok a potešenie
a je ochotný / á sa venovať namáhavému alebo nepríjemnému pocitu a)
*** ZÍSKAJTE METÓDU ***
————————————————–
Výukové programy REST API
Celkový počet spustených testov: 1, zlyhaní: 0, preskočení: 0
————————————————-
Tu je výsledok testu sady.
Tu je predvolený prehľad vygenerovaný serverom TestNG.
Tu je prehľad vygenerovaný ReportNG.
Pretože sme už nakonfigurovali ReportNG, môžeme teda očakávať jasný prehľad o celkovom počte odovzdaných a neúspešných, ako je uvedené vyššie.
Vykonávanie testovacích skriptov pomocou príkazového riadku
- Musíme spustiť príkazový riadok
- Nastavte pracovný adresár ako umiestnenie pracovného priestoru
- Nájdite umiestnenie koša / cieľa
- Nájsť / vytvoriť umiestnenie knižnice
- Najprv potrebujeme množinu, adresár, kde projekt existuje. V mojom prípade je to D: RestAssured restapi
- Kľúčové slovo Java
- cp - Je to cesta triedy, znamená cestu, v ktorej v projekte existuje trieda Java
- Cieľ - Je to rovnaké ako priečinok bin, keď pracujeme na projekte Java. Pretože pracujeme na projekte Maven, budeme mať tento priečinok. V tomto priečinku môžeme mať ďalšie dva priečinky: triedy, testovacie triedy. Medzi týmito dvoma zložkami musí existovať skutočná trieda Java
- Lib - Tento priečinok bude obsahovať všetky poháre, ktoré sme použili pri vykonávaní testovacieho skriptu z Eclipse. V niektorých prípadoch nemusí byť priečinok k dispozícii. Preto možno budeme musieť vytvoriť priečinok a uchovať v ňom všetky poháre, spustiteľné súbory atď.
- org.testng.TestNG testng1.xml - Je to ako syntax. Posledná časť je testng1.xml je súbor prostriedkov TestNG, ktorý bude volaný na vykonanie požadovaných testovacích skriptov
Celý príkaz bude
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Potom stlačte kláves Enter
Poznámka: Počas práce na projekte Java môžeme vidieť priečinok bin. Ak však pracujeme na projekte Maven, budeme mať cieľový priečinok a normálne triedy, pod ním bude priečinok testovacích tried.
Vytváranie súborov BAT a vykonávanie testovacích skriptov
Namiesto otvorenia príkazového riadku a spustenia vyššie uvedeného príkazu na vykonanie testovacieho skriptu môžeme príkaz ponechať v textovom súbore a pri jeho ukladaní mu dá názov ako,
„Run.bat“ (nezabudnite zachovať „“ okolo run.bat)
Po vytvorení to vyzerá takto.
Teraz dvakrát kliknite na „spustiť“
Otvorí sa príkazový riadok, ktorý vykoná testovací skript a po dokončení vykonania sa príkazový riadok zatvorí.
nedefinovaná referenčná chyba c ++
Integrácia JENKINS do Maven, Java
Musíme urobiť 4-5 konfigurácií v Jenkins, aby sme to integrovali s Maven, Java a vykonali to isté.
Len čo sa prihlásime do Jenkinsa,
Choďte na Jenkinsa >> Globálna konfigurácia nástroja
nastaviť cestu inštalácie JDK
Poznámka : Uistite sa, že Jenkinova verzia podporuje verziu JDK / Java. Jenkins verzia 2.73 vyžaduje minimálne JDK / JAVA verzie 1.8, inak bude robiť problémy pri vykonávaní testovacích skriptov.
Nastavte cestu inštalácie Maven
Potom Goto Manager Jenkins >> Konfigurácia systémov
Nastavte cestu premennej prostredia
Ďalšie, Vytvorte novú položku
Musíme kliknúť na vytvoriť nový odkaz, určiť názov pre úlohu vyberte typ projektu ako Voľný štýl . Odteraz sa už netreba báť ďalších vecí.
Po vytvorení úlohy bude vyzerať takto.
Teraz kliknite na prácu
Postupujte podľa nasledujúcich krokov:
- Kliknite na odkaz na konfiguráciu na ľavom bočnom paneli.
- Posuňte sa nadol na kartu Všeobecné a kliknite na tlačidlo Spresniť.
- Začiarknite políčko vlastný pracovný priestor a zadajte umiestnenie priečinka projektu.
Potom
- Posuňte sa nadol viac na položku Build Triggers
- Začiarknite políčko Budovať pravidelne
- Nastavte čas, ako je uvedené nižšie
Posuňte sa nadol a nastavte názov zostavy. V našom prípade ide o spustiteľný dávkový príkaz systému Windows.
Nachádza sa na rovnakom mieste, kde sme predtým držali súbor run.bat, čo je priečinok D: RestAssured restapi
Uložte všetky doteraz vykonané zmeny.
Teraz počkajte, kým sa spustí úloha cron. Vidíme, že je zahájené zostavenie.
Po úspešnom vykonaní zostavy musíme kliknúť na zostavu č. 20, ako je uvedené na obrázku vyššie.
Klikni na Výstup konzoly odkaz v ľavom paneli.
Teraz by sme mali vidieť nasledujúci výstup.
Záver
REST ASSURED je veľmi užitočná knižnica JAVA na automatizáciu rozhraní REST API bez ohľadu na jazyk. Má veľa zabudovaných možností. Tiež má veľa verzií so zaujímavými funkciami, ktoré sú v nej obsiahnuté. Podporuje mnoho formátov ako Požiadavky, napríklad XML, JSON atď.
V tomto tutoriáli sme vysvetlili, ako automatizovať požiadavky API pomocou RESTAssured pri vykonávaní testovacích skriptov pomocou Jenkinsa. Vysvetlili sme tiež, prečo je program Rest Assured lepšou voľbou na automatizáciu požiadaviek API.
Dúfame, že sa vám páčilo čítanie tejto série Výučby rozhrania Rest API!
Odporúčané čítanie
- Testovanie REST API s uhorkou pomocou prístupu BDD
- 10 najlepších nástrojov na testovanie API v roku 2021 (nástroje na testovanie SOAP a REST API)
- Testovanie REST API s pružinou RestTemplate a TestNG
- Práca s požiadavkami HTTP v JMeter
- Výukový program POSTMAN: Testovanie API pomocou programu POSTMAN
- Top 20 najdôležitejších API testovacích otázok a odpovedí na pohovory
- Top 10 najlepších nástrojov na správu API s porovnaním funkcií
- Najvyšších 36 otázok o rozhovore s Jenkinsom (pre rok 2021)