Как перебрать содержимое объекта Json - PullRequest
0 голосов
/ 21 февраля 2019

В утверждении JSR223 в Jmeter мне нужно проверить только внутреннюю часть возвращенного JSON.

Я проследил за этим потоком, чтобы получить представление о проверке. Как написать валидацию JSON-схемы для запуска JMeter в 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()))

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете удалить «нежелательную» часть ответа, используя 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 Schema для нового контента без элементов, которые вам не нужны.

Ссылки:

...