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

Как заставить Jmeter собирать скриншоты графиков после тестов

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.7K
Всего голосов 25: ↑24 и ↓1+23
Комментарии5

Комментарии 5

Интересное применение selenium. Но сам подход доказывает, что при настойчивости и энтузиазме отоларинголог вполне может справиться с проктологическими задачами. Но с другой, своей стороны.

Согласен с @KMA7. Selenium это прям серьезный оверхэд (библиотеки, браузер, веб-драйвер, дополнительный код на джаве), более целесообразным кажется плагин для графаны все-таки притащить. Но если для вас работает, то почему бы и нет. Мы все велосипедим иногда. Главное понимать, что это все-таки лучше со временем сделать по-другому.

Сам обычно пользуюсь PerfMon и Server Agent. Но в моем случае это обычно изолированное окружение без Grafana, которое кроме меня никто не трогает, и никакого графического интерфейса на клиентской ноде (как и на северах) нет, просто чтобы более полно утилизировать ресурсы и максимально убрать погрешности измерений, поэтому можно самому ставить агент и собирать метрики сразу со всех серверов. Тем более что постоянно требуется кастомизировать, например, сбор метрик по памяти (виртуальная для системы, виртуальная для процесса, оперативная, своп). Кстати говоря, non-GUI настоятельно рекомендуется при проведении тестов. Картинки рисуются в самом JMeter сразу после загрузки метрик из файла, оттуда же сохраняются, если надо. Не разбирался, честно говоря, как оттуда скриптом картинку вытащить, просто потому, что на этом работа не заканчивается, и просто иметь картинку обычно недостаточно.

После отработки сценария и сбора метрик все равно идет ручной анализ (где, собственно, и происходит настоящая работа, которая экономит кучу времени в итоге), на основе которого пишется отчет о потенциальных ботлнеках, багах, иногда приблизительные расчеты возможного распределения нагрузки при масштабировании, и мне все равно приходится лазить в сырые данные иногда, чтобы посмотреть, в какую (милли)секунду запрос не прошел, что на картинке 4-8-часового теста не очень хорошо видно, и что в это время было в логах серверов.

PerfMon умеет хранить информацию в текстовом виде (CSV вроде), и, если надо, можно строить графики с помощью других средств. При помощи той же графаны с CSV плагином вроде как может сработать.

А подскажите пожалуйста чем такая мешанина ожиданий обусловлена?

Thread.sleep(2000);
 
WebElement elem = new WebDriverWait(driver, 5).until(

Этот скрипт планируется запускать на единственной машине?

Я, конечно не автор, но могу предположить, что там что-то МЕДЛЕННО отрисовывается на каждой панели, как минимум 2 секунды, плюс-минус 0-5 секунд. Меня больше смущает, что там каждый раз создается implicitlyWait в цикле, при этом цикл for, а не какой-то forEach или типа того. И вот это:

WebElement elem = new WebDriverWait(driver, 5)
.until(ExpectedConditions.visibilityOfElementLocated(By.className(SELECTOR)));

Почему-то думал, что wait.until() таки void.

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