Allure框架是一种灵活的轻量级多语言测试报告工具,它不仅能够以简洁的web报告形式显示已测试的内容,而且允许参与开发过程的每个人从测试的日常执行中提取最大限度的有用信息。具有开源,轻量级,多语言支持,而且支持主流框架集成testng、junit、支持jenkins集成,具有强大的注解功能,同时支持测试报告定制等优点。关于Allure的更多介绍可以查看官网:http://allure.qatools.ru/
Allure是基于Java的一个程序,需要jdk1.8及以上的环境,所以需要安装jdk1.8及以上,jdk的安装网上有较多教程在此不再赘述,具体参考网上教程。
pytest框架安装参见文章https://blog.csdn.net/dou_being/article/details/102460803。
下面进入正题,开始介绍allure框架的安装过程:
- 安装allure-pytest:pip3 install allure-pytest
注意:pytest-allure-adaptor不建议安装,因为pytest-allure-adaptor库基本被python3放弃了,运行不是很友好,运行时还会报错,如果已安装且运行有报错,可以通过:pip3 uninstall pytest-allure-adaptor进行卸载规避。
- 安装allure2
(1)在https://github.com/allure-framework/allure2/releases,下载后解压到运行的pytest的目录,比如我的pytest运行目录:/Users/用户名/env_pytest/,如图
(2)打开bin目录,执行allure可执行文件(Windows则点击allure.bat文件),如图
(3)将allure/allure.bat文件设置为系统环境变量path下,这样在终端任意目录都可以执行:
- 在终端输入:open ~/.bash_profile,然后输入allure的bin目录路径,如图
- 然后输入source ~/.bash_profile,使配置立即生效
- 在终端输入allure,打印出一串信息即配置成功,如图
- 查看allure的版本号:allure --version,如图
- 生成xml测试报告:
pytest -s -q --alluredir report
或者指定路径生成xml测试报告:
pytest -s -q --alluredir /Users/用户/Downloads/report
比如:pytest -s -q --alluredir /Users/用户/Desktop/pytestDemo/report /Users/用户/Desktop/pytestDemo/test_parametrize.py
说明:此步骤如果直接输入pytest -s -q --alluredir report会报错,因为没有指定相应的测试用例路径,上面的test_parametrize.py是我本地的一个测试用例,测试用例可以参考如下:
import pytest
import allure
"""
1.使用pytest.mark.parametrize 装饰器实现测试用例参数化。
2.实现检查一定的输入和期望输出的测试功能
"""
@allure.feature('pytest结合allure测试Demo') # feature定义被测试的功能
@pytest.mark.parametrize("test_input, expected", [("3+5", 8), ("2+4", 6), ("6*9", 42), ])
def test_eval(test_input, expected):
assert eval(test_input) == expected
if __name__ == "__main__":
pytest.main(['-s', '-q', '--alluredir', './report/html'])
-
运行结果
-
运行allure2:使用pytest -s -q --alluredir report已经在report目录下生成了不美观的测试报告,如图
-
当然xml格式的报告不够直观,我们需要通过allure将它转成HTML格式的报告,执行命令:
allure generate directory-with-results/ -o directory-with-report
比如:allure generate --clean /Users/用户/Desktop/pytestDemo/report -o /Users/用户/Desktop/pytestDemo/report/html,如图
-
回到pycharm,找到report目录,里面有个html文件夹,然后点击index.html,选择打开方式:Open in Browser在浏览器中打开,如图
-
定制测试报告,可根据具体实际情况选择
- feature:标注主要功能模块
- story:标注features功能模块下的分支功能
- severity:标注测试用例的重要级别
- step:标注测试用例的重要步骤
- issue和testCase:标注issue、case,可以加入URL
说明:
- directory-with-results 是 alluredir 生成的 xml 目录
- directory-with-report 是最终生成 html 的目录
- allure/allure.bat 已经加到环境变量了,所以可以用相对路径去生成 html报告:allure generate report/ -o report/html
- --clean参数用来清空已有的报告,避免覆盖时出错
注意:直接用chrome浏览器打开报告,报告会是空白页面,解决办法,在pycharm中右击index.html选择打开方式Open in Browser就可以了 。