Графики выполнения тестов


#1

Родилась идея из обсуждения в gitter. У нас возникла проблема, тесты внезапно стали выполняться долго. Поскольку проблема возникла в другой команде, я не сильно мониторил ситуацию.
Появилась следующая идея - собирать статистику выполнения тестов(можно каждого отдельно, можно группами), чтобы следить за трендом выполнения.
Сначала думал это перенести в xdd/bdd-Runner, но потом понял что время выполнения есть в файлах результатов.

Вопрос: а если какой-то парсер в метрики этих логов? Или может был бы интересен.

Я думаю сделать самый простой вариант - или в zabbix или в graphite собирать данные и выводить/анализировать через grafana.

Как идея?


#2

Я думаю, что лучше анализировать выхлоп самой джобы (в Jenkins). По идее, на отладке данных достаточно для формирования графиков. Если не достаточно, то не сложно поправить. ИМХО, это более правильный вариант, так как провал по времени может быть не в самом тесте, а в других местах. - например открытии конфигурации. Из отчетов Allure ты этого не узнаешь.


#3

Если не ошибаюсь в отчетах фиксируется начало и конец теста. То есть в принципе можно отделить запуск конфигурации и сам тест.
Но можно попробовать парсить и лог jenkins.


#4

Можно же поискать плагины для jenkins/
Первое что попалось https://github.com/WeltN24/jenkins-zabbix


#5

Еще один вариант, но уже с ELK


#6

Я такие смотрел. Вот еще классный https://github.com/nvgoldin/jenkins-graphite
Или вот прямо готовый борд для графаны https://grafana.com/dashboards/233

Но все они снимаю метрики целиком с Jenkins. А я бы хотел видеть графики самих тестов


#7

Ничего хорошего так и не нашел… Так что появилась идея - отправлять данные в Zabbix, все равно он на сервере стоит уже.
Потом grafana можно без проблема собирать любые данные

Видимо это лучше всего плагином реализовать?


#8

zabbix для аллертинга по умолчанию, не надо его сувать в аналитику,

Я так понимаю - нужно “журнал выполнения тестов(сборки) засунуть в ELK” и дальше сделать агрегат.

Информацию такого рода первично показывает allure - по таймингам тестов. Также это делает cucumber-reports.

Зачем тут что-то другое неясно. cucumber-Reports показывает тренды - там можно увидеть кто стал самым слабым звеном. Дальше копать контректный тест и после какого коммита появилась досада-беда.

Дополнительно я напомню - ставьте таймаут на джобе на весь цикл тестирования (скажем 1 час), тогда при первой деградации сборка упадет. Особенно когда инфраструктурщики начнут отбирать втихую ресурсы на виртуалках.


#9

Кстати да… В ELK хорошая идея.
Allure показывает тайминг, но для одной сборки - хочется тренд через несколько сборок. Cucumber хорошо работает с bdd, а с xdd? Потому что у нас подозрения на xUnit тесты пока.


#10

Погоди JUNit Reports также покажет тренды - причем круче чем cucumber reports

Я просто чувствую, что распарсить логи ADD, а там фактически библиотека logos в целом, если включать debug режим займет уйму времени на написание публикатора в ELK.

Хотя можно выкрутиться форматером - плагин сделать для bdd и tdd ранерра, чтобы сразу в удобный формат ELK отправлял.