前言
我们在做功能测试的时候,执行完一轮测试用例,输出测试报告的时候,会有统计缺陷的数量和等级。在做自动化测试的过程中,当你的测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。
pytest结合allure框架可以对用例的等级做详细的划分。
用例等级
allure对用例的等级划分成五个等级
- blocker 阻塞缺陷(功能未实现,无法下一步)
- critical 严重缺陷(功能点缺失)
- normal 一般缺陷(边界情况,格式错误)
- minor 次要缺陷(界面错误与ui需求不符)
- trivial 轻微缺陷(必须项无提示,或者提示不规范)
pytest用例
根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别
#test_answers.py import allure @allure.severity("normal") def test_1(): '''测试某某11''' print("test_1 111") @allure.severity("critical") def test_2(): '''测试某某22''' print("test_2 222") @allure.severity("blocker") def test_3(): print("test_3") @allure.severity("critical") def test_4(): print("test_4 444") def test_5(): '''测试某某55''' print("test_5 555") def test_6(): print("test_6 666")
cd到该脚本的目录,执行用例,查看报告
pytest --alluredir ./report/allure #执行用例 allure serve ./report/allure #查看报告
查看报告详情
统计缺陷
如果执行用例的过程中有测试用例不通过的情况,也可以统计缺陷的严重等级
#test_answers.py import allure @allure.severity("normal") def test_1(): '''测试某某11''' print("test_1 111") @allure.severity("critical") def test_2(): '''测试某某22''' print("test_2 222") assert False @allure.severity("blocker") def test_3(): print("test_3") @allure.severity("critical") def test_4(): print("test_4 444") def test_5(): '''测试某某55''' print("test_5 555") assert 1==2 def test_6(): print("test_6 666")
重新执行用例,查看报告-图表
allure命令行参数allure-severities
pytest -h|more 可以查看到allure相关的几个命令行参数
如果有很多测试用例,现在只想做个快速的回归测试,只测试用例级别为blocker和critical级别的测试用例
pytest --alluredir ./report/allure --allure-severities blocker,critical
也可以这样写
pytest --alluredir=./report/allure --allure-severities=blocker,critical
如果只执行blocker级别的用例
pytest --alluredir=./report/allure --allure-severities=blocker