Size: a a a

QA — Load & Performance

2021 October 15

KY

Kirill Yurkov in QA — Load & Performance
гатлинг?
источник

PB

Pavel Bairov in QA — Load & Performance
угу
источник

KY

Kirill Yurkov in QA — Load & Performance
ну только из cart надо передать переменную в order
источник

KY

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

AG

Alex Grishutin in QA — Load & Performance
По этой логике и модель построеная от рпс тоже показывает результат только для конкретного случая и конкретного распределения
источник

PB

Pavel Bairov in QA — Load & Performance
так легко, она у нас всегда будет) getCard же выполнится в любом случае
источник

KY

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

KY

Kirill Yurkov in QA — Load & Performance
а не увидел второго exec - ок
источник

AG

Alex Grishutin in QA — Load & Performance
Так трафик же ничем не отличается и ты его волне себе полностью контролируешь в обоих случаях.

Возможно, мы говорим примерно об одном и том же)
источник

KY

Kirill Yurkov in QA — Load & Performance
точно нет, усреднение сценария пользователя и скейлинг до их количества в проде != сбор их суммарного импакта в систему и построение профиля на основе этого
источник

AG

Alex Grishutin in QA — Load & Performance
Ну хззз, готов поспорить.
При покрытии в районе 80% вполне себе оно показывает как система будет вести себя при аналогичных уровнях на проде.
источник

VS

Vladimir Sitnikov in QA — Load & Performance
Вот не соглашусь.

1) Зачастую, бизнес-операции происходят с какой-то зажержкой между собой. Например, пользователь добавил что-то в корзину, а через какое-то время оформил заказ.

Как проверить «оформление заказа», если мы говорим только про «rps подход»? Вот реально как? Откуда корзина возмётся? Мы её создадим непосредственно перед вызовом «оформления заказа»?
В реальности же, если есть задержка между добавлением в корзину и оформлением, то данные могут вымыться из кэша и профиль нагрузки на диски будет другой, несмотря на то, что «общее колиество операций такое же».

2) Зачастую, длительность операций зависит от их объёма. Например, если по сценарию пользователю нужно «добавить что-то в корзину», то длительность добавления может внезапно зависеть от текущего размера корзины.  И хорошо бы проверять разные случаи: «добавим 1 элемент», «добавим 5 элементов». Вот и получилось у нас 2-3 end-to-end сценария. Внимание, вопрос: а будет ли лучше, если мы попытаемся их изобразить исходно в виде «одной только нагрузки про корзину» — да не факт.


Я не говорю, что «только end-to-end, только так», но ооочень странно слышать слова, что «нагружать низкоуровневые части всегда достаточно». Никто же не говорит, что «интеграционные тесты не нужны»? Почему же тогда кто-то говорит, что «интеграционные тесты производительности не нужны»?
источник

jj

jagga jagga in QA — Load & Performance
Ну 2й пункт легко делается в одном сценарии
источник

jj

jagga jagga in QA — Load & Performance
А про первый ты не совсем прав
источник

МВ

Максим Варанкевич... in QA — Load & Performance
воспроизводил по статистике и получил один в один % соотношения запросов по NewRelic и вышло точная копия продовского поведения, разве в этмо случае можно говорить про то, что это не показывает реальной картины?
источник

KY

Kirill Yurkov in QA — Load & Performance
так rps подход не запрещает тебе поднимать уровень интерпретации.
как для системы детерменируется пользователь? это сессия, например.
тогда ты можешь создать N потоков, внутри которых перебирать сессии и имитировать то количество юзеров которое нужно.
далее, уже накручиваем логику вокруг итерации (сессии):
-если нужно гдето подождать кэши, мы ждем. если нужно передавать последовательно какие то переменные или сущности дальше - отлично у нас внутри итерации выполняются запросы последовательно, размести их в нужном порядке и передавай переменную.
таким образом пункт 1 - идеально работает внутри rps подхода. при этом мы соблюдаем парадигму что "общее колиество операций такое же" в секунду или другую единицу времени.

2 случай - это вообще индивидуальный подход, который зависит от задачи. если есть задача имитировать прод - о которой я говорил, то почему бы не взять распределние по количеству товаров в корзине с прода?

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

jj

jagga jagga in QA — Load & Performance
Вот вот, имхо это более верный подход, чем со сферическими выдуманными пользаками в методиках
источник

KY

Kirill Yurkov in QA — Load & Performance
ты про рпс подход? или ты это сделал юзерами?

к слову я не говорю что в подаче нагрузке в юзерах это недостижимо
источник

МВ

Максим Варанкевич... in QA — Load & Performance
Юзерами
источник

МВ

Максим Варанкевич... in QA — Load & Performance
просто когда есть детальная статистика, то сделать точную копию бизнес кейсов легко
источник