Allure 官方介绍http://allure.qatools.ru/
Allure 生成的报告不仅美观且方便CI集成
这是项目最后的报告截图
安装adapter
pip install pytest-allure-adapter
生成报告
pytest -s -q --alluredir [path_to_report_dir]
这时候就会发现用例执行完成后会在当前目录下生成了一个report文件
生成report
allure generate report/ -o report/html
最终报告会生成在report/html目录下
打开index.html即可看报告
定制report
让生成报告的可读性更高,可以用一些api来实现
@allure.step 和 @allure.attach 可以让生成的报告更直观(可理解为注释)
@allure.step在报告中增加步骤显示
@allure.attach在报告中增加额外的信息:allure.attach(’arg1’,’arg2’,’arg3’):
arg1:是在报告中显示的名称
arg2:表示添加的内容
arg3:表示添加的类型(支持类型:HTML,JPG,PNG,JSON,OTHER,TEXTXML)
往报告中添加额外的信息
allure.attach(‘this is an attach’,’aaaaa’)
往报告中添加图片
F= open(‘./b.png’,’rb’).read()
Allure.attach(‘this is a img’,f,allure_type.PNG)
Severity标注bug的严重等级,可以针对某个等级执行用例,其他等级都跳过,也可将等级高的bug优先修复
如果希望只跑critical和blocker这两个等级的case
在原先命令上加上--allure_severities=critical,blocker参数
py.test --alluredir report --allure_severities=critical,blocker -s –q
features 和stories 与severity一样可以将case分类
只执行部分 feature/stories 的话,用下面命令
py.test --alluredir report --allure_features=feature1,feature2 --allure_stories=story1,story2
集成Jenkins
安装插件
jenkins 安装插件 Allure Jenkins Plugin HTML Publisher plugin
在系统设置中将JDK / Maven 等其他一些基本配置(建议jdk版本1.8)
在jenkins中添加allure执行工具
jenkins添加allure执行工具
- 下载 allure执行的压缩文件(allure-commandline.zip)
- 用tomcat搭建一个简单的服务器将allure-commandline.zip当作静态资源提供下载 (http://localhost:8080/allure-commandline.zip)
- 在jenkins的系统配置—–Allure Commandline —-选择自动安装—–选择解压zip—-填写提供下载zip包的url地址
- 填写其他必填项
-
点击保存
新建job
在job中添加步骤 Allure report(Results:第一行表示xml文件的路径;第二行表示生成报告的路径)
目前job的整个流程:
- 构建时,从svn上拉取最新的测试代码
- 执行测试脚本并且生成allure需要xml结果文件
- 通过Allure report生成测试报告
- 设置问题追踪(在Allure Report 下选择增加:
Key: allure.issues.tracker.pattern Value: http://tracker.company.com/%s)
由于jenkins1.5.2以上版本对插件的安全性做了限制必须要在jenkins 启动时添加启动代码
java
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"
-Djenkins.model.DirectoryBrowserSupport.CSP="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"
-jar jenkins.war