一、简介
allure
- 轻量级、灵活的、支持多语言的测试报告工具
- 多平台的、奢华的报告框架
- 可以为开发、测试提供详尽的测试报告、测试步骤、日志
- 为管理层提供高规格的统计报告
- 使用 Java 开发,支持pytest、JavaScript、PHP、Ruby等
- 可以集成到Jenkins
官网:
二、安装并配置环境变量
Windows / Mac / Linux 通用安装方法:
下载 allure.zip 安装包,解压后配置环境变量即可:
配置路径(windos举例):
F:\从0到1开始搭建自动化测试框架\allure-2.17.3\bin
在命令行输入allure --version,能出现版本说明allure命令行已经安装成功了
allure --version
结合 pytest 使用,需要安装 python 插件:
pip install allure-pytest
三、allure特性及语法使用
1、@allure.step
allure报告最重要的一点是,它允许对每个测试用例进行非常详细的步骤说明
通过 @allure.step() 装饰器,可以让测试用例在allure报告中显示更详细的测试过程
@allure.step("第三步") def nested_step(): #具体测试步骤代码 nested_step_with_arguments(1, 'abc')
2、allure.attach(挺有用的)
作用:allure报告还支持显示许多不同类型的附件,可以补充测试结果;自己想输出啥就输出啥,挺好的
语法: allure.attach(body, name, attachment_type, extension)
参数列表
body:要显示的内容(附件)
name:附件名字
attachment_type:附件类型,是 allure.attachment_type 里面的其中一种
extension:附件的扩展名(比较少用)
@allure.title("前置操作:登录") @allure.step("第二步") def step_with_nested_steps(): allure.attach('在fixture后置操作里面添加一个附件txt', 'fixture后置附件', allure.attachment_type.TEXT) nested_step()
3、@allure.title() (用例标题)
from time import sleep import allure import pytest @allure.title("测试:title") @allure.description(""" 这是一个@allure.description装饰器 没有特别的用处 """) @pytest.mark.parametrize("n", list(range(5))) class TestWeibo: @allure.story("子功能/单个用例名称") def test_case1_01(self, open_weibo, n): sleep(1) print("查看微博热搜", n) def test_case1_02(self, open_weibo, n): sleep(1) print("查看微博范冰冰", n
4、@allure.description()
作用:
可以添加足够详细的测试用例描述
写法同上,查看3
@allure.description(""" 这是一个@allure.description装饰器 没有特别的用处 """)
@allure.feature("测试采购合同模块") # 通常对测试类进行装饰 class TestPurchaseContract:
@allure.story("测试同步标识灯功能") # 通常对单个用例进行装饰 def test_synchronize(self): """ 测试 同步标识灯 功能 :return: """ r = self.pending_request.synchronize() assert r["msg"] == "同步更新申购单红、绿、蓝灯状态成功" assert r["success"] is True
7、Allure特性-severity(测试用例的优先级)
class Severity(object): BLOCKER = 'blocker' CRITICAL = 'critical' norMAL = 'normal' MInor = 'minor' TRIVIAL = 'trivial'
@allure.severity("minor")
1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2、 Critical级别:临界缺陷( 功能点缺失)
3、 normal级别:普通缺陷(数值计算错误)
4、 Minor级别:次要缺陷(界面错误与UI需求不符)
5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范
四、allure生成报告命令
1、执行测试命令
pytest -n auto --alluredir=allure
2、测试报告生成命令
allure serve allure
五、报告预览
备注:
1、环境参数配置:environment.properties(需要放在allure目录下)
browser=Chrome browser.Version=81.0.4044.92 Stand=Production ApiUrl=pda python.Version=3.7.2
2、测试类别配置文件categories.json(需要放在allure目录下)
[ { "name": "忽略测试", "matchedStatuses": ["skipped"] }, { "name": "Infrastructure problems", "matchedStatuses": ["broken", "Failed"], "messageRegex": ".*bye-bye.*" }, { "name": "Outdated tests", "matchedStatuses": ["broken"], "traceRegex": ".*FileNotFoundException.*" }, { "name": "测试失败", "matchedStatuses": ["Failed"] }, { "name": "测试缺陷", "matchedStatuses": ["broken"] } , { "name": "测试成功", "matchedStatuses": ["passed"] } ]
原因:
解决:
手动将allure-report中的history复制到allure目录下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。