biercoff
(Andrew Zakordonets)
01.Август.2017 21:49:52
#1
Я пытаюсь сгенерировать Allure report для наших py.test тестов. В документации указано что pytest adapter поддерживает только версию Allure 1.4.x . Allure-cli пытается сгенерировать репорт версии 2.0 и логично что у него это не получается. Я так и не смог найти быстро информацию о том как использовать allure-cli для версии 1.4.х
pytest-allure-adaptor 1.7.7
allure-cli version 2.3.1
python3
После генерации с текущим сетапом получаю репорт где все табы на странице отображаются с сообщением 404 Not found.
Я так понимаю что мне нужна более старая версия allure-cli или же нужно cli сказать что бы он генерировал репорт в старом формате.
Может @vania_pooh сможет оперативно подсказать ?
ysparrow
(Yaroslav Pernerovskyy)
02.Август.2017 05:28:58
#2
Если открывать репорт в Фаерфоксе, такая же фигня?
eroshenkoam
(Artem Eroshenko)
02.Август.2017 06:15:55
#3
@biercoff , нет allure 2.* полностью совместим со старыми адаптерами.
выполни команду:
allure serve path/to/allure-results
1 лайк
biercoff
(Andrew Zakordonets)
02.Август.2017 07:22:47
#4
@eroshenkoam к сожалению у меня отображается пустой отчет с Nan значениями . Вот пример xml файла который генерируется с помощью команды :
py.test --alluredir report
<ns0:test-suite xmlns:ns0="urn:model.allure.qatools.yandex.ru" start="1501622494609" stop="1501622520147">
<name>functional_tests.test_name</name>
<labels/>
<test-cases>
<test-case start="1501622494609" status="passed" stop="1501622498914">
<name>test_invalid_inputs_for_insurance_start_date[]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622498653" status="passed" stop="1501622498854">
<name>enter <pages.test_name.test_nameobject at 0x11147ee10> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x11147ee10> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622498854" status="passed" stop="1501622498914">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622498979" status="passed" stop="1501622501500">
<name>test_invalid_inputs_for_insurance_start_date[123123123]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622501265" status="passed" stop="1501622501442">
<name>enter <pages.test_name.test_nameobject at 0x1115c3198> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115c3198> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622501442" status="passed" stop="1501622501500">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622501562" status="passed" stop="1501622504132">
<name>test_invalid_inputs_for_insurance_start_date[-12.10.2017]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622503898" status="passed" stop="1501622504074">
<name>enter <pages.test_name.test_nameobject at 0x11149af28> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x11149af28> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622504074" status="passed" stop="1501622504132">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622504193" status="passed" stop="1501622506763">
<name>test_invalid_inputs_for_insurance_start_date[hello world]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622506532" status="passed" stop="1501622506708">
<name>enter <pages.test_name.test_nameobject at 0x1115c3588> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115c3588> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622506708" status="passed" stop="1501622506763">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622506823" status="passed" stop="1501622509332">
<name>test_invalid_inputs_for_insurance_start_date[12102017]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622509101" status="passed" stop="1501622509277">
<name>enter <pages.test_name.test_nameobject at 0x1115d6320> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115d6320> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622509277" status="passed" stop="1501622509332">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622509393" status="passed" stop="1501622512080">
<name>test_invalid_inputs_for_insurance_start_date[12-10-2017]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622511821" status="passed" stop="1501622512020">
<name>enter <pages.test_name.test_nameobject at 0x1115cc128> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115cc128> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622512020" status="passed" stop="1501622512079">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622512143" status="passed" stop="1501622514730">
<name>test_invalid_inputs_for_insurance_start_date[12.10.2017]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622514485" status="passed" stop="1501622514675">
<name>enter <pages.test_name.test_nameobject at 0x1115d65f8> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115d65f8> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622514675" status="passed" stop="1501622514730">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622514793" status="passed" stop="1501622517317">
<name>test_invalid_inputs_for_insurance_start_date[12.10.17]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622517068" status="passed" stop="1501622517261">
<name>enter <pages.test_name.test_nameobject at 0x1115cc198> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115cc198> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622517261" status="passed" stop="1501622517317">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1501622517378" status="passed" stop="1501622520147">
<name>test_invalid_inputs_for_insurance_start_date[12.10.2017 10:20]</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="30838-MainThread"/>
<label name="host" value="azakordonets"/>
</labels>
<steps>
<step start="1501622519911" status="passed" stop="1501622520093">
<name>enter <pages.test_name.test_nameobject at 0x1115c32b0> as field name</name>
<title>enter <pages.test_name.test_nameobject at 0x1115c32b0> as field name</title>
<attachments/>
<steps/>
</step>
<step start="1501622520093" status="passed" stop="1501622520147">
<name>Check that error message is displayed</name>
<title>Check that error message is displayed</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
</test-cases>
</ns0:test-suite>
После этого я выполняю
allure generate -c
allure-results does not exists
send analytics
Report successfully generated to allure-report
И на выходе у меня :
Подтверждаю, у меня так же.
Python 3.5.1, pytest-3.1.3, allure-cli-2.3.1, pytest-allure-adaptor-1.7.7
eroshenkoam
(Artem Eroshenko)
02.Август.2017 10:14:53
#6
Это означает что вы указываете директорию в которой нет результатов allure.
Запускаем тесты и убеждаемся что есть директория allure-results в которой есть результаты тестов:
ls allure-results
- тут есть файлы
Генерируем отчет allure serve allure-results.
1 лайк
я запускаю из директории bin следующей командой:
allure generate C:\...\reports\report_mobile -o C:\...\reports\report_mobile
(то есть результат помещаю в ту же директорию)
Вот что мне отвечает: Allure: Target directory C:\...\reports\report_mobile for the report is already in use, add a '--clean' option to overwrite
Соответственно запускаю ту же команду, но с --clean и получаю
C:\...\reports\report_mobile does not exists
send analytics
Report successfully generated to C:\...\reports\report_mobile
Отчет пустой, то есть директория зачищается и потом уже естественно не из чего строить отчет.
Вопрос, почему в самом начале при запуске мне выдаётся Target directory C:\...\reports\report_mobile for the report is already in use.
С прошлым аллюром я делал все то же самое и работало.
biercoff
(Andrew Zakordonets)
02.Август.2017 10:56:38
#8
Вот моя последовательность шагов ( может я что то упускаю ? ) :
> py.test --alluredir reports
cd reports
ls -la
.
..
package-lock.json
49332177-7539-48dd-a2d8-c8f83d78d617-testsuite.xml
allure generate
allure-results does not exists
send analytics
Report successfully generated to allure-report
la
.
..
package-lock.json
allure-report
49332177-7539-48dd-a2d8-c8f83d78d617-testsuite.xml
Внутри allure-report лежит отчет , скриншот которого я уже указывал
eroshenkoam
(Artem Eroshenko)
02.Август.2017 10:59:10
#9
Локально вот так лучше сделать
py.test --alluredir reports
allure serve reports
Можно сделать вот так
py.test --alluredir reports
allure generate reports
1 лайк
biercoff
(Andrew Zakordonets)
02.Август.2017 11:02:54
#10
Сделал
allure generate reports
Получил пустой репорт с 404 ошибкой.
В общем у меня получилось сделать, если результат помещать не в ту же директорию в которой xml.
Если в ту же, то получаю Target directory for the report is already in use.
eroshenkoam
(Artem Eroshenko)
02.Август.2017 11:05:52
#12
Выполни, пожалуйста, команду allure serve reports
1 лайк
eroshenkoam
(Artem Eroshenko)
02.Август.2017 11:06:33
#13
не нужно результаты помещать в ту же директорию.
Есть результаты, по ним строится отчет.
1 лайк
biercoff
(Andrew Zakordonets)
02.Август.2017 11:06:45
#14
Allure server заработал Вопрос тогда в следующем - как мне этот отчет сохранить ?
eroshenkoam
(Artem Eroshenko)
02.Август.2017 11:08:59
#15
Все работало и так. allure serve поднимает web-сервер, вот и вся разница.
Некоторые браузеры (например, chrome) блокируют доступ из браузера к локальным json файлам.
Когда поднят web-сервер такой проблемы нет.
Можно настроить chrome или использовать другой браузер.
1 лайк
biercoff
(Andrew Zakordonets)
02.Август.2017 11:09:20
#16
Пока жив http сервер который поднимает allure serve, я могу читать отчет. Как только я убиваю сервер, то открытие того же отчета из /var/folders/t6/bwm48vv112n2vn943c825t980000gp/T/7567737615297653314/allure-report дает мне пустой отчет с 404 ошибкой.
biercoff
(Andrew Zakordonets)
02.Август.2017 11:10:21
#18
Да, только что прочитал сообщение. Работает. Спасибо большое за оперативную помощь
eroshenkoam
(Artem Eroshenko)
02.Август.2017 11:10:31
#19
Отчет не пустой, просто chrome вредный)
2 лайка