allure测试报告的用例描述相关方法;如下图
allure标记用例级别severity
在做自动化测试的过程中,测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。
pytest结合allure框架可以对用例的等级做详细的划分。
allure对用例的等级划分成五个等级:
- blocker 阻塞缺陷(功能未实现,无法下一步)
- critical 严重缺陷(功能点缺失)
- normal 一般缺陷(边界情况,格式错误)
- minor 次要缺陷(界面错误与ui需求不符)
- trivial 轻微缺陷(必须项无提示,或者提示不规范)
写法一:
@allure.severity("blocker")
@allure.severity("critical")
@allure.severity("normal")
@allure.severity("minor")
@allure.severity("trivial")
写法二:
@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.Trival)
如果想根据用例等级去执行用例可以使用下面的参数:
allure命令行参数allure-severities
pytest --alluredir=./report/allure --allure-severities=blocker
pytest --alluredir=./report/allure --allure-severities=blocker,critical
执行代码如下:
import os
import pytest
# 根据优先级过滤 --allure-severities=blocker,normal
pytest.main(['-s','-v','--alluredir=./allure_json_path','--clean-alluredir','--allure-severities=blocker'])
os.system('allure generate %s -o %s --clean'%('./allure_json_path','./allure_html_path'))
敏捷模型中的常用概念
allure测试报告用例描述相关方法实战
1、使用pycharm工具新建一个项目test_suites,在该目录下新建login_module模块、product_module模块,如下图
2、在login_module模块下新建 test_login.py文件下
代码如下:
import allure
# 用例步骤 写法一 用例步骤可写在公有层
@allure.step('步骤一:打开小叮当电商登录界面')
def step_01():
pass
# epic 项目名称描述
@allure.epic('[epic] 小叮当电商系统')
# feature 项目版本
@allure.feature('[feature] 小叮当电商系统_V1.0')
class TestLogin:
# 用例模块
@allure.story('[story] 用户登录模块')
# 用例标题
@allure.title('[Title] 验证正确的用户名和密码能否成功登录')
# 管理测试用例的链接地址
@allure.testcase(url='http://47.107.187.45/zentao/www/index.php?m=testcase&f=view&caseID=17&version=1',name='用例连接')
# 管理缺陷的链接地址
@allure.issue(url='http://47.107.187.45/zentao/www/index.php?m=bug&f=browse&productID=4',name='缺陷地址')
# 用例描述
@allure.description('登录测试用例 执行人:小白')
# 定义一个链接
@allure.link(url='https://www.baidu.com/',name='百度搜素')
# 用例等级 blocker、critical、normal、minor、trivial
# @allure.severity('normal') # 用例等级写法1
# 用例等级 blocker、critical、normal、minor、trivial
@allure.severity(allure.severity_level.BLOCKER) # 用例等级写法2
def test_login_case_01(self):
step_01()
# 用例步骤 写法二 用例步骤可写在方法内部
with allure.step('步骤二:输入用户名admin'):
pass
with allure.step('步骤三:输入密码123456'):
pass
# @allure.attach 报告添加附件
with open('C:/Users\Jeff\PycharmProjects\APP_AUTO_DEMO/test_suites\login_module/test.jpeg', 'rb') as img_file:
img_file_obj = img_file.read()
allure.attach(img_file_obj,'测试报错截图',allure.attachment_type.JPG)
print("TestLogin test_login_case_01",end=' ')
assert True
@allure.story('[story] 用户登录模块')
@allure.title('[Title] 验证错误的用户名和密码能否正确处理')
def test_login_case_02(self):
print("TestLogin test_login_case_02",end=' ')
assert True
3、在product_module模块下新建test_product.py文件
代码如下:
import allure
@allure.epic('[epic] 小叮当电商系统')
@allure.feature('[feature] 小叮当电商系统_V1.0')
class TestProduct:
@allure.story('[story] 商品模块')
@allure.title('[Title] 验证能够成功添加商品到购物车')
def test_product_case_01(self):
print("TestProduct test_product_case_01",end=' ')
assert True
@allure.story('[story] 商品模块')
@allure.title('[Title] 验证商品能成功支付')
def test_product_case_02(self):
print("TestProduct test_product_case_02",end=' ')
assert True
4、在项目test_suites根目录下新建执行文件run_cases.py
代码如下:
import os
import pytest
pytest.main(['-s','-v','--alluredir=./allure_json_path','--clean-alluredir'])
os.system('allure generate %s -o %s --clean'%('./allure_json_path','./allure_html_path'))
5、执行run_cases.py文件,在项目test_suites目录下生成两个目录文件夹 allure_json_path和allure_html_path
allure_json_path目录下生的是allure测试报告的json数据源
allure_html_path目录下生成的是allure测试报告html
如下图:
使用谷歌浏览器打开allure_html_path目录下index.html文件;如下图