#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
означает предыдущий результат выборки
Дополнительная информация: