Как стать автором
Обновить

Альтернативное использование инструмента для нагрузочного тестирование Apache JMeter

Время на прочтение7 мин
Количество просмотров6.7K
Всего голосов 9: ↑9 и ↓0+9
Комментарии6

Комментарии 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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий