1. 程式人生 > 其它 >allure用法(一)-配置資訊及基本用法

allure用法(一)-配置資訊及基本用法

allure是一個輕量級的,靈活的,支援多語言的測試報告工具

優點:

  • 可以為dev/qa 提供 詳盡的測試報告、測試步驟、日誌
  • 可以為管理層提供更好的統計報告
  • Java語言開發的
  • 可以整合到jenkins

配置資訊(顯示在測試報告中):

  1.environment.properties或environment.xml  自己在allure-results目錄下建立,存放環境資訊

         

 

   2.categories.json   測試結果的分類,預設有兩類缺陷,Product defects和 Test defects,同樣放在allure-results目錄下

[
  {
    
"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:測試用例執行的錯誤堆疊資訊,預設是 .*  正則匹配

      配置資訊在報告中的顯示(注意生成報告的目錄也要在allure-results目錄下,才可以看到environment資訊,否則會顯示為空)

         

 

 

執行: 

  • 安裝allure-pytest外掛
pip install allure-pytest
  • 執行

          先測試執行期間收集結果

           --alluredir 用於指定儲存執行結果的路徑

pytest [測試檔案] -s -q --alluredir=./result/

          檢視測試報告

allure serve ./result/

allure常用特性

在報告中檢視測試功能,子功能或場景,測試步驟,測試附加資訊

@feature  @story  @step  @attach

使用

  • import allure
  • 功能上加@allure.feature('功能名稱')
  • 子功能上加@allure.story('子功能名稱')
  • 步驟上加@allure.step('步驟細節')
  • @allure.attach('具體文字資訊'),需要附加的資訊,可以是資料、文字、圖片、視訊、網頁
  • feature相當於一個大功能,一個模組,將case分到某個feature中,story對應這個功能或模組下的不同場景,分支功能,feature和story類似父子關係

只測試某一功能時可以增加限制過濾

pytest 檔名 --allure-features '功能模組' --allure-stories '子功能模組'

allure-step

測試過程中每一個步驟,一般放在具體邏輯方法中,可以放在關鍵步驟

用法:

@allure.step() 只能以裝飾器的方式放在類或方法上面

 with allure.step():可以放在測試方法裡,測試步驟的程式碼需要被該語句包含

例如:

import pytest
import allure

@allure.feature("測試allure功能") class Test_param: @allure.story("測試子模組功能") # @myskip def test_param(self,a=1,b=2): with allure.step("測試a+b的值"): assert a+b == 3 print(a+b)

執行結果:

 

allure-link

 @allure.link(“連結地址”,name="")  name是為連結地址指定一個名稱

    @allure.link("http://www.baidu.com",name="百度一下")
    def test_link(self):
        print("測試連結")
        pass

執行結果: