1. 程式人生 > 實用技巧 >Pytest系列(19)- 我們需要掌握的allure特性

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

一、前言

​ 前面我們介紹了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

直譯:分類

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

預設情況下,有兩類缺陷:

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