#jmeter #request #response #wait
Вопрос:
Ответ json-это:
{
"status": 11111,
"data": {
"mylist":
{
"1": [
{
"id": 1,
"tId": 11
}],
"2": [
{
"id": 2,
"tId": 12
},
{
"id": 3,
"tId": 12
},
{
"id": 4,
"tId": 13,
}
]
}
поскольку серверу требуется время, чтобы показать этот ответ, мы хотим подождать, пока не увидим значения под «1» и под «2». Как я могу этого достичь?
Ответ №1:
- Добавьте 2 экстрактора JSON для хранения значений
id
атрибутов ниже1
и2
в соответствующие переменные JMeter - Поместите всю конструкцию под контроллер While и используйте следующую функцию __groovy() в качестве условия:
${__groovy((vars.get('1_matchNr') ?: 0 as int) == 0 amp;amp; (vars.get('2_matchNr') ?: 0 as int) == 0,)}
- Вот и все, JMeter будет повторять запрос до тех пор, пока не появятся результаты,
mylist
содержащие хотя бы одинid
атрибут
Комментарии:
1. это работает на тебя? Я добавил 2 экстрактора json, как упоминалось, для хранения значений атрибутов идентификаторов и добавил контроллер while для того же запроса, что я вижу, в то время как цикл вообще не выполняется.
2. это сработало после перезапуска jmeter. Спасибо!
Ответ №2:
Пробоотборник HTTP-запросов JMeter загружает все данные, чтобы отметить выполнение запроса. После загрузки вы можете добавить различные типы утверждений, такие как утверждение JSON, утверждение JSR223 или утверждение ответа, для проверки различных свойств ответа. Насколько мне известно, вы не можете получить доступ к данным во время их потоковой передачи / загрузки.