Size: a a a

QA — Load & Performance

2020 June 04

KY

Kirill Yurkov in QA — Load & Performance
Vyacheslav Lebedenko
Всем привет!
Ребята, кто специалист по JMeter, может кто-то сможет подсказать в какую сторону копать и направить на путь истинный?

Столкнулся с такой проблемой в JMeter: при большом количестве потоков, listener Save Response to a file сохраняет не все ответы с нужных запросов.

Пример:

1) Для каждого пользователя посылаем GET запрос к api для получения списка templateId(всего их, допустим, 5) и извлекаем их в переменные JSON-экстрактором;

2) Далее, для каждого полученного templateId, для каждого пользователя циклом forEach выполняется следующий GET запрос на получение заполненного примера для этого templateId;

3) Дальше я сохраняю каждый полученный ответ для каждого templateId в директорию нужного пользователя с помощью listener Save Response to a file в .json

И вот на этом этапе сохранения, при большом количестве пользователей(обычно 20+), некоторые ответы не сохраняются(запросы на их получение двухсотые, ошибок нет, тело в ответе есть).
Как следствие, в дальнейших запросах, где ожидается использование сохранённых json'ов, часть запросов будет падать, т.к. не обнаружит каких-то из них.
проблема может быть в производительности самого плагина, в целом можно это решить путем написания скрипта в постпроцессоре который по условию будет сохранят ьв файл тело
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Vyacheslav Lebedenko
Всем привет!
Ребята, кто специалист по JMeter, может кто-то сможет подсказать в какую сторону копать и направить на путь истинный?

Столкнулся с такой проблемой в JMeter: при большом количестве потоков, listener Save Response to a file сохраняет не все ответы с нужных запросов.

Пример:

1) Для каждого пользователя посылаем GET запрос к api для получения списка templateId(всего их, допустим, 5) и извлекаем их в переменные JSON-экстрактором;

2) Далее, для каждого полученного templateId, для каждого пользователя циклом forEach выполняется следующий GET запрос на получение заполненного примера для этого templateId;

3) Дальше я сохраняю каждый полученный ответ для каждого templateId в директорию нужного пользователя с помощью listener Save Response to a file в .json

И вот на этом этапе сохранения, при большом количестве пользователей(обычно 20+), некоторые ответы не сохраняются(запросы на их получение двухсотые, ошибок нет, тело в ответе есть).
Как следствие, в дальнейших запросах, где ожидается использование сохранённых json'ов, часть запросов будет падать, т.к. не обнаружит каких-то из них.
https://jmeter.apache.org/usermanual/functions.html#__StringToFile

Вот эту функцию недавно поправили, она тоже теряла файлы при конкурентной записи.

Может быть стоит перейти на неё. Вместо listener. Но с последней версией JMeter
источник

VG

Viktor Ganeles in QA — Load & Performance
Vyacheslav Lebedenko
1) Спасибо, попробую таким способом;
2) Тоже попробую, если не сработает п.1

Ошибок нет с сохранением, в логах во всяком случае ни на что не ругается.
Есть только ошибка уже из следующего цикла, когда JM как раз не смог считать файл, потому что тот не сохранился

2020-06-04 11:24:06,452 WARN o.a.j.f.FileToString: Could not read open: C:/jmeter/save_ex/22/openEHR-EHR-COMPOSITION.t_endocrinologist_examination.v3.json 
2020-06-04 11:24:06,667 WARN o.a.j.f.FileToString: Could not read open: C:/jmeter/save_ex/7/openEHR-EHR-COMPOSITION.t_therapist_examination.v3.json
А я верно понимаю, что каждый респонз пишется в отдельный файл?
То есть не может быть такого, что в один файл пишут два потока жметра ?
источник

VL

Vyacheslav Lebedenko in QA — Load & Performance
Viktor Ganeles
А я верно понимаю, что каждый респонз пишется в отдельный файл?
То есть не может быть такого, что в один файл пишут два потока жметра ?
да, всё верно, для каждого треда создаётся соответствующая папка и в них свой файл создается.
источник

VG

Viktor Ganeles in QA — Load & Performance
Vyacheslav Lebedenko
да, всё верно, для каждого треда создаётся соответствующая папка и в них свой файл создается.
@smirnovqa Слава, наверное, в таком случае конкуренции в записи не могло же проявиться? Ну, не считая работы самой файловой системы 🙂
источник

AM

Andrey Makurin in QA — Load & Performance
Добрый день)
помогите кто знает
у меня есть тест план из 4 запросов и мне нужно поставить паузу между ними.
Когда я ставлю паузу и включаю скажем 10 юзеров то 10 юзеров регаются сразу а следущий запрос (подтверждение) после паузы опять 10 юзеров подтверждают.
как сделать так что бы пауза была между каждой регистрацией пользователя?
источник

AV

Andrey Vasiliev in QA — Load & Performance
Andrey Makurin
Добрый день)
помогите кто знает
у меня есть тест план из 4 запросов и мне нужно поставить паузу между ними.
Когда я ставлю паузу и включаю скажем 10 юзеров то 10 юзеров регаются сразу а следущий запрос (подтверждение) после паузы опять 10 юзеров подтверждают.
как сделать так что бы пауза была между каждой регистрацией пользователя?
в каком инструменте?
источник

AM

Andrey Makurin in QA — Load & Performance
Andrey Vasiliev
в каком инструменте?
jmeter
источник

KY

Kirill Yurkov in QA — Load & Performance
Andrey Makurin
Добрый день)
помогите кто знает
у меня есть тест план из 4 запросов и мне нужно поставить паузу между ними.
Когда я ставлю паузу и включаю скажем 10 юзеров то 10 юзеров регаются сразу а следущий запрос (подтверждение) после паузы опять 10 юзеров подтверждают.
как сделать так что бы пауза была между каждой регистрацией пользователя?
сделай рамп ап период 10, тогда между стартом каждого юзера из 10 будет 1 сек задержки
источник

KY

Kirill Yurkov in QA — Load & Performance
если тебе нужно 10 сек между, то ставить надо рамп ап сотню
источник

KY

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

ВС

Вячеслав Смирнов... in QA — Load & Performance
Andrey Makurin
Добрый день)
помогите кто знает
у меня есть тест план из 4 запросов и мне нужно поставить паузу между ними.
Когда я ставлю паузу и включаю скажем 10 юзеров то 10 юзеров регаются сразу а следущий запрос (подтверждение) после паузы опять 10 юзеров подтверждают.
как сделать так что бы пауза была между каждой регистрацией пользователя?
Есть https://jmeter.apache.org/usermanual/component_reference.html#Critical_Section_Controller

В него можно поместить регистрацию и таймер после неё
источник

AR

Artem Rozhkov in QA — Load & Performance
Ivan Nahornyi
тест который найдет: точку насыщенния и точку не стабильности
А можно уточнить, вы это из курса Баранцева взяли понятие - точка насыщения :)?
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Artem Rozhkov
А можно уточнить, вы это из курса Баранцева взяли понятие - точка насыщения :)?
нет
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
это не баранцевское
источник

AR

Artem Rozhkov in QA — Load & Performance
Я к чему, то что во всех местах пишут по разному
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
saturation: the degree to which the resource has extra work which it can't service, often queued
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
saturation. - насыщение
источник

AR

Artem Rozhkov in QA — Load & Performance
Я тоже слышал на стаке , про saturation point.
источник