Size: a a a

QA — Load & Performance

2020 July 20

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
👻👻👻
источник

N

Nikita in QA — Load & Performance
Всем привет!

Дано(jmeter):

1. Запрос, который возвращает json вида

{
"param_1":
{
"param_1_1":
[{
"param_1_1_1":"value_1_1_1"
}],
"param_1_2":"value_1_2"
},
{
"param_2_1":
[{
"param_2_1_1":"value_2_1_1"
}],
"param_2_2":"value_2_2"
}
}

(*json очень огромный возвращается, привёл его урезанный пример)

Задача такая, вытянуть значения  "value_1_2" и "value_2_2", зная значения потомков "value_1_1_1", "value_2_1_1"

Пробовал применить json extractor, но в его регулярку можно запихнуть одну строку, использовав при этом либо "value_1_1_1" либо "value_2_1_1", и результат его работы запихнуть в переменную; притом знаю, что json extractor умеет работать только с ответом от запроса

В связи с этим вопрос, что можно применить? какой нибудь dummy-запрос, куда запихать ещё и post processor какой нибудь beanshell, для применения математики? тогда как лучше ответ от запроса "тягать" по скрипту и использовать когда надо?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Nikita
Всем привет!

Дано(jmeter):

1. Запрос, который возвращает json вида

{
"param_1":
{
"param_1_1":
[{
"param_1_1_1":"value_1_1_1"
}],
"param_1_2":"value_1_2"
},
{
"param_2_1":
[{
"param_2_1_1":"value_2_1_1"
}],
"param_2_2":"value_2_2"
}
}

(*json очень огромный возвращается, привёл его урезанный пример)

Задача такая, вытянуть значения  "value_1_2" и "value_2_2", зная значения потомков "value_1_1_1", "value_2_1_1"

Пробовал применить json extractor, но в его регулярку можно запихнуть одну строку, использовав при этом либо "value_1_1_1" либо "value_2_1_1", и результат его работы запихнуть в переменную; притом знаю, что json extractor умеет работать только с ответом от запроса

В связи с этим вопрос, что можно применить? какой нибудь dummy-запрос, куда запихать ещё и post processor какой нибудь beanshell, для применения математики? тогда как лучше ответ от запроса "тягать" по скрипту и использовать когда надо?
Простой вариант использовать Boundary Extractor:

left: "param_1_1_1":"value_1_1_1"

right: },{"param_2_1"

Результат поместить в переменную temp_value_1_2

К которой применить регулярное выражение или снова Boundary
источник

N

Nikita in QA — Load & Performance
Вячеслав Смирнов
Простой вариант использовать Boundary Extractor:

left: "param_1_1_1":"value_1_1_1"

right: },{"param_2_1"

Результат поместить в переменную temp_value_1_2

К которой применить регулярное выражение или снова Boundary
а снова boundary применить - это как миниму цикл нужен, а запихивать в цикл нужный мне запрос это слишком затратно по ресурсам, или я не так понял?
источник

KY

Kirill Yurkov in QA — Load & Performance
Nikita
Всем привет!

Дано(jmeter):

1. Запрос, который возвращает json вида

{
"param_1":
{
"param_1_1":
[{
"param_1_1_1":"value_1_1_1"
}],
"param_1_2":"value_1_2"
},
{
"param_2_1":
[{
"param_2_1_1":"value_2_1_1"
}],
"param_2_2":"value_2_2"
}
}

(*json очень огромный возвращается, привёл его урезанный пример)

Задача такая, вытянуть значения  "value_1_2" и "value_2_2", зная значения потомков "value_1_1_1", "value_2_1_1"

Пробовал применить json extractor, но в его регулярку можно запихнуть одну строку, использовав при этом либо "value_1_1_1" либо "value_2_1_1", и результат его работы запихнуть в переменную; притом знаю, что json extractor умеет работать только с ответом от запроса

В связи с этим вопрос, что можно применить? какой нибудь dummy-запрос, куда запихать ещё и post processor какой нибудь beanshell, для применения математики? тогда как лучше ответ от запроса "тягать" по скрипту и использовать когда надо?
можно регуляркой думаю, но не совсем понял формат
источник

KY

Kirill Yurkov in QA — Load & Performance
с отступами было бы понятнее
источник

N

Nikita in QA — Load & Performance
Kirill Yurkov
с отступами было бы понятнее
на мобилке отступы не пишутся)
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Nikita
а снова boundary применить - это как миниму цикл нужен, а запихивать в цикл нужный мне запрос это слишком затратно по ресурсам, или я не так понял?
Нет. Если написать друг за другом два экстрактора, то второй может извлекать данные из результатов предыдущих
источник

KY

Kirill Yurkov in QA — Load & Performance
регуляркой можно в духе ^.+?:"(.+?)"$.+?:"(value_1_1_1|value_2_1_1)
источник

KY

Kirill Yurkov in QA — Load & Performance
сейчас проверю
источник

KY

Kirill Yurkov in QA — Load & Performance
а наоборот надо
источник

KY

Kirill Yurkov in QA — Load & Performance
секунду
источник

KY

Kirill Yurkov in QA — Load & Performance
источник

KY

Kirill Yurkov in QA — Load & Performance
^.+?:"(value_1_1_1|value_2_1_1)"$\n.+?\n.+?:"(.+?)"
источник

KY

Kirill Yurkov in QA — Load & Performance
нужно правильно указать в jmeter группу, а потом просто в Match указать -1
источник

KY

Kirill Yurkov in QA — Load & Performance
тогда он создат переменные на все совпадения
источник

KY

Kirill Yurkov in QA — Load & Performance
и будет у тебя куча переменных с нужными значениями
источник

KY

Kirill Yurkov in QA — Load & Performance
могу допилить регулярку на более реальных значениях
источник

KY

Kirill Yurkov in QA — Load & Performance
так можно сделать без цикла
источник

N

Nikita in QA — Load & Performance
видимо целиком надо было json приводить)

там выходит так, что есть "value_x_x_x", "value_y_y_y", "value_z_z_z" и т.д большe 100 штук и есть  "value_x_x", "value_y_y", "value_z_z" - около 50

и вот и получается, что есть:
- "value_x_x_x" может относится ко всему "value_x_x", "value_y_y", "value_z_z"
- "value_z_z_z" может относится только к  "value_y_y", "value_z_z"
- "value_y_y" может относится только к "value_y_y"

по сути мне нужно знать пару,
что "value_x_x_x" относится к "value_x_x", что "value_x_x_x" относится к "value_z_z" и т.д.

вопрос - я смогу с помощью одной регулярки всё это вытянуть?
источник