Size: a a a

QA — Load & Performance

2020 October 16

VG

Viktor Ganeles in QA — Load & Performance
Kirill Yurkov
@nikitozeg  но можно всем что тебе написали выше не заниматься и не мучать свою голову сложными концепциями, а сделать просто много тредов и поставить throughput shaping timer с заданными параметрами, приближенными к вашим.
дело в том, что пользователей, которых ты хочешь эмулировать их не существует - это абстракция. для сайта это условно 1 поток с которого идут запросы в каком-то порядке. для концептуально правильной нагрузки необходимо чтобы это запросы просто шли в похожем на прод количестве и всё. а то как это реализовано в jmeter - это абстракция и никакого отношения к концепции нагрузки не имеет, кроме привязок типа "тред" "запрос" и оперирования ими
согласен. Тебе так будет проще :)
источник

D

Denis in QA — Load & Performance
Viktor Ganeles
но APP часто работают на виртуалках, а значит у них процессоры гипервизоров, а на гипервизорах практически всегда включены.
понял, спасибо
источник

N

Nike in QA — Load & Performance
Так ребят щас все прочитаю и вникну, минуту
источник

VG

Viktor Ganeles in QA — Load & Performance
Nike
Так ребят щас все прочитаю и вникну, минуту
за минуту вникнуть не получится :)
источник

KY

Kirill Yurkov in QA — Load & Performance
Коллеги, вот вам всем удобный шаблончик, который содержит в себе подходящее решение для 90% тестов. Вам нужно будет только заменить мои запросы на свои и выстаить свои значения максимального количества юзеров с рпсами
источник

KY

Kirill Yurkov in QA — Load & Performance
Требуются плагины:
источник

KY

Kirill Yurkov in QA — Load & Performance
@nikitozeg попробуй - может станет яснее)
источник

N

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

N

Nike in QA — Load & Performance
то биш это ramp up?? выделено стрелочкой
источник

VG

Viktor Ganeles in QA — Load & Performance
ага
время, за которое запустятся ВСЕ треды
источник

VG

Viktor Ganeles in QA — Load & Performance
запускаются они равномерно (ну, стараются, по крайней мере)
источник

N

Nike in QA — Load & Performance
Viktor Ganeles
запускаются они равномерно (ну, стараются, по крайней мере)
так если указать 0, вообще не запустятся?\
источник

VG

Viktor Ganeles in QA — Load & Performance
с чего это
источник

VG

Viktor Ganeles in QA — Load & Performance
ЗА СТОЛЬКО времени они запустятся
источник

VG

Viktor Ganeles in QA — Load & Performance
то есть "сразу же"
источник

N

Nike in QA — Load & Performance
аааа сорян
источник

N

Nike in QA — Load & Performance
не так прочитал
источник

KY

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

N

Nike in QA — Load & Performance
Viktor Ganeles
Если у вас сценарий выполняется 6 сек, значит потребуется 210 тредов:

3600 (сек в час) / 6 (сек на один сценарий) = 600 (сценариев может выдать один тред)

126000 (нужно сценариев в час) / 600 (сценариев сделает один тред) = 210 тредов вам потребуется.

Но это если они будут выполняться за 6 сек ровно.
Не совсем так. Предполагается, что тредов будет запущено как раз таки 1000. 1 тред = 1 юзер. У нас ж эмулируется нагрузка в 1000 юзеров. Соответственно, каждый выполняет свой сценарий, ждет 33 сек - и потом выполняет его еще раз.

В идеальном мире при моментальном выполнении сценария треда получилось бы следующее:
1000 (юзеры)  x 3600 / 33 (количество действий за час в случае паузы в 33 сек)  =  109090
Дополнительная нагрузка сверху = 10 минут от дополнительных 1000 юзеров. Это 1000 * 600 / 33 = 18181

Суммарно это выдает обозначенные 126к примерно. Однако количество итоговых запросов тут все таки не принципиально. Их может получиться и 50к, если у нас все хреново.

Главное - чтобы суммарное время ответа на запрос было в пределах нормы, описанной в требованиях.
источник

VG

Viktor Ganeles in QA — Load & Performance
Nike
Не совсем так. Предполагается, что тредов будет запущено как раз таки 1000. 1 тред = 1 юзер. У нас ж эмулируется нагрузка в 1000 юзеров. Соответственно, каждый выполняет свой сценарий, ждет 33 сек - и потом выполняет его еще раз.

В идеальном мире при моментальном выполнении сценария треда получилось бы следующее:
1000 (юзеры)  x 3600 / 33 (количество действий за час в случае паузы в 33 сек)  =  109090
Дополнительная нагрузка сверху = 10 минут от дополнительных 1000 юзеров. Это 1000 * 600 / 33 = 18181

Суммарно это выдает обозначенные 126к примерно. Однако количество итоговых запросов тут все таки не принципиально. Их может получиться и 50к, если у нас все хреново.

Главное - чтобы суммарное время ответа на запрос было в пределах нормы, описанной в требованиях.
В этом всём не понятно, зачем ждать 33 секунды после каждой итерации, если все они выполняются гораздо быстрее.

Ведь для объекта тестирования не важно, сколько у вас потоков было.
источник