Pytest系列(19)- 我們需要掌握的allure特性


如果你還想從頭學起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

直譯:分類

通俗理解:測試用例結果的分類

默認情況下,有兩類缺陷:

  1. Product defects 產品缺陷(測試結果:failed)
  2. 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的話,可能就要禁用這些測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM