Всем привет! Я хочу начать писать нагрузочные тесты на своем проекте (в связке JMeter + Selenium). Возникли следующие вопросы:
С чего начать? Какие вопросы я должна поставить перед собой, прежде чем начать писать тесты?
На каких метриках нужно сконцентрироваться в первую чоередь, если меня интересует стабильность и частично перформанс, интересуют ошибки и например скорость загрузки страницы?
Возможна ли интеграция с существующим Test Automation Framework, чтобы не писать с нуля тесты специально для JMeter?
Буду рада любым другим советам, подсказкам, ссылкам и т.д.
А зачем Selenium для нагрузочных тестов? Jmeter вполне хватит. Он для этого и предназначен как раз.
Нефункциональные требования к вашему сервису. Время отклика, загрузка железа и т.д.
Обычно проверяют время загрузки страниц, сервисов или что там у вас. При этом всё это происходит с заданной интенсивностью из пункта первого. Естественно при этом не должно быть ошибок в получаемых данных. например недозагрузки страницы или некорректного ответа.
Плохая идея. Функциональные тесты в общем случае не подходят для нагрузочного, так как проверка в них избыточна и проверяют они другие значения.
Но выглядит это как попытка скрестить жабу с гадюкой. Из документации к плагину: на одно ядро процессора один браузер. Посему даже на топовой конфигурации рабочей станции запустить 8 браузеров - нагрузка на сервер так себе (или же использовать сторонние облачные сервисы)
Плюс стоит разделить “время загрузки страницы” на бек и фронт части. В первом случае можно увидеть, как сервер справляется с обработкой данных и выдачей результата, в том числе и под разной нагрузкой. Тут можно использовать чистый жметер (или ему подобные инструменты)
Для фронтенда можно использовать связку selenium + browser mob proxy чтобы проследить, сколько времени уходит на js-скрипты, рендеринг страницы или ожидание ответа от бекенда.
Я это делал бы следующим образом.
В начале нужно определиться с основными сценариями которые происходят на сайте. Например, для интернет магазина это что-то типа “Авторизация - Просмотр каталога -
Добавления товара в корзину - Оплата”.
Затем понять, какую нагрузку будем эмулировать. Обычно это количество одновременно работающих с сайтом пользователей. В этом, если сайт уже работает, могут помочь системы анализа посещаемости сайтов вроде Google Analytics, если нет - придется исходить из некоторых предположений в зависимости от сферы деятельности сайта.
На последнем этапе нужно определиться, какие метрики хотим собирать: время ответа, количество использованной памяти, нагрузка на процессор и т.д.
JMeter - интсрумент нагрузочного тестирования. Selenium - функционального. Лучше их не скрещивать - ничего хорошего не получится. Если надо писать нагрузочные тесты - пишите их на JMeter, документации в интернете достаточно - погуглите. Главный вопрос - цели вашего нагрузочного тестирования - от них и будут зависеть сценарии и реализация.