Комментарии 10
Удивительно, что до сих пор никто не прокомментировал. Очень большую работу вы проделали, и достигли уже хороших результатов. Вы же наверняка видели как устроен LoadRunner? Чем-то Ваше решение напоминает Performance Center.
Как минимум появился интерес снова "потыкать" JMeter.
Но т.к. опыта работы с JMeter у меня мало, интересует такой вопрос:
Вы как-то собираете метрики утилизации HW во время тестов? Какие-нибудь сборщики интегрированы у вас (PerfMon, sar/top через ssh, Zabbix...)?
Интересно было бы узнать, как вы решили или будете решать такую задачу.
Мониторинг у нас основан на Graphite, для которого мы собираем метрики при помощи набора скриптов из github.com/innogames/igcollect.
Для лоад тестов использовался долго Monitoring плагин из yandex-танка, который легко засылается на удалённую машину и собирает всё что нужно, собирая в удобночитаемый CSV (оч крутая штука).
Но сейчас всё равно ухожу в сторону парсинга данных из графита.
Я так понимаю, что метрики собираются постоянно в Graphite, и потом Вы смотрите, какая утилизация была во время теста. Но не совсем понятно, у Вас в текущей реализации метрики утилизации HW, полученные из Graphite, как-то сливаются и отображаются в Analyzer? Можно ли получить среднюю утилизацию и утилизацию с шагом за период нагрузочного теста, чтобы можно было их так же сравнивать с прошлыми тестами, по аналогии с временами отклика?
Простой график сравнения:
Отлично, это очень здорово) В основном именно отсутствие возможности автоматической синхронизации данных теста с данными утилизации меня отпугивало от применения JMeter. Спасибо!
ТСу:
Я делал подобную штуку, правда не в таких масштабах (не нужно было огромных нагрузок, все куда проще). Крутилось все на flask/sqlite, морда на vue. Люблю минимализм и отсутствие зависимостей( никакого там планировщика, или очереди задач, ровно как и отведенного сервиса БД) В плане работы было все просто: добавляешь jmx на морде, выставляешь настройки (если они есть типа урл/кол. юзеров и т.п), запускаешь. Python запускает jmeter, и читает stdout, кладет все в базу, ну и там vue уже все рисует. Для каждого из jmx были конфигурации (проект с измененными параметрами), что бы можно было быстро там включить stage/dev сервера. База что бы не разбухала после месяца архивировалась и создавалась новая (в целом дольше хранить исходники результатов не имело смысла).В общем как то так.
Еще вопрос — есть ли у Вас (или может планируется) какое-то API, чтобы можно было выполнять хотя бы часть простых действий (запуск теста, например) из вне?
Очень здорово, спасибо
Нагрузочное тестирование, история автоматизации процесса