如何遍历Json对象的内容

问题描述 投票:0回答:1

在Jmeter中的JSR223断言中,我只需要验证返回的JSON的内部部分。

我按照这个帖子来了解验证。 ​How can I write JSON schema validation for JMeter run in TeamCity

基本上我的Jmeter采样器返回json如下。在我的架构上,验证应该是items,service和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()))
jmeter json-schema-validator
1个回答
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')

enter image description here

完成后,您可以对新内容使用JSON模式验证方法,而不使用您不需要的元素。

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.