Комментарии 6
Спасибо за статью! Случайно на нее сегодня наткнулся и оказалось это именно то, что мне нужно для автоматического нагрузочного тестирования страниц с большим объемом SQL-запросов.
Уже поиспользовал JMeter и возникло пару вопросов:
1. Параметр Rump-up period (Thread Group) - за что отвечает? Какой-то разогрев? Как это работает и какое значение оптимально использовать по вашему опыту?
2. Сколько Threads можно запустить одновременно в дефолтной настройке (без тюнинга)? По опыту на какие ограничения стоит рассчитывать?
Я не автор, но тоже имею немного опыта в нагрузочном тестировании с jmeter.
1) Rump-up period - время в секундах, за которое jmeter должен стартовать потоки этого Thread Group.
Сам по себе Thread Group не очень гибкий инструмент, лучше притащить что-нибудь такое: https://jmeter-plugins.org/wiki/UltimateThreadGroup/
2) Зависит от сценария. В моем случае jmeter загибался при ~1300 тредах. Решилось добавлением памяти (параметры Xmx и Xms)
@Taumer Уже ответил на вопрос, спасибо! Немного подробностей для понимания:
1) Если вы устанавливаете количество пользователей (Threads) = 100, а Rump-up period = 20, то это будет значить, что jmeter запустит 100 потоков в течении 20 секунд, т.е. будет добавлять по 5 потоков в секунду (100/20=5).
2) Зависит от кол-ва слушателей, семплеров, и остальных элементов тест плана. При ошибках OutOfMemory добавьте ему выделяемой памяти и запускайте тест в режиме без GUI.
Спасибо! А как вы собирали метрики, каким-то отдельным инструментом?
При запуске в режиме с графическим интерфейсом метрики собираются путем добавление в тест план слушателей (Listeners). Для того, чтобы получить HTML отчет, я запускаю Jmeter в NonGUI режиме(не забудьте выключить всех слушателей в тест плане) и пасую флаг ”-e” для генерации отчета. Вот пример команды, которую необходимо выполнить в командной строке(не забудьте перейти в директорию bin, где хранится ваш jmeter):
sh jmeter -n -t /Путь/до/тест/плана/в/формате.jmx -l /Путь/куда/jmeter/положит/результирующий/файл.csv -e -o /Путь/куда/jmeter/положит/HTMLreport
-n: non GUI mode (запуск Jmeter без графической оболочки)
-t: location of jmeter script(путь, по которому лежит ваш тест план в формате jmx)
-l: location of the result file(путь, куда jmeter положит файл с результатми теста, название файла придумываете сами)
-e: generate HTML report(говорим джиметру сформировать HTML репорт из файла с результатами теста, джиметр сам знает где он лежит)
-o: output folder(произвольный путь, куда джиметр положит HTML отчет)
Также во время прогона сценария jmeter умеет складывать метрики, например, в InfluxDB, откуда потом можно смотреть на красивые графики в Grafana
https://jmeter.apache.org/usermanual/realtime-results.html
Альтернативное использование инструмента для нагрузочного тестирование Apache JMeter