手把手教你搭建Pytest+Allure2.X環境詳細教程,生成讓你一見鍾情的測試報告(非常詳細,非常實用)

  • 2019 年 10 月 3 日
  • 筆記

簡介

 宏哥之前在做接口自動化的時候,用的測試報告是HTMLTestRunner,雖說自定義模板後能滿足基本訴求,但是仍顯得不夠檔次,高端,大氣,遂想用其他優秀的report框架替換之。一次偶然的機會,在一個QQ群里看到Allure的測試報告,真的是一見鍾情,特別的喜歡。但是由於時間的原因就沒有自己實踐一下,乘着國慶假期,自己特抽時間做了一番探索。

Allure介紹

Allure是一種靈活的輕量級多語言測試報告工具,它不僅可以以簡潔的Web報告形式非常簡潔地顯示已測試的內容,而且還允許參與開發過程的每個人從日常執行中提取最大程度的有用信息。

從開發/質量保證的角度來看,Allure報告可以縮短常見缺陷的生命周期:可以將測試失敗劃分為bug和殘破的測試,還可以配置日誌,步驟,固定裝置,附件,時間,歷史記錄以及與TMS的集成以及Bug跟蹤系統,因此負責任的開發人員和測試人員將掌握所有信息。

從管理者的角度來看,Allure提供了一個清晰的“全局”,涵蓋了所涵蓋的功能,缺陷聚集的位置,執行時間表的外觀以及許多其他方便的事情。魅力的模塊化和可擴展性確保您始終可以微調某些東西,以使魅力更適合您。

一睹Allure風采

在展開Allure詳述前,先上一份測試報告,報告主要包含總覽、類別、測試套件、圖表、時間刻度、功能、包等7大部分,支持自定義諸多信息,包括附件添加、缺陷鏈接、案例鏈接、測試步驟、Epic、Feature、Story、Title、案例級別等,相當強大。

想要詳細了解Allure的小夥伴和童鞋們,可以訪問這個網址:https://demo.qameta.io/allure

總覽

 類別

測試套

圖表

時間刻度

功能

 

1. pytest的安裝:(這裡着重介紹Windows)

pytestpython的一個第三方單元測試框架,在這裡用於生成原始的執行結果。

一定別選最新的,4.0.2親測可用,否則會跳到坑二;還有項目名千萬別以pytest開頭

1.1. windows下:

pip install pytest

出現如下圖所示,pytest安裝成功

1.2. linux下:

pip install pytest

2. 安裝pytest-allure-adaptor插件

據了解,安裝pytest-allure-adaptor。這個第三方庫已經過時了,無法和現有的pytest搭配使用。宏哥這個先安裝後期遇到問題再去處理。

最新的安裝需要下面這個:

allure-pytest是python的一個第三方庫。用於連接pytest和allure,使它們可以配合在一起使用。
allure-pytest基於pytest的原始執行結果生成適用於allure的json格式結果。該json格式結果可以用於後續適用allure生成html結果。

2.1. windows下:

pip install pytest-allure-adaptor

 出現如下圖所示,pytest-allure-adaptor安裝成功

3. allure的安裝:

3.1. windows下:

前情提示: allure是基於Java的一個程序,需要Java1.8+的環境,沒有安裝需要去安裝一下。

Windows下不能直接安裝,點擊此鏈接下載壓縮包

或者到這個網址:https://github.com/allure-framework/allure2/releases/  、https://bintray.com/qameta/generic/allure2下載你需要的版本的安裝包

下載之後,將壓縮包解壓到一個磁盤中,我這裡用的是D盤

3.2. 配置allure的環境變量

 

 

 將此路徑:D:softwareallure-2.13.0bin,用老辦法配置到path中

 

點擊確定,保存。這樣就可以通過CMD使用allure命令

3.3. 編寫測試文件

pycharm新建一個test_demo.py文件,代碼如下:

# coding=utf-8  # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行    # 2.注釋:包括記錄創建時間,創建人,項目名稱。  '''  Created on 2019-9-29  @author: 北京-宏哥   QQ交流群:707699217  Project:手把手教你搭建Pytest+Allure2.X環境詳細教程,生成讓你一見鍾情的測試報告(非常詳細,非常實用)  '''  # 3.導入模塊  import allure      # @allure.MASTER_HELPER.feature("測試Dome")  @allure.feature("測試Demo")  class TestDome(object):        #@@allure.MASTER_HELPER.step("定義被測函數")      @allure.step("定義被測函數")      def func(self, x):          return x+1        #@allure.MASTER_HELPER.story("被測場景")      @allure.story("被測場景")      #@allure.MASTER_HELPER.severity("blocker")      @allure.severity("blocker")      #@allure.MASTER_HELPER.step("斷言結果")      @allure.step("斷言結果")      def test_func(self):          # with allure.MASTER_HELPER.step("斷言結果"):          #allure.MASTER_HELPER.attach("預期結果", "{}".format(self.func(3)))          allure.attach("預期結果", "{}".format(self.func(3)))          #allure.MASTER_HELPER.attach("實際結果", "{}".format(5))          allure.attach("實際結果", "{}".format(5))          assert self.func(3) == 5

3.4. 生成測試報告

pycharm中打開terminal

 輸入命令pytest -s --alluredir=report

運行後,無上述錯誤,同時會生成一個report文件。其中會有一個json格式的報告:

當然json格式的報告不夠直觀,我們需要通過allure將它轉成HTML格式的報告。通過cmd命令cdreport的根目錄下,執行allure generate --clean report

 

回到根目錄下,會生成一個allure-report的文件夾,在pycharm中打開文件夾,點擊index.html運行

 

ok,到此為止。可以看到我們的精美的測試報告了

 

注⚠️:直接用chrome瀏覽器打開報告,報告可能會是空白頁面。
解決辦法:
1、在pycharm中右擊index.html選擇打開方式Open in Browser就可以了。
2、使用Chrome直接打開index.html。

小結

1.安裝pytest-allure-adaptor後,運行報錯:AttributeError: module ‘pytest’ has no attribute ‘allure’

原因:因為pytest-allure-adaptor庫基本被python3放棄了,運行很不友好,反正我運行就是報錯

解決方法:

先卸載:pip uninstall pytest-allure-adaptor

再安裝:pip install allure-pytest

然後再去對應case的文件夾下面cmd裏面運行: pytest -s -q –alluredir  report  (可以改為你想設的路徑,如果是report默認當前目錄下),就會生成report文件夾了

2.輸入命令pytest -s --alluredir=report,會遇到以下這個錯誤:

進入allure下面的utils文件,修改以下代碼:

# utils文件,可以通過from allure import utlis進入    for suitable_name in suitable_names:              # markers.append(item.get_marker(suitable_name))              markers.append(item.get_closest_marker(suitable_name))

 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!(點擊右邊的小球即可!(^__^) 嘻嘻……)