pytest+allure生成漂亮的可視化測試報告


前言:

最近在折騰web自動化,使用的是Python+selenium,使用pytest框架自帶的報告不太美觀,偶然間了解到Allure是免費開源的報告框架,之前在使用龍測自動化時有接觸過這個框架,很是方便和美觀,於是自己做了個demo,供參考。

Allure介紹:

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

  • Java
  • Python
  • JavaScript
  • Ruby
  • Groovy
  • PHP
  • .Net
  • Scala

環境說明:

win7系統

jdk 1.8

Python 3.7.7

pytest-5.4.3

plugins: allure-pytest-2.8.16

allure-commandline 2.11.0

安裝步驟:

1.這里需要Python環境,自行安裝Python庫,配置好環境變量即可(因為我已經安裝好了jdk 1.8,故此處省略,沒有安裝的小伙伴先要安裝和配置好jdk)

2.Allure依賴於Pytest框架,則需要先安裝Pytest和相關包(本次測試用的是win7系統):

  打開cmd,分別輸入pip install pytest,pip install allure-pytest,安裝成功即可

  注:網上很多資料說要安裝pytest-allure-adaptor,但是這個是allure 1用的,現在已經很少用了而且官方已不維護,我們用的是Allure 2,不需要安裝這個插件

3.下載allure-commandline,可以到git上下載(版本可以選擇新一點的,目前最新的版本是2020年4月的2.13.3版本)

下載地址:https://github.com/allure-framework/allure2/releases

 

 下載完成后解壓,得到bin目錄

 

 將bin目錄配置到系統變量path中

 

 配置好后,在cmd窗口中輸入:allure --version,顯示如下則表示安裝成功

 

 

接下來可以開始進行編碼了,這里用的是Pycharm:

代碼截圖如下:

 

 

原代碼如下:

import pytest
import allure
import os

@pytest.fixture(scope='function')
def login():
print("登錄")
yield
print("登錄完成")

@allure.feature('加入購物車')
def test_1(login):
'''將蘋果加入購物車'''
print("測試用例1")

@allure.feature('加入購物車')
def test_2():
'''將橘子加入購物車'''
print("測試用例2")

if __name__ == "__main__":
# 執行pytest單元測試,生成 Allure 報告需要的數據存在 /temp 目錄
pytest.main(['--alluredir', './temp'])
# 執行命令 allure generate ./temp -o ./report --clean ,生成測試報告
os.system('allure generate ./temp -o ./report --clean')

 

點擊右鍵,選擇run allure_test,如下圖

 

 用瀏覽器打開report目錄下的index.html文件

 

瀏覽器打開后如下圖:

 

 

 如果界面顯示全英文,可以設置成中文顯示,如下圖:

 

 

終端命令執行方法:

1.將如下代碼注釋掉(選中后按Ctrl+/)

2.點擊Pycharm左下角的Terminal,即進入終端命令窗口輸入:py.test -s -v allure_test.py --alluredir report

 

 

 

 執行結果如下:

 

 3.上面第2步已經生成了可供allure解析的文件,下面只需要解析成allure圖形顯示即可,在終端輸入: allure generate report/ -o report/html (html是report路徑下生成一個html文件夾,將解析結果放入html文件夾中)

執行成功,終端顯示如下圖:

 

4.打開html文件夾,右鍵index.html文件,選擇Open in Browser和瀏覽器,就可以顯示出對應的結果了

 

 

 


免責聲明!

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



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