使用pytest時(shí)生成allure報(bào)告會(huì)覺得很麻煩壤巷,不像pytest-html插件一樣瘩例,兩步就能生成html報(bào)告。
pip install pytest-html
pytest --html report/report.html
allure的話就要這樣
pip install allure-pytest
pytest --alluredir allure-results
然后allure-results文件夾只有一堆xml文件液斜,這時(shí)還需要安裝allure-command-tools來解析生成html報(bào)告,
如> allure generate allure-results -o allure-report
之后就能在allure-report中發(fā)現(xiàn)html的測(cè)試報(bào)告了侥袜。
相比于pytest-html多了一個(gè)步驟,而且裝的allure版本和pytest可能有匹配不上的問題挎春,具體執(zhí)行時(shí)會(huì)有一個(gè)找不到pytest-allure hook報(bào)錯(cuò)看疙。
也可以利用pytest的hook函數(shù),實(shí)現(xiàn)測(cè)試完成后自動(dòng)生成并打開allure報(bào)告直奋。
# conftest.py
def pytest_sessionfinish(session):
"""測(cè)試完成自動(dòng)生成并打開allure報(bào)告"""
if session.config.getoption('allure_report_dir'):
try:
# 判斷allure在環(huán)境路徑中能庆,通常意味著可以直接執(zhí)行
if [i for i in os.getenv('path').split(';') if os.path.exists(i) and 'allure' in os.listdir(i)]:
# 默認(rèn)生成報(bào)告路徑為: ./allure-report
os.system(f"allure generate -c {session.config.getoption('allure_report_dir')}")
os.system(f"allure open allure-report")
else:
logger.warn('allure不在環(huán)境變量中,無法直接生成html報(bào)告脚线!')
except Exception as e:
logger.warn(e)
Allure報(bào)告功能強(qiáng)大太多了搁胆,比如錯(cuò)誤分類,case的歷史執(zhí)行狀態(tài)等邮绿。它的Jenkins插件倒是方便許多渠旁,自動(dòng)執(zhí)行了allure generate命令,配置一下每次生成報(bào)告的路徑船逮,就可以直接查看啦顾腊。