Size: a a a

QA — Load & Performance

2019 October 28

AR

Artem Rozhkov in QA — Load & Performance
Каким оразом все это будет происходить.
источник

AL

Alexander Lebedev in QA — Load & Performance
Artem Rozhkov
Каким оразом все это будет происходить.
если мне память не изменяет есть у жиметра плагинчик, который позволяет в автоматическом режиме увеличивать количество виртуальных пользователей для достижения необходимого рпса даже в закрытой модели
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Artem Rozhkov
Каким оразом все это будет происходить.
Сценарий состоит из трёх операций пусть. И из 55 запросов. Важно сделать сценарий без if, while, case, ...

Тогда всегда будет 55 запросов в случае успеха (200). И дальше контролировать остаётся только сценарии.

Делаю так.
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Технически делаю чаще всего так. В JMeter есть Test Action (пауза на 0 сек) и таймер к ней - Constant Throughput timer.
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Отличие JMeter от Gatling тут в наличии фиксированного пула потоков в JMeter.

Если тест на поиск максимума, то это важно.

При повышении нагрузки система начинает отвечать медленнее, тут gatling начинает добавлять пользователей, а JMeter просто не может этого делать. У него пользователей столько, сколько в пуле задано. И у gatling нагрузка не просядает, но он может упасть в out of memory, а JMeter не падает (если настроен) но у него нагрузка просядает.
источник

СЧ

Сергей Чепкасов in QA — Load & Performance
В gating тоже можно ограничить количество потоков, например  используя constantConcurrentUsers
источник

AL

Alexander Lebedev in QA — Load & Performance
@smirnovqa если в курсе, есть ли софтовое ограничение на на виртуальных пользователей в JMeter? Видел где то статейку, i5+8gb дали примерно 9000 авктивных. Но я хочу запускать через агенты тимсити, там то железяки помощнее. Максимум во что могу упереться это количество активных подключений сети. Так вот и интересно на сколько я смогу разогнать один воркер?
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Если сценарий написан с множеством if, while, ... То контролем интенсивности сценария не обойтись. Тут есть другие таймеры. Которые контролируют RPS.

Например.
Throughput Shaping Timer

Известной особенностью этого таймера являктся то, что интенсивность должна быть целой положительной.

30 запросов в сек, 100 запросов в сек, можно. 0,4 - нельзя
источник

AR

Artem Rozhkov in QA — Load & Performance
Вячеслав Смирнов
Отличие JMeter от Gatling тут в наличии фиксированного пула потоков в JMeter.

Если тест на поиск максимума, то это важно.

При повышении нагрузки система начинает отвечать медленнее, тут gatling начинает добавлять пользователей, а JMeter просто не может этого делать. У него пользователей столько, сколько в пуле задано. И у gatling нагрузка не просядает, но он может упасть в out of memory, а JMeter не падает (если настроен) но у него нагрузка просядает.
Спасибо.
Я правильно понимаю, что если мы пытаемся достичь РПС в сценарном методе -
То у нас не всегда будет один и тот же запрос в секунду в нужном кол-ве, если после первого запроса нужно из него что-то выдернуть и потом отрпавить второй?
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Artem Rozhkov
Спасибо.
Я правильно понимаю, что если мы пытаемся достичь РПС в сценарном методе -
То у нас не всегда будет один и тот же запрос в секунду в нужном кол-ве, если после первого запроса нужно из него что-то выдернуть и потом отрпавить второй?
Нет. Если всегда из первого выжигается второй. Или с вероятностью 50. То все будет стабильно.
источник

AR

Artem Rozhkov in QA — Load & Performance
Сервер будет медленее отвечать, и по этому у нас второй запрос может не совсем попасть в данный рпс
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Artem Rozhkov
Сервер будет медленее отвечать, и по этому у нас второй запрос может не совсем попасть в данный рпс
Тогда Throughput Shaping Timer задействует ещё пользователя из пула. Но когда пул закончится, тогда всё. Просядает нагрузка
источник

СЧ

Сергей Чепкасов in QA — Load & Performance
Artem Rozhkov
Спасибо.
Я правильно понимаю, что если мы пытаемся достичь РПС в сценарном методе -
То у нас не всегда будет один и тот же запрос в секунду в нужном кол-ве, если после первого запроса нужно из него что-то выдернуть и потом отрпавить второй?
Можно поставить достаточно большой pacing и закинуть достаточно тестовых данных, то можно получить требуемое количество rps независимо от времени ответа сервиса. Если я правильно понял проблему
источник

СЧ

Сергей Чепкасов in QA — Load & Performance
Например, в сценарии 10 запросов, таймаут по каждому 60с, ставим pacing 600с. И теперь можно контролировать число rps количеством запуска сценариев в секунду. Только тогда надо очень много тестовых данных)
источник

AR

Artem Rozhkov in QA — Load & Performance
Сергей Чепкасов
Например, в сценарии 10 запросов, таймаут по каждому 60с, ставим pacing 600с. И теперь можно контролировать число rps количеством запуска сценариев в секунду. Только тогда надо очень много тестовых данных)
Все верно. Просто мне стало интересно для чего прописывают RPS  в сценарном методе.
Ведь не всегда следующий запрос может полететь из-за того что серверер притормозил.
Ну и как быть с паузами на ввод данных, мы же тоже это должны учитывать, вот по этому меня и заинтересовало что такое рпс в сценарном методе?
источник

AR

Artem Rozhkov in QA — Load & Performance
А рпс , если я все верно понимаю - это количество запросов в секунлу?
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Сергей Чепкасов
В gating тоже можно ограничить количество потоков, например  используя constantConcurrentUsers
Не пробовал ещё так совмещать с тротлингом. На сколько помню не получится совместить
источник

СЧ

Сергей Чепкасов in QA — Load & Performance
Скорее всего не получится.  Это для закрытой модели с pacing
источник

AR

Artem Rozhkov in QA — Load & Performance
Cпасибо, @smirnovqa ,@jigarkhwar , @chepk  за ответы.
Постараюсь более точнее задать вопрос.
А точнее описать кейс.
И точнее описать логику рпс как я ее вижу
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Artem Rozhkov
Все верно. Просто мне стало интересно для чего прописывают RPS  в сценарном методе.
Ведь не всегда следующий запрос может полететь из-за того что серверер притормозил.
Ну и как быть с паузами на ввод данных, мы же тоже это должны учитывать, вот по этому меня и заинтересовало что такое рпс в сценарном методе?
Есть как минимум 2 вида rps: 'количество сценариев в секунду' и 'количество выполнений какого-нибудь шага в секунду'

Если сценарий это покупка в магазине, то может оказаться 100 покупок в час, и при этом 500 действий 'положить в корзину' в час. Вот вам и rps
источник