Headers, cookies en parameters met REST-verzekerd

1. Overzicht

In deze korte zelfstudie verkennen we enkele door REST verzekerde geavanceerde scenario's. We hebben REST-assured eerder onderzocht in de tutorial a Guide to REST-assured.

Doorgaan, we zullen voorbeelden behandelen die laten zien hoe kopteksten, cookies en parameters voor onze verzoeken kunnen worden ingesteld.

De opzet is hetzelfde als in het vorige artikel, dus laten we in onze voorbeelden duiken.

2. Parameters instellen

Laten we nu bespreken hoe we verschillende parameters voor ons verzoek kunnen specificeren - te beginnen met padparameters.

2.1. Padparameters

We kunnen gebruiken pathParam (parameternaam, waarde) om een ​​padparameter op te geven:

@Test openbare leegte whenUsePathParam_thenOK () {gegeven (). PathParam ("gebruiker", "eugenp") .when (). Get ("/ gebruikers / {gebruiker} / repos") .then (). StatusCode (200); }

Om meerdere padparameters toe te voegen, gebruiken we de pathParams () methode:

@Test openbare leegte whenUseMultiplePathParam_thenOK () {gegeven (). PathParams ("owner", "eugenp", "repo", "tutorials") .when (). Get ("/ repos / {owner} / {repo}") .then (). statusCode (200); gegeven (). pathParams ("eigenaar", "eugenp") .when (). get ("/ repos / {eigenaar} / {repo}", "tutorials") .then (). statusCode (200); }

In dit voorbeeld hebben we benoemde padparameters gebruikt, maar we kunnen ook naamloze parameters toevoegen en zelfs de twee combineren:

gegeven (). pathParams ("eigenaar", "eugenp") .when (). get ("/ repos / {eigenaar} / {repo}", "tutorials") .then (). statusCode (200);

De resulterende URL is in dit geval //api.github.com/repos/eugenp/tutorials.

Merk op dat de naamloze parameters gebaseerd zijn op een index.

2.2. Queryparameters

Laten we vervolgens kijken hoe we queryparameters kunnen specificeren met queryParam ():

@Test openbare leegte whenUseQueryParam_thenOK () {gegeven (). QueryParam ("q", "john"). When (). Get ("/ zoeken / gebruikers") .then (). StatusCode (200); gegeven (). param ("q", "john"). when (). get ("/ search / users") .then (). statusCode (200); }

De param () methode zal werken als queryParam () met GET-verzoeken.

Om meerdere queryparameters toe te voegen, kunnen we er meerdere aan elkaar koppelen queryParam () methoden, of voeg de parameters toe aan een queryParams () methode:

@Test openbare ongeldig whenUseMultipleQueryParam_thenOK () {int perPage = 20; gegeven (). queryParam ("q", "john"). queryParam ("per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size () ", is (perPage)); gegeven (). queryParams ("q", "john", "per_page", perPage) .when (). get ("/ search / users") .then (). body ("items.size ()", is (per pagina)); }

2.3. Formulierparameters

Ten slotte kunnen we formulierparameters specificeren met formParam ():

@Test openbare leegte whenUseFormParam_thenSuccess () {gegeven (). FormParams ("gebruikersnaam", "john", "wachtwoord", "1234"). Post ("/"); gegeven (). params ("gebruikersnaam", "john", "wachtwoord", "1234"). post ("/"); }

De param () methode zal leven handelen formParam () voor POST-verzoeken.

Merk ook op dat formParam () voegt een Inhoudstype koptekst met de waarde 'application / x-www-form-urlencoded“.

3. Kopteksten instellen

De volgende, we kunnen onze verzoekheaders aanpassen met koptekst ():

@Test openbare ongeldigheid whenUseCustomHeader_thenOK () {gegeven (). Header ("User-Agent", "MyAppName"). When (). Get ("/ users / eugenp") .then (). StatusCode (200); }

In dit voorbeeld hebben we gebruikt koptekst () om de User-Agent koptekst.

We kunnen ook een koptekst met meerdere waarden toevoegen met dezelfde methode:

@Test public void whenUseMultipleHeaderValues_thenOK () {gegeven (). Header ("My-Header", "val1", "val2") .when (). Get ("/ users / eugenp") .then (). StatusCode (200 ); }

In dit voorbeeld hebben we een verzoek met twee kopteksten: My-Header: val1 en My-Header: val2.

Voor het toevoegen van meerdere kopteksten gebruiken we de headers () methode:

@Test public void whenUseMultipleHeaders_thenOK () {gegeven (). Header ("User-Agent", "MyAppName", "Accept-Charset", "utf-8") .when (). Get ("/ users / eugenp") .then (). statusCode (200); }

4. Cookies toevoegen

We kunnen ook een aangepaste cookie op ons verzoek specificeren met behulp van koekje():

@Test openbare ongeldigheid whenUseCookie_thenOK () {gegeven (). Cookie ("session_id", "1234"). When (). Get ("/ gebruikers / eugenp") .then (). StatusCode (200); }

We kunnen onze cookie ook aanpassen met behulp van cookies Bouwer:

@Test public void whenUseCookieBuilder_thenOK () {Cookie myCookie = nieuwe Cookie.Builder ("session_id", "1234") .setSecured (true) .setComment ("session id cookie") .build (); gegeven (). cookie (myCookie) .when (). get ("/ gebruikers / eugenp") .then (). statusCode (200); }

5. Conclusie

In dit artikel hebben we laten zien hoe we verzoekparameters, headers en cookies kunnen specificeren bij gebruik van REST-assured.

En, zoals altijd, is de volledige broncode voor de voorbeelden beschikbaar op GitHub.