Zaglavlja, kolačići i parametri uz REST-osiguranje
1. Pregled
U ovom brzom vodiču istražit ćemo neke napredne scenarije s REST-jamstvom. REST-assured prije smo istražili u vodiču Vodič za REST-assured.
Nastaviti, pokrivat ćemo primjere koji pokazuju kako postaviti zaglavlja, kolačić i parametre za naše zahtjeve.
Postavljanje je isto kao i u prethodnom članku, zato zaronimo u naše primjere.
2. Postavljanje parametara
Sada, razgovarajmo o tome kako odrediti različite parametre za naš zahtjev - počevši od parametara staze.
2.1. Parametri puta
Možemo koristiti pathParam (ime-parametra, vrijednost) da odredite parametar puta:
@Test public void whenUsePathParam_thenOK () {given (). PathParam ("user", "eugenp") .when (). Get ("/ users / {user} / repos"). Then (). StatusCode (200); }
Za dodavanje više parametara puta upotrijebit ćemo pathParams () metoda:
@Test public void whenUseMultiplePathParam_thenOK () {given (). PathParams ("owner", "eugenp", "repo", "tutorials") .when (). Get ("/ repos / {owner} / {repo}") . then (). statusCode (200); given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutorials"). then (). statusCode (200); }
U ovom smo primjeru koristili imenovane parametre puta, ali možemo dodati i neimenovane parametre, pa čak i kombinirati dva:
given (). pathParams ("owner", "eugenp") .when (). get ("/ repos / {owner} / {repo}", "tutorials"). then (). statusCode (200);
Dobiveni URL, u ovom slučaju, je //api.github.com/repos/eugenp/tutorials.
Imajte na umu da se neimenovani parametri temelje na indeksu.
2.2. Parametri upita
Dalje, da vidimo kako možemo odrediti parametre upita pomoću queryParam ():
@Test javne void whenUseQueryParam_thenOK () {given (). QueryParam ("q", "john"). When (). Get ("/ search / users"). Then (). StatusCode (200); given (). param ("q", "john"). when (). get ("/ search / users"). then (). statusCode (200); }
The param () metoda će se ponašati kao queryParam () s GET zahtjevima.
Za dodavanje višestrukih parametara upita možemo povezati nekoliko queryParam () metode ili dodajte parametre u a queryParams () metoda:
@Test public void whenUseMultipleQueryParam_thenOK () {int perPage = 20; given (). queryParam ("q", "john"). queryParam ("po_strani", po stranici) .when (). get ("/ search / users"). then (). body ("items.size () ", je (poPage)); given (). queryParams ("q", "john", "per_page", perPage) .when (). get ("/ search / users"). then (). body ("items.size ()", je (po stranici)); }
2.3. Parametri obrasca
Napokon, parametre obrasca možemo odrediti pomoću formParam ():
@Test public void whenUseFormParam_thenSuccess () {given (). FormParams ("username", "john", "password", "1234"). Post ("/"); given (). params ("korisničko ime", "john", "lozinka", "1234"). post ("/"); }
The param () metoda će djelovati život formParam () za POST zahtjeve.
Imajte na umu i to formParam () dodaje a Vrsta sadržaja zaglavlje s vrijednošću “application / x-www-form-urlencoded“.
3. Postavljanje zaglavlja
Sljedeći, možemo prilagoditi zaglavlja zahtjeva pomoću Zaglavlje():
@Test public void whenUseCustomHeader_thenOK () {given (). Header ("User-Agent", "MyAppName"). When (). Get ("/ users / eugenp"). Then (). StatusCode (200); }
U ovom smo primjeru koristili Zaglavlje() za postavljanje Korisnički agent Zaglavlje.
Također možemo dodati zaglavlje s više vrijednosti koristeći istu metodu:
@Test public void whenUseMultipleHeaderValues_thenOK () {given (). Header ("My-Header", "val1", "val2") .when (). Get ("/ users / eugenp"). Then (). StatusCode (200 ); }
U ovom ćemo primjeru imati zahtjev s dva zaglavlja: My-Header: val1 i My-Header: val2.
Za dodavanje više zaglavlja koristit ćemo zaglavlja () metoda:
@Test public void whenUseMultipleHeaders_thenOK () {given (). Header ("User-Agent", "MyAppName", "Accept-Charset", "utf-8") .when (). Get ("/ users / eugenp") . then (). statusCode (200); }
4. Dodavanje kolačića
Također možemo odrediti prilagođeni kolačić na naš zahtjev pomoću kolačić():
@Test javna void whenUseCookie_thenOK () {given (). Cookie ("session_id", "1234"). When (). Get ("/ users / eugenp"). Then (). StatusCode (200); }
Svoj kolačić također možemo prilagoditi pomoću kolačića Graditelj:
@Test public void whenUseCookieBuilder_thenOK () {Cookie myCookie = novi Cookie.Builder ("session_id", "1234") .setSecured (true) .setComment ("cookie id sesije") .build (); given (). cookie (myCookie) .when (). get ("/ users / eugenp"). then (). statusCode (200); }
5. Zaključak
U ovom smo članku pokazali kako možemo odrediti parametre zahtjeva, zaglavlja i kolačiće kada koristimo REST-assured.
Kao i uvijek, puni izvorni kod za primjere dostupan je na GitHubu.