George555 公众号:测试江湖路 3天前
如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:
接上一篇文章pytest使用,本篇整理下定制报告allure的环境部署及命令使用。先来一张最终效果图吧:
引言:
Allure是什么呢?
allure是一款开源的报告生成框架。它支持java、python语言。allure会将测试用例的执行数据保存到xml文件当中,再利用allure的命令将xml/json文件转换成html形式呈现出来。
Allure结合python使用主要分两部分,一部分是 allure-pytest插件;一部分是allure-command。command包用于将allure-pytest插件生成的json文件转换成html报告。
allure-command框架的下载:https://github.com/allure-framework/allure2/releases/tag/2.12.1 即把xml/json转换为html的Command Tool工具
下载解压后如下图:
说明:Allure-command框架是java写的,所以使用前先安装java8.0。为了在命令行方便使用,请把Allure-command解压包下bin目录的加载到系统环境变量中。
1.bin目录下有两个文件allure 和 allure.bat,前者用于linux平台,后者用于windows平台。
2.win环境下解压后,需要把bin目录加入到系统环境变量path中,方便命令行执行只需要输入allure即可。
3.Allure常用命令有: ---- 可以用allure --help 获取
allure [options] [command] [command options]
[options]可以为:
--help:帮助信息,查询参数使用
-q或--quite:进入allure的quiet模式,默认不进入
-v或--verbose:进入allure的verbose模式,默认不进入
--version:查询allure版本号
[command]可以为:generate/serve/open/plugin
[generate]:直接在本地生成html报告文件,如下图:
generate的参数有:
-c或--clean:生成新报告前,先清空报告目录
--config:配置allure-command执行命令的路径,若配置则覆盖--configDirectory和--profile参数值。
--configDirectory:配置allure-command执行命令的目录,默认ALLURE_HOME目录
--profile:allure-command的配置文件
-o或--report-dir或--output:生成allure报告的目录,默认allure-report目录
注意:用gengrate生成的报告中,index.html文件中数据都不显示,需要再执行下allure open命令渲染后才能显示。如下图:
[serve]:启动一个web服务版的报告,使用url可以直接访问,如下图:
注意:这样默认生成的报告会放在系统用户临时文件中
serve的参数有:
--config:同generate
--configDirectory:同generate
-h或--host:web服务版ip
-p或--port:web服务版端口
--profile:同generate
[open]:在web上直接打开generate生成的报告,常用于配合generate来使用。
open的参数有:
-h或--host:web服务版ip
-p或--port:web服务版端口
【示例1】: generate+open
在python中pytest文件方法:
pytest.main(['--alluredir', './temp'])
#在命令行中执行方式
allure generate ./temp -o ./report --clean
allure open report --host 192.168.0.104 --port 8800
【示例2】: serve
在python中pytest文件方法:
pytest.main(['--alluredir', './temp'])
# 在命令行中执行方式
allure serve ./temp --host 192.168.0.104 --port 8813
注意:
1、generate 和serve命令中要加上生成测试报告数据文件所在目录temp,否则最终生成的html报告中会无数据;
2、而open中要加入generate生成后的报告report目录;
3、由示例1和2可知serve一条命令的功能等于是generate+open的功能
4、使用generate、serve时注意端口占用问题,运行一次再次运行时候会报错:
java.io.IOException: Failed to bind to HelloWorld/192.168.0.104:8800
所以多次运行注意修改端口号。
使用pip命令:pip install allure-pytest
说明:
a.allure-pytest 插件是生成测试报告数据的插件包,使用它可以配合pytest在执行完用例后生成json的测试报告数据文件
b.有了json的测试报告数据文件,就可以利用allure-command框架来把多个json文件转换成html的测试报告文件了。如下图:执行allure run后的报告文件:
C.如果你用的不是allure-pytest插件而是pytest-allure-adapter插件,则这里生成的不是json文件,而是xml文件。
本次先整理到这里,下一篇将综合整理下在python-pytest代码中怎么加入allure,让测试报告更加丰富起来。
########往期相关文档传送门########
python-pytest使用(1)-基础
python-pytest使用(2)-fixture
python-pytest使用(3)-conftest
python-pytest使用(4)-多线程多进程运行
#####欢迎大家加群交流####
QQ:464314378
微信群请先加群主微信,群主会拉各位小伙伴进群,注意添加备注。