手把手教你搭建Pytest+Allure2.X環境詳細教程,生成讓你一見傾心的測試報告 - 01(很是詳細,很是實用)

簡介

 宏哥以前在作接口自動化的時候,用的測試報告是HTMLTestRunner,雖然說自定義模板後能知足基本訴求,可是仍顯得不夠檔次,高端,大氣,遂想用其餘優秀的report框架替換之。一次偶然的機會,在一個QQ羣裏看到Allure的測試報告,真的是一見傾心,特別的喜歡。可是因爲時間的緣由就沒有本身實踐一下,乘着國慶假期,本身特抽時間作了一番探索。html

Allure介紹

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

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

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

一睹Allure風采

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

想要詳細瞭解Allure的小夥伴和童鞋們,能夠訪問這個網址:https://demo.qameta.io/allureweb

總覽

 類別

測試套

圖表

時間刻度

功能

 

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

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

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

1.1. windows下:

pip install pytest

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

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:\software\allure-2.13.0\bin,用老辦法配置到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瀏覽器打開報告,報告可能會是空白頁面。
解決辦法:
一、在pycharm中右擊index.html選擇打開方式Open in Browser就能夠了。
二、使用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))
 

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

相關文章
相關標籤/搜索