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文件;如下图