Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Определить потолок нагрузки на систему с помощью jmeter


(Ramon Menezes) #1

Доброе время суток,
коллеги помогите плиз. Есть идея на jmeter сделать штуку которая будет определять максимальное колличество пользователей которые могут работать в системе, иначе говоря нужно вытащить потолок системы. это можно сделать с помощью графиков времени ответа\колличество тредов, но это будет лишь субьективное значение, я хочу чтобы после запуска теста мне выдавалась точная цифра, после которой система начинает либо слишком долго отвечать на запросы пользователя либо падать. Можно ли такое сделать и если да то как?


(rmerkushin) #2

Делайте нагрузку “лесенкой” от скажем 100 до овер9000, поднимайте кол-во тредов на +1 и гоняйте каждую ступень по минуте примерно. В итоге по графику будет точно видно когда система стала фигово отвечать. Но это долго и беспощадно бессмысленно :smile: Почему не устраивает примерный, среднестатистический результат? Точного результата вам думаю все равно не добиться. Очень много условий которые будут влиять на результат замера. Сделайте множество замеров и возьмите наименьший результат, чтобы с большей вероятностью попасть в кол-во юзеров которое точно выдержит система.


(Александр Таранков) #3

Ставишь условие на валидацию ответа - если ответ не 200, то тест останавливается. Плюс такое же условие на время ответа - если больше, чем надо, тест останавливается

  1. запускаешь бесконечный тест, в котором нагрузка постепенно растет (насколько постепенно, зависит от количества времени, которым ты располагаешь)
  2. Смотришь цифру количества тредов, на которой завершился тест
  3. PROFIT!

Но только это ерунда. За один замер ничего ты толком не померяешь. Хотя бы потому, что результат должен быть повторяемым, чтобы на него опираться. И доказанным. То есть тебе надо проверить, что это “граничное значение”, которое ты нашел, действительно некоторый порог, через который не может перешагнуть система, а не какой-то единовременный “всплеск”.
Нагрузочное тестирование - это из области exploratory testing, когда ты изучаешь поведение системы в различных условиях. То есть это десятки и сотни запусков разных тестов с разными параметрами и долгое (чем дальше, тем быстрее) ковыряние результатов для понимания того, что же на самом деле происходит с системой и почему графики именно такие. Ну и т.д.