关于Jmeter中的JSR223断言,我只需要验证返回的JSON的内部。
我按照此主题进行了验证。 How can I write JSON schema validation for JMeter run in TeamCity
基本上,我的Jmeter采样器返回json,如下所示。在我的架构上,验证应针对项,服务和requestId。不得对“有效载荷”进行验证。
{
"payload": [
{
"items": [
{
"code": "487482378",
"description": "Alpha Co",
"valid": true
},
{
"code": "92901128365",
"description": "Beta Co",
"valid": true
}
],
"service": "entities",
"requestId": "d190219"
}
]
}
这是我在js223采样器中的当前代码:
var schemaPath = '/path/entities-schema.json'
var rawSchema = new org.json.JSONObject(new org.json.JSONTokener(org.apache.commons.io.FileUtils.readFileToString(new java.io.File(schemaPath), 'UTF-8')))
var schema = org.everit.json.schema.loader.SchemaLoader.load(rawSchema)
schema.validate(new org.json.JSONObject(prev.getResponseDataAsString()))
答案 0 :(得分:0)
您可以使用JSR223 PostProcessor删除响应中不需要的部分:
def before = prev.getResponseDataAsString()
log.info('Before: ' + before)
def response = new groovy.json.JsonSlurper().parseText(before)
def after = new groovy.json.JsonBuilder(response.payload.items).toPrettyString()
log.info('After: ' + after)
prev.setResponseData(after, 'UTF-8')
完成后,您可以对新内容使用JSON Schema验证方法,而无需使用不需要的元素。
参考文献: