Allure測試報告框架幫助你輕松實現”高大上”報告展示。本文通過示例演示如何從0到1集成Allure測試框架。重點展示了如何將Allure集成到已有的自動化測試工程中、以及如何實現報表的優化展示。Allure非常強大,支持多種語言多種測試框架,無論是Java/Python還是Junit/TestNG,其他語言或者框架實現的流程和本文一致,具體配置參照各語言框架規范
安裝
安裝allure
Windows用戶:
- scoop install allure??? (需要先下載并安裝Scoop,該方法無需配置環境變量)
MAC用戶:
- 通過Homebrew進行自動安裝
- brew install allure?? (如果Homebrew版本比較舊,需要先升級Homebrew,否則安裝的allure版本也很老,可能會與Python插件不兼容)
手動安裝:
- 可以從官網?Central Repository: io/qameta/allure/allure-commandline?手動下載
- 目前最新版本為2.13.6???
下載后解壓并配置環境變量
安裝allure-pytest插件
- pip install allure-pytest
allure常用特性
希望在報告中看到測試功能,子功能或場景,測試步驟,包括測試附加信息可以使用@feature,@story,@step,@attach
步驟:
- import allure
- 功能上加@allure.feature("功能名稱")
- 子功能上加@allure.story("子功能名稱")
- 步驟上加@allure.step("步驟細節")
- @allure.attach("具體文本信息"),需要附加的信息,可以是數據,文本,圖片,視頻,網頁
- 如果只測試部分功能運行的時候可以加限制過濾:
- pytest 文件名 --allure-features "需要運行的功能名稱"?
allure特性—feature/story
@allure.feature與@allure.store的關系
- feature相當于一個功能,一個大的模塊,將case分類到某個feature中,報告中在behaviore中顯示,相當于testsuite
- story相當于對應這個功能或者模塊下的不同場景,分支功能,屬于feature之下的結構,報告在features中顯示,相當于testcase
- feature與story類似于父與子關系
step特性
- 測試過程中每個步驟,一般放在具體邏輯方法中
- 可以放在關鍵步驟中,在報告中顯示
- 在app,web自動化測試中,建議每切換到一個新的頁面當做一個step
- 用法:
- @allure.step() 只能以裝飾器的形式放在類或方法上面
- with allure.step():? 可以放在測試用例方法里面,但測試步驟的代碼需要被該語句包含
運行:
在測試執行期間收集結果
pytest [測試文件] -s -q --alluredir=./result --clean-alluredir
- --alluredir這個選項,用于指定存儲測試結果的路徑
- --clean-alluredir 這個選項用來清除之前生成的結果
查看測試報告:
方法一:測試完成后查看實際報告,在線看報告,會直接打開默認瀏覽器展示當前報告
allure serve ./result
方法二:從結果生成報告,這是一個啟動tomcat的服務,需要兩個步驟
生成報告:
allure generate ./result -o ./report --clean?? (注意:--clean用來清除之前已生成的報告)
打開報告:
allure open -h 127.0.0.1 -p 8883 ./report?? (該方法直接生成一個tomcat服務,可遠程訪問)
舉個例子:
有如下代碼文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
依次執行命令:
pytest test_allure.py --alluredir=./result --clean-alluredir
allure serve ./result
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
生成的報告:
allure特性-testcase
關聯測試用例(可以直接給測試用例的地址鏈接)
例子:
1 2 3 4 |
|
按重要性級別進行一定范圍測試
通常測試有P0、冒煙測試、驗證上線測試。按重要性級別來執行的,比如上線要把主流程和重要模塊都跑一遍,可通過以下方法解決
通過附加@pytest.mark標記
通過allure.feature,allure.story
也可以通過allure.severity來附加標記
- 級別:
- trivial:不重要,輕微缺陷(必輸項無提示,或者提示不規范)
- minor 不太重要,次要缺陷(界面錯誤與UI需求不符)
- normal:正常問題,普通缺陷(數值計算錯誤)
- critical:嚴重,臨界缺陷(功能點缺失)
- blocker:阻塞,中斷缺陷(客戶端程序無響應,無法執行下一步操作)
使用方法:
在方法、函數和類上面加 @allure.severity(allure.severity_level.TRIVIAL)
執行:
pytest -s -v 文件名 --allure-severities normal,critical
舉例說明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
執行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
終極用例:
百度搜索:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
執行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
報告:
?現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:485187702【暗號:csdn11】
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走!?希望能幫助到你!【100%無套路免費領取】