如果你還想從頭學起Pytest,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1690628.html
前言
- 平時寫測試用例也會劃分優先順序
- 同樣,allure 也提供用例級別,在 allure 報告可以清晰看到不同級別用例的缺陷數量
用例等級介紹
allure 提供的列舉類
等級介紹
- blocker:阻塞缺陷(功能未實現,無法下一步)
- critical:嚴重缺陷(功能點缺失)
- normal: 一般缺陷(邊界情況,格式錯誤)
- minor:次要缺陷(介面錯誤與ui需求不符)
- trivial: 輕微缺陷(必須項無提示,或者提示不規範)
實際栗子
測試程式碼
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020-04-19 14:50 __Author__ = 小菠蘿測試筆記 __Blog__ = https://www.cnblogs.com/poloyy/ """ import allure def test_with_no_severity_label(): pass @allure.severity(allure.severity_level.TRIVIAL) def test_with_trivial_severity(): pass @allure.severity(allure.severity_level.NORMAL) def test_with_normal_severity(): pass @allure.severity(allure.severity_level.NORMAL) class TestClassWithNormalSeverity(object): def test_inside_the_normal_severity_test_class(self): """ 測試類優先順序 normal;看看測試用例是否會自動繼承優先順序 """ print() @allure.severity(allure.severity_level.CRITICAL) def test_inside_the_normal_severity_test_class_with_overriding_critical_severity(self): """ 測試類優先順序 normal 測試用例優先順序 critical """ pass @allure.severity("normal") def test_case_1(): """ normal 級別測試用例 """ print("test case 11111111") @allure.severity("critical") def test_case_2(): """ critical 級別測試用例 """ print("test case 222222222") @allure.severity("blocker") def test_case_3(): """ blocker 級別測試用例 """ print("test case 4444444") @allure.severity("minor") def test_case_4(): """ minor 級別測試用例 """ print("test case 11111111") def test_case_5(): """ 沒標記 severity 的用例預設為 normal""" print("test case 5555555555")
allure 報告
測試用例詳情
多了個 severity 欄位
統計圖表
可以看到不同 severity 測試用例執行的統計資料
必然測試失敗的測試程式碼
將上面程式碼的三個測試用例故意讓它測試失敗
@allure.severity("normal") def test_case_1(): """ normal 級別測試用例 """ assert (1 == 2) @allure.severity("critical") def test_case_2(): """ critical 級別測試用例 """ assert (1 == 2) @allure.severity("blocker") def test_case_3(): """ blocker 級別測試用例 """ assert (1 == 2)
再來看看 allure 報告的統計圖表
- 這裡用的是中文報告,其實可以看到 severity 官方是翻譯為優先順序,但是如果自己去翻譯軟體翻譯的話是嚴重程度,我個人更偏向於理解為優先順序
- 會同時顯示同一個優先順序的失敗、通過用例數,以及哪條用例是失敗、通過的
命令列引數 allure-severities
當然,也可以根據優先順序選擇需要執行的測試用例
具體栗子
仍然是上面的程式碼,開啟 cmd
# 只執行 severity=blocker、critical 的測試用例 pytest test_severity.py -sq --alluredir=./allure --allure-severities=blocker,critical # 寫法二 pytest test_severity.py -sq --alluredir=./allure --allure-severities blocker,critical
執行結果
severi=blocker、critical 的測試用例就三條,可以看看上面的程式碼