проверка ответа с использованием утверждения jsr223

#jmeter #jmeter-5.0

#jmeter #jmeter-5.0

Вопрос:

Я передал chgId в качестве параметра в запросе get HTTP. https: //*****?chgId=405

Мой ответ api приходит как —

 {
  "response": {
    "data": [
      {
        "tid": 3697,
        "chgId": 405,
        "amount": 8.5,
        "Currency": "USD",
       },
      {
        "tid": 3698,
        "chgId": 405,
        "amount": 3.33,
        "Currency": "USD",
       
      }
    ]
  }
}
  

Теперь из ответа я хочу проверить в утверждении JSR223 правильность ответа на основе поля chgId. Это означает, что в обоих массивах данных должен появиться текст «chgId»: 405.

Кто-нибудь может предложить?

Ответ №1:

Вы могли бы сделать что-то вроде:

 def params = org.apache.http.client.utils.URLEncodedUtils.parse(prev.getURL().toURI(), 'UTF-8')

def expected = params.find { 'chgId' }.value as int

def actual1 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).response.data[0].chgId
def actual2 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).response.data[1].chgId

def success = (expected == actual1 amp;amp; expected == actual2)

if (!success) {
    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage('chgId mismatch')
}
  

где prev означает предыдущий результат выборки

Дополнительная информация: