Pytest的allure的进阶操作
allure测试报告的语法
| 使用方法 | 参数值 | 参数说明 |
| @allure.epic() | epic描述 | 定义项目、当有多个项目是使用。往下是feature |
| @allure.feature() | 模块名称 | 用例按照模块区分,有多个模块时给每个起名字 |
| @allure.story() | 用例名称 | 一个用例的描述 |
| @allure.title(用例的标题) | 用例标题 | 一个用例标题 |
| @allure.testcase() | 测试用例的连接地址 | 自动化用例对应的功能用例存放系统的地址 |
| @allure.issue() | 缺陷地址 | 对应缺陷管理系统里边的缺陷地址 |
| @allure.description() | 用例描述 | 对测试用例的详细描述 |
| @allure.step() | 操作步骤 | 测试用例的操作步骤 |
| @allure.severity() | 用例等级 | blocker 、critical 、normal 、minor 、trivial |
| @allure.link() | 定义连接 | 用于定义一个需要在测试报告中展示的连接 |
| @allure.attachment() | 附件 | 添加测试报告附件 |
allure报告在pytest中的用法
- @allure.feature():相当于一个功能,一个大的模块,将case分类到某个feature中,也可以了解为一级标题
- @allure.story():相当于对应这个功能或模块下的不同场景,分支功能,属于feature之下的结构,相当于二级标题
- 例如:一个登录的类,类中有方法a:用户名和密码正确;方法b:用户名错误;方法c:密码错误;
import allure @allure.feature("登录操作") class test_login(object): @allure.story("登录成功") def test_login_case1(self): print("用户名和密码正确") assert 1 @allure.story("登陆失败") def test_login_case2(self): print("用户名错误,密码正确") assert 0 @allure.story("登录失败") def test_login_case3(self): print("用户名正确,密码错误") assert 0报告显示为:
![]()
- @allure.title():相当于一个用例标题
import allure @allure.feature("登录用例") class test_login(object): @allure.title("正常登录") def test_login_case1(self): print("用户名和密码正确") assert 1 @allure.title("密码错误登录") def test_login_case2(self): print("用户名错误,密码正确") assert 0报告显示为:
![]()
- allure.description():用例描述
报告显示为:import allure @allure.feature("登录用例") class test_login(object): @allure.title("正常登录") @allure.description("这是一个正常登陆的用例") def test_login_case1(self): print("用户名和密码正确") assert 1 @allure.title("密码错误登录") @allure.description("这是一个密码错误的用例") def test_login_case2(self): print("用户名错误,密码正确") assert 0 @allure.title("用户名错误登录") @allure.description("这是一个用户名错误的用例") def test_login_case3(self): print("用户名正确,密码错误") assert 0![]()
- @allure.step():在用例中执行的操作步骤,会在该用例下显示测试步骤
import allure @allure.step("第一步:输入用户名和密码") def login_user_pwd(): print("输入用户名和密码") @allure.step("第二步:点击登录按钮") def login_denglu(): print("点击登录按钮") @allure.feature("登录用例") class test_login(object): @allure.title("正常登录") @allure.description("这是一个正常登陆的用例") def test_login_case1(self): login_user_pwd() print("用户名和密码正确") login_denglu() assert 1报告显示为:
注:@allure.step()显示用例的执行步骤,就算该用例执行失败了,也不会影响到其他用例的执行,并且会在步骤中显示出是某一步出现错误,如下: -
import allure @allure.step("第一步:输入用户名和密码") def login_user_pwd(name,pwd): print("输入用户名和密码") if name == "zhangsan" and pwd == 123: assert 1 else: assert 0 @allure.step("第二步:点击登录按钮") def login_denglu(): print("点击登录按钮") @allure.feature("登录用例") class test_login(object): @allure.title("密码错误登录") @allure.description("这是一个密码错误的用例") def test_login_case2(self): login_user_pwd("zhang",123) print("用户名错误,密码正确") login_denglu() assert 0 @allure.title("正常登录") @allure.description("这是一个正常登陆的用例") def test_login_case1(self): login_user_pwd("zhangsan",123) print("用户名和密码正确") login_denglu() assert 1报告显示为:
![]()
- @allure.severity():给用例划分优先级,但是一般当做缺陷等级来使用
- 用法:在执行的用例(方法或函数)上面加@allure.severity(allure.severity_level.BLOCKER)
- @allure.severity(allure.severity_level.BLOCKER):中断缺陷,程序无响应,无法执行下一步,对应我们的致命缺陷
- @allure.severity(allure.severity_level.CRITICAL):临界缺陷,功能点缺失等,对应我们的严重缺陷
- @allure.severity(allure.severity_level.NORMAL):普通缺陷,对应我们的一般缺陷
- @allure.severity(allure.severity_level.MINOR):次要缺陷,相当于有错别字等
- @allure.severity(allure.severity_level.TRIVIAL):轻微缺陷,对应我们的建议性缺陷
import allure @allure.step("第一步:输入用户名和密码") def login_user_pwd(name,pwd): print("输入用户名和密码") if name == "zhangsan" and pwd == 123: assert 1 else: assert 0 @allure.step("第二步:点击登录按钮") def login_denglu(): print("点击登录按钮") @allure.feature("登录用例") @allure.severity(allure.severity_level.CRITICAL) class test_login(object): @allure.title("密码错误登录") @allure.description("这是一个密码错误的用例") def test_login_case2(self): login_user_pwd("zhang",123) print("用户名错误,密码正确") login_denglu() assert 0 @allure.severity(allure.severity_level.NORMAL) @allure.title("正常登录") @allure.description("这是一个正常登陆的用例") def test_login_case1(self): login_user_pwd("zhangsan",123) print("用户名和密码正确") login_denglu() assert 1报告显示为:
![]()
![]()
- 例如:一个登录的类,类中有方法a:用户名和密码正确;方法b:用户名错误;方法c:密码错误;
注:其他的用法和上面示例都差不多,后面自己学习,如下面:
- @allure.step() 与with allure.step()的区别,with allure.step()的用法
- @allure.link()、@allure.issue()等等,可以参考开篇中的语法进行学习



注:@allure.step()显示用例的执行步骤,就算该用例执行失败了,也不会影响到其他用例的执行,并且会在步骤中显示出是某一步出现错误,如下:


浙公网安备 33010602011771号