Introduction
Validation (sometimes called assertion or checks) is one of the core concepts of any testing tool. When it comes to validation of your API, Testfully verifies behaviour of each step within tests independently. Moreover, we support validation for the following aspects of APIs:
- Response Code
- Response Time
- Response Body
- Response Headers
1. Response Code
This optional validator is one you should probably set for all of the steps of a test case. Using it you can set what you expect as the “HTTP Response Code”. Testfully makes sure that the actual response code is exactly what you have defined as the expected one otherwise the test fails.
The example below shows a test case with a single “Response Code” validator. Here we expect to receive the “200 OK” code in response.
2. Response Time
This optional validator is suitable for measuring the performance of your API and making sure that users get the response within the expected time frame. To configure this validator, simply provide the expected response time in milliseconds. Testfully compares the actual response time with the expected one and fails if the actual response time is greater than the expected one.
The example below shows how response time is configured for a test case to be 1200 milliseconds.
3. Response Body
This optional validator is suitable to match the response against a provided JSON object. Testfully tries to match the provided fields in “Response Body” against the actual values in response and the test fails if at least one of the defined fields in “Response Body” section is missing or has a value that does not match the provided value.
The example below shows a valid JSON object in “Response Body” field. We’re expecting that:
- Response from API comes with a field called “success” and the field MSUT have “true” as value.
- Response from API comes with a field called “workspaceId” and the field value MUST be “928031722”.
What would happen if API responds with the mentioned fields and some other fields, you might wondering? Well, Testfully simply ignores those fields and assumes those fields don’t exist at all.
A couple of things about “Response Body” you should probably know:
- The test fails as soon as one of the response body validations fail.
- Response Body only supports valid JSON data.
- Nesting is fully supported, you can even include arrays.
4. Response Headers
Response Headers validator is identical to Response Body, albeit it does the validation against the Response Headers.
The example below shows how we define “Content-Type” header field and corresponding “application/json” value as the expected header in response. This example contains only two headers but you can add as many as headers you want.
A couple of things about “Response Headers” you should probably know:
- The test fails as soon as one of the response header validations fail.
- Response Header only supports valid JSON data.
- Nesting is not supported.