Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как приаттачить скриншоты фейлов в Jenkins CI

screenshot
Теги: #<Tag:0x00007f7b68c18488>

(Andrey Kim) #1

Как приаттачить скриншоты фейлов в Jenkins CI?

После каждого фейла создается скриншот и нужно приаттачить его каким-нибудь образом к результатам ошибок или хотя бы обойтись ссылкой.

Для тестов используется xmlrunner + python + webdriver
Для вывода результатов Publish Junit test result report.

Какие есть варианты это сделать?

Вариант c JUnit attachments plugin у меня не сработал. То ли плагин не допилен, то ли у меня руки не с того места…

Подскажите пожалста кто как делает?


(5am) #2

я прямо в тесте сделал метод который делает скрины и сохраняет в определенную папку.
а в конце каждого теста, скрины из папки атачу в письмо и отправляю по почте себе :slight_smile:


(Andrey Kim) #3

Замечательный вариант, а как с памятью? Сколько примерно один отчет занимает?
Какие плагины для этого вы используете?


(5am) #4

я не делаю постоянно скриншоты, только в момент “падения” теста.

Замечательный вариант, а как с памятью? Сколько примерно один отчет занимает?

не много (см выше), новый проект, тестов мало. Да и не что не мешает, удалять скрины после того как отправили письмо. Если тестов под сотни или даже тысячи, то наверно такой расклад не очень удачный…

по поводу CI + атачи:
т.к. в данный момент скрины с упавшими тестами, вместе с логом, падают мне на почту.

подумываю сделать так, что бы в ошибке, которая отображается в CI (в моем случае TeamCity)
выводился путь в скриншотам.
а для этого можно: сохранять скрины в уникальную папку, на шаре, в assser фейле, выводить путь к папке, и в таком случае разработчики, которые смотрят результат запуска билда, по мимо ошибки теста, смогут увидеть и скрины упавшего теста.

плагины не используются:

  • с вебдрайвера скрин (можно сделать и без его участия)
  • атачи, письма, логгинг - все на C# + default libs

(Mykhailo Poliarush) #5

Я вижу, что Вы уже решали эту проблему https://groups.google.com/forum/#!topic/jenkinsci-users/u_hWnY2dfhA с JUnit Attachment Plugin

Ну еще вариант, сохранять картинку в jenkins workspace где есть http доступ, сохранять урл к картинке, пропатчить xmlrunner, для чтобы в отчет вставлял ссылку или отрисовывал картинку по урлу. Конечно надо будет делать все руками.

Как вариант, можно еще сохранять картинку по названию теста, а потом когда уже сформируются отчеты, написать программку, которая пройдется по xml отчетам и по именам тестов вставит туда ссылки на картинки (сделать это как отдельный шаг)

Как упоминалось, можно еще и в сам емейл вставлять, вот кстати ссылочка по этому поводу http://www.campaignmonitor.com/blog/post/1759/embedding-images-revisited/


(Andrey Kim) #6

Да пытался решить это все при помощи CI плагинов, но столкнулся с проблемами.
Junit attachment plugin не работает как следует.
Другим вариантом чтобы выводить прямые ссылки на каждый из скриншотов, нужно было переделать xmlrunner.
Мне это показалось слишком трудо-затратным и я решил по другому.

Сделал все при помощи всемогущего юникса)
Добавлен один дополнительный шаг к билду, который создает новую папку с названием в виде даты и собирает в нее все отснятые скриншоты, которые имеют имя своего теста.
А затем в письме отправляется ссылка на папку в workspace со скринами последней тестсессии.


(Mykhailo Poliarush) #7

Я переместил(а) сообщение в новую тему: Как сконфигурировать Jenkins, чтобы он не съедал много RAM или какой CI Server выбрать?