В ходе создания системы автотестов назрел вопрос рассылки красивых html отчетов с результатами тестирования. Запускаю тесты с помощью py.test, формирую xml отчет с помощью плагина junitxml, потом этот отчет отображает jenkins.
Решила сделать свой собственный отчет, используя данные полученного xml файла. Но хотелось бы там видеть и дату формирования отчета, и как-то сохранять там входные данные теста (в полученном xml файле этого нет) и может даже добавить краткое описание теста (что проверяем).
Может вы мне подскажете, как это можно добавить в junitxml, чтобы при формировании xml добавлялись эти строки? Или только редактировать исходный xml самой, а потом уже преобразовывать его в отчет?
В общем тема отчетов для меня сейчас очень-очень актуальна Очень интересно какие шаблоны отчетов используете вы.
А что если при формировании html отчета вы будете основываться не только на xml, но и залазить в исходные данные, смотреть дату запуска тестов и все это выдавать уже в отчете.
Ну это почти тот же вариант, что добавлять эту дату и прочее в xml, а потом делать xslt преобразование, разве нет?. И подскажите, пожалуйста, где смотреть дату запуска тестов.
Вообще по большому счету хочется исправить один раз junitxml плагин, чтобы включались нужные данные, а не править каждый раз xml файл. Но не знаю как там правильно это сделать ((
Не смотря на то, что я когда-то сам игрался с XSLT преобразованиями для NUnit – скажу, что этот путь чрезвычайно ресурсоемкий и ограниченный.
Вместо этого, предлагаю создать отдельный класс, который бы писал логи в обычном текстовом формате:
Такие текстовые файлы читабельны сами по себе и очень легко парсятся и преобразовываются в HTML. Кроме того, в самом логировании, вы можете, например, использовать Markdown, что даст возможность сохранять читабельность в Блокноте + преобразовывать в HTML
Скажите, пожалуйста, а чем Markdown и текстовый формат, предпочтительнее логирования в xml формате, если так же формировать свой xml файл, а не использовать плагин py.test?
Нужно в файле <путь к python инсталяции>\Lib\site-packages_pytest\junitxml.py добавить формирование аттрибута через конструктор. В общем это всего одна строка Так как xml елементы и аттрибуты формируются автоматически на основании существующих аттрибутов экземпляра класса.
Нужно просто понимать цель, чего вы хотите от логирования. Если получить читабельные логи, то можно в каждом тесте делать описание в виде html или markdown (который тоже очень читабельный) и потом на основании этих описаний строить отчет.
Я когда-то помогал делать похожую задачу одной компании. Пример можно посмотреть тут http://poliarush.com/working/development/logging-and-decorators-in-python.html Это не совсем то, что вам нужно, но думаю ход мысли понятен. Описываем все методы через docstrings и потом их читаем, когда нужно и формируем отчет.
Спасибо большое, вставить дату-время получилось. Теперь по аналогии попробую добавить атрибуты testcase. А вообще тема интересная, попробую разные варианты, как будут результаты обязательно тут отпишусь и покажу отчеты.