Reusing parts of requests or responses
Use case
You are testing the CRUD (Create, Read, Update, Delete) operations for your resource /planets.
You want to create a planet by posting on your /planets, then you want to verify that your planet was created and is available.
You can create:
- A scenario Creation scenario in project Star wars API with a request Create planet that posts the new planet.
- A second request Verify planet existence that will retrieve the new planet's ID from the response of the first request to get the created planet on /planets/{planetId}.
If the response of your first request is:
{
"id": "9e5d2284-94ad-11e7-bbbc-773611cab8f7",
"name": "Tatooine",
"rotation_period": "23",
"orbital_period": "304",
"diameter": "10465",
"climate": "arid",
"gravity": "1 standard",
"terrain": "desert",
"population": "200000",
}
Then you can test that your planet was created by creating a GET on https://my-star-wars-api.com/planets/${"Star wars API"."Creation scenario"."Create planet"."response"."body"."id"} and asserting the response code is 200, for example.
Usable elements
Requests are structured as follows:
{
{request name}: {string},
"request": {
"method" : {string},
"uri" : {string},
"headers" : {
{header name} : {header value}
},
"query" : {
{query parameter name} : {query parameter value}
},
"body" : {string or object}
},
"response": {
"headers" : {object},
"status" : {
"message" : {string},
"code" : {number}
}
"body" : {string or object}
}
}
The response contains a JSON object representing the HTTP response to the last call of the request.
You can query it in the same way you would query a standard JavaScript object, using a dotted notation.
This means you can reference elements of the request Get planets in project Star-wars API as follows:
- Request URI: ${"Star-wars API"."Get planets"."request"."uri"}
- Response status code: ${"Star-wars API"."Get planets"."response"."status"."code"}
- Response header Content-type value: ${"Star-wars API"."Get planets"."response"."headers"."Content-type"}
- Response body attribute id: ${"Star-wars API"."Get planets"."response"."body"."id"}