官方介绍
1、Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信息
Allure 报告生成的原理
Allure 报告是基于标准的 xUnit 结果输出,再添加补充数据而生成的,其报告的生成基于如下两个步骤。
1、在测试执行期间,一个名为 Adapter 的小型 library 被连接到测试框架中,并将所有测试执行的信息保存到 XML 文件中。对于大多数编程语言下的流行测试框架(例如 python 语言中的 pytest,Java 中的 jUnit 等),Allure 都默认为其提供了 Adapter。
2、获取 XML 文件后,Allure 会将这些 XML 文件转换为 HTML 报告。这一步骤可以通过持续集成系统的 Allure 插件,或者命令行命令实现。
前言【环境配置】
python中有关allure测试报告的第三方包安装:
pip install allure-pytest
该命令将安装 allure-pytest 包与 allure-python-commons 两个第三方包。
用以生成与Allure报告兼容的报告数据。例如测试用例执行后的结果存放于指定的文件夹中的json文件与xml文件。
早些时候也会选择安装 pytest-allure-adaptor 插件去实现生成allure测试报告,但是在python3的时候会出现报错
INTERNALERROR> pytest.allure._allurelistener = testlistener INTERNALERROR> AttributeError: module 'pytest' has no attribute 'allure'
原因可能由于:因为pytest-allure-adaptor库基本被python3放弃了,运行很不友好,所以报错,所以选择不安装此插件,而是选择安装 allure-pytest 来实现生成allure测试报告。
解决方法
pip uninstall pytest-allure-adaptor pip install allure-pytest
命令
1、pytest执行测试用例并将执行后的每个测试用例的结果存放于指定的文件夹中,生成一个个的json或者xml文件(allure测试报告原始数据)。
【其中,生成的报告都以json格式存储,日志以txt后缀名文件存储,附件是以attach后缀名文件存储】
pytest --alluredir=./report/tmp # --alluredir表示指定测试报告数据的生成路径
执行完成上述命令后,会在当前目录下,report目录下生成一个tmp目录文件;
2、allure将测试报告的原始数据生成测试报告。【注意:这里只是将tmp目录中的测试报告原始数据在指定的文件夹生成allure测试报告,并未在本机开启一个allure服务】
allure generate report/tmp -o report/allure-report -c report/allure-report # 此种方式可能会在生成报告的的时候报:report/allure-report does not exist # 或者 allure generate report\tmp -c -o report\allure-report # 最好使用该命令生成测试报告(与Jenkins上allure插件生成测试报告一致)
report/tmp:每个用例的执行结果生成的每个json文件存放的位置【allure最终会将这些json文件渲染成网页结果】
-o report/allure-report:allure报告生成的位置【指定目录生成测试报告】
-c report/allure-report:新的allure报告生成之前先把先前的allure报告清理掉
3、打开生成的报告,查看。【allure命令2、3结合起来运行】
allure open report/allure-report
- 参数:-h, (--host):指定域名地址;
- 参数:-p, (--port):指定端口号;
【注意】:【或者:忽略2、3步骤,直接在1结束之后,再运行4步骤】
4、打开生成的报告,可对外提供在线展示。【在本机开启一个allure服务,其他主机可通过IP地址和端口号远程查看allure报告】
allure serve report/tmp
- 参数:-h, (--host):指定域名地址;
- 参数:-p, (--port):指定端口号;
allure标记描述
allure报告详解
1、查看suites(函数级别的测试用例)
包名 --- 模块名 --- 测试用例