как выполнить проверку для нескольких полей в утверждении JSR223 в JMeter

#jmeter #assertion

Вопрос:

Я написал ниже сценарий в утверждении JSR223 для проверки поля. Теперь я хочу выполнить проверку для нескольких полей, таких как имя, адрес электронной почты, но я не хочу писать отдельный сценарий для каждого. Как это может быть достигнуто в том же сценарии утверждения JSR223?

деф responseJSON = новый заводной.json.JsonSlurper().разбор(prev.getResponseData())
определение фамилии = responseJSON.данные[0].фамилия

если (Фамилия != ‘Лоусон’) {
AssertionResult.setFailure(true)
AssertionResult.setFailureMessage(«Неверное значение» фамилия)
}

Ниже приведен Json:
{ «на страницу»: 6, «всего»: 12, «данные»: [ { «фамилия»: «Лоусон», «идентификатор»: 7, «аватар»: «https://reqres.in/img/faces/7-image.jpg», «имя»: «Майкл», «электронная почта»: «майкл.lawson@reqres.in» }, { «фамилия»: «Фергюсон», «идентификатор»: 8, «аватар»: «https://reqres.in/img/faces/8-image.jpg», «имя»: «Линдси», «электронная почта»: «Линдси.ferguson@reqres.in» }, { «фамилия»: «Функе», «идентификатор»: 9, «аватар»: «https://reqres.in/img/faces/9-image.jpg», «имя»: «Тобиас», «электронная почта»: «tobias.funke@reqres.in» }, { «фамилия»: «полей», «идентификатор»: 10, «аватар»: «https://reqres.in/img/faces/10-image.jpg», «имя»: «Байрон», «электронная почта»: «Байрона.fields@reqres.in» }, { «фамилия»: «Эдвардс», «идентификатор»: 11, «аватар»: «https://reqres.in/img/faces/11-image.jpg», «имя»: «Джордж», «электронная почта»: «george.edwards@reqres.in» }, { «фамилия»: «Хауэлл», «идентификатор»: 12, «аватар»: «https://reqres.in/img/faces/12-image.jpg», «имя»: «Рэйчел», «электронная почта»: «Рэйчел.howell@reqres.in» } ], «страница»: 2, «всего страниц»: 2, «поддержка»: { «текст»: «Чтобы запросы оставались бесплатными, мы ценим взносы на расходы на сервер!», «url»: «https://reqres.in/#support-heading» } }

Я также попробовал использовать приведенный ниже скрипт, но он дает мне результат только для фамилии, а не для электронной почты и фамилии:

деф responseJSON = новый заводной.json.JsonSlurper().анализа(пред.getResponseData())
деф фамилия = responseJson.данные[0].фамилия
деф электронной почты = responseJson.данные[0].напишите
, если (по электронной почте != ‘тест’) {
AssertionResult.setFailure(true), то
AssertionResult.setFailureMessage(«неверный адрес электронной почты значение» электронная почта)
}
если (поля lastName != ‘тест’) {
AssertionResult.setFailure(true), то
AssertionResult.setFailureMessage(«неправильные фамилия значениеп» «фамилия»)
}

else
{ AssertionResult.setFailure(true)
AssertionResult.setFailureMessage(«правильное значение»);
}

Ответ №1:

Если вы действительно «написали» сценарий, для вас не должно быть проблемой добавить дополнительные проверки, подобные этой, для фамилии:

 def responseJson = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def lastName = responseJson.data[0].last_name
def email = responseJson.data[0].email

if (lastName != 'Lawson') {
    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage("Incorrect value"   lastName)
}
if (email != 'michael.lawson@reqres.in') {
    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage("Incorrect value"   lastName)
}
 

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

Комментарии:

1. Спасибо, Дмитрий, я попробовал использовать несколько операторов If, но я получаю результат только для второго условия, даже если оба условия не выполнены. Не могли бы вы, пожалуйста, помочь?