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.