Assertions and Variable Extraction
Response Assertions
Validate that API responses match expected values. Add assertions to any step:
"responseAssertions": [
{
"type": "JSONPATH",
"expression": "$.status",
"operator": "EQUALS",
"expectedValue": "active"
}
]
Operators
| Operator | Description | Example |
|---|---|---|
EQUALS | Exact match | $.role EQUALS "admin" |
NOT_EQUALS | Not equal | $.status NOT_EQUALS "deleted" |
CONTAINS | String contains | $.message CONTAINS "success" |
EXISTS | Field exists (any value) | $.id EXISTS |
NOT_EXISTS | Field does not exist | $.error NOT_EXISTS |
GREATER_THAN | Numeric comparison | $.count GREATER_THAN "0" |
LESS_THAN | Numeric comparison | $.responseTime LESS_THAN "500" |
Multiple Assertions
Add multiple assertions to a single step — all must pass:
"responseAssertions": [
{"type": "JSONPATH", "expression": "$.id", "operator": "EXISTS", "expectedValue": ""},
{"type": "JSONPATH", "expression": "$.username", "operator": "EQUALS", "expectedValue": "john"},
{"type": "JSONPATH", "expression": "$.active", "operator": "EQUALS", "expectedValue": "true"},
{"type": "JSONPATH", "expression": "$.items.length()", "operator": "GREATER_THAN", "expectedValue": "0"}
]
Variable Extraction
Extract values from responses to use in subsequent steps:
"extractions": [
{
"variableName": "userId",
"extractionType": "JSONPATH",
"extractionExpression": "$.id",
"isRequired": true
}
]
Extraction Types
| Type | Description | Expression Example |
|---|---|---|
JSONPATH | Extract from JSON body | $.data.id, $.items[0].name |
HEADER | Extract from response header | Location, X-Request-Id |
REGEX | Extract using regex pattern | "id":(\d+) |
Using Extracted Variables
Reference variables with {{variableName}} in subsequent steps:
{
"stepOrder": 2,
"name": "Get created user",
"httpMethod": "GET",
"endpointPath": "/api/users/{{userId}}",
"requestHeaders": {
"X-Trace-Id": "{{traceId}}"
}
}
Variables work in: endpoint paths, request bodies, headers, and query parameters.
Chaining Pattern
The typical CRUD test chain:
- Create → extract
{{resourceId}} - Read → use
{{resourceId}}, assert fields match - Update → use
{{resourceId}}, send new values - Verify → use
{{resourceId}}, assert updated values - Delete → use
{{resourceId}} - Confirm → use
{{resourceId}}, expect 404