如果你還想從頭學起Pytest,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1690628.html
前言
前面我們介紹了allure的快速入門,只是單純的敲allure命令而已
其實allure還有內置的特性可以讓我們在pytest代碼里面用起來,然后我們生成的報告更加直觀、詳細、貼合管理層的心意...
Environment
可以理解成環境變量參數,沒有什么實際作用,個人覺得只是為了讓別人知道本次測試的運行環境參數而已,顯示啥都是自己定的
注意!!默認是沒有的哦
如何添加Environment呢
通過創建environment.properties或者environment.xml文件,並把文件存放到allure-results(這個目錄是生成最后的html報告之前,生成依賴文件的目錄)目錄下,就是 --alluredir 后面跟的目錄
像我這里目錄就是allure,所以放在allure下面 --alluredir allure
environment.properties
Browser=Chrome Browser.Version=81.0.4044.92 Stand=Production ApiUrl=127.0.0.1/login python.Version=3.7.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>
注意!都不可以寫中文哦!!!!親測!!會亂碼
運行之后,我們看看allure報告的environment
Categories
直譯:分類
通俗理解:測試用例結果的分類
默認情況下,有兩類缺陷:
- Product defects 產品缺陷(測試結果:failed)
- Test defects 測試缺陷(測試結果:error/broken)
我們是可以創建自定義缺陷分類的,將 categories.json 文件添加到allure-results目錄即可(和上面environment.properties放同一個目錄)
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"] } ]
講下參數的含義
- name:分類名稱
- matchedStatuses:測試用例的運行狀態,默認["failed", "broken", "passed", "skipped", "unknown"]
- messageRegex:測試用例運行的錯誤信息,默認是 .* ,是通過正則去匹配的哦!
- traceRegex:測試用例運行的錯誤堆棧信息,默認是 .* ,也是通過正則去匹配的哦!
注意
這里的name是可以寫中文的哦!
Flaky test
用法:在類或者方法上直接加 @Flaky
官方也說了:可以將整個測試類標記為Flaky
那什么是Flaky呢?
- 簡單來說就是,不夠穩定的測試用例集,有可能前陣子還運行成功,過陣子就運行失敗,理解成“閃爍”
- 標記成Flaky的好處就是:當用例失敗的情況下,我們能獲取足夠詳細的信息,畢竟有可能某些測試用例是非常重要的
- 如果不標記為Flaky的話,可能就要禁用這些測試