[WS] Validate JSON string against a schema
Requirements
Katalon Studio version 8.4.0 onwards.
Description
Validate a JSON response body, request body, or string against a JSON schema. The JSON schema input can be a JSON string, URL, or file path.
Keyword name: WS.validateJsonAgainstSchema
Parameters
Validate a JSON Object against a JSON Schema
Parameter | Parameter Type | Mandatory | Description |
---|---|---|---|
jsonObject | String | Required | Specify the JSON object that needs to be validated |
jsonSchema | String | Required | Specify the JSON schema used to validate the JSON object. |
flowControl | FailureHandling | Optional | Specify failure handling schema to determine whether the execution should be allowed to continue or stop. |
Validate the Response against a JSON Schema
Parameter | Parameter Type | Mandatory | Description |
---|---|---|---|
response | ResponseObject | Required | Specify the response object that needs to be validated |
jsonSchema | String | Required | Specify the JSON schema used to validate the response object. |
flowControl | FailureHandling | Optional | Specify failure handling schema to determine whether the execution should be allowed to continue or stop. |
Returns
Parameter Type | Description |
---|---|
boolean |
|
Note:
If Katalon Studio cannot find the schema file or the response doesn't pass the validation, throw:
StepFailedException
.
Example
Validate a JSON Object against a schema
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
String jsonPass =
"""
{
"\$id": "https://example.com/person.schema.json",
"\$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "The person's first name."
},
"lastName": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years which must be equal to or greater than zero.",
"type": "integer",
"minimum": 0
}
}
}
"""
String jsonObject =
"""
{
"firstName": "White",
"lastName": "Walter",
"age": 52
}
"""
boolean successful = WS.validateJsonAgainstSchema(jsonObject,jsonPass)
Validate a Response against a schema
import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webservice.verification.WSResponseManager
ResponseObject response = WSResponseManager.getInstance().getCurrentResponse()
String jsonPass =
"""
{
"\$id": "https://example.com/person.schema.json",
"\$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "The person's first name."
},
"lastName": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years which must be equal to or greater than zero.",
"type": "integer",
"minimum": 0
}
}
}
"""
boolean successful = WS.validateJsonAgainstSchema(response,jsonPass)