Pytest系列(19)- 我們需要掌握的allure特性
阿新 • • 發佈:2020-11-25
一、前言
前面我們介紹了allure的快速入門,只是單純的敲allure命令而已
其實allure還有內建的特性可以讓我們在pytest程式碼裡面用起來,然後我們生成的報告更加直觀、詳細、貼合管理層的心意...
二、Environment
可以理解成環境變數引數
,沒有什麼實際作用,個人覺得只是為了讓別人知道本次測試的執行環境引數而已,顯示啥都是自己定的
注意!!預設是沒有的哦
三、如何新增Environment呢
通過建立environment.properties或者environment.xml檔案,並把檔案存放到allure-results(這個目錄是生成最後的html報告之前,生成依賴檔案的目錄)目錄下,就是 --alluredir
像我這裡目錄就是allure,所以放在allure下面 --alluredir allure
3.1 environment.properties
Browser=Chrome
Browser.Version=81.0.4044.92
Stand=Production
ApiUrl=127.0.0.1/login
python.Version=3.7.2
3.2 environment.xml
<environment> <parameter> <key>Browser</key> <value>Chrome</value> </parameter> <parameter> <key>Browser.Version</key> <value>81.0.4044.92</value> </parameter> <parameter> <key>Stand</key> <value>Production</value> </parameter> <parameter> <key>ApiUrl</key> <value>127.0.0.1/login</value> </parameter> <parameter> <key>python.Version</key> <value>3.7.2</value> </parameter> </environment>
注意!都不可以寫中文哦!!!!親測!!會亂碼
3.3 執行之後,我們看看allure報告的environment
四、Categories
直譯:分類
通俗理解:測試用例結果的分類
預設情況下,有兩類缺陷:
- Product defects 產品缺陷(測試結果:failed)
- Test defects 測試缺陷(測試結果:error/broken)
我們是可以建立自定義缺陷分類的,將 categories.json
檔案新增到allure-results目錄即可(和上面environment.properties放同一個目錄)
4.1 categories.json
[ { "name": "Ignored tests", "matchedStatuses": ["skipped"] }, { "name": "Infrastructure problems", "matchedStatuses": ["broken", "failed"], "messageRegex": ".*bye-bye.*" }, { "name": "Outdated tests", "matchedStatuses": ["broken"], "traceRegex": ".*FileNotFoundException.*" }, { "name": "Product defects", "matchedStatuses": ["failed"] }, { "name": "Test defects", "matchedStatuses": ["broken"] } ]
4.2 講下引數的含義
- name:分類名稱
- matchedStatuses:測試用例的執行狀態,預設["failed", "broken", "passed", "skipped", "unknown"]
- messageRegex:測試用例執行的錯誤資訊,預設是 .* ,是通過正則去匹配的哦!
- traceRegex:測試用例執行的錯誤堆疊資訊,預設是 .* ,也是通過正則去匹配的哦!
注意
這裡的name是可以寫中文的哦!
五、Flaky test
用法:在類或者方法上直接加 @Flaky
官方也說了:可以將整個測試類標記為Flaky
那什麼是Flaky呢?
- 簡單來說就是,不夠穩定的測試用例集,有可能前陣子還執行成功,過陣子就執行失敗,理解成“閃爍”
- 標記成Flaky的好處就是:當用例失敗的情況下,我們能獲取足夠詳細的資訊,畢竟有可能某些測試用例是非常重要的
- 如果不標記為Flaky的話,可能就要禁用這些測試