Python Pytest框架(五)生成測試報告

2021-10-06 03:26:38 字數 3129 閱讀 6345

【忘了的話,來個pytest -h | findstr html,還可以輸出為文字:pytest -h > pytest_help.txt】

1、格式:pytest -sv --html=測試報告的路徑 要執行的檔案

例如:pytest -sv --html=report.html xfail_test.py

會自動在當前目錄生成html檔案和assets目錄,如下:

2、如果不想生成assets目錄,格式:pytest -sv --html=測試報告的路徑 --self-contained-html 要執行的檔案

1、pytest --alluredir=report(資料夾) ***.py:執行結果列印在終端,同時生成report資料夾,裡面是json格式的測試結果。

一直生成,就會一直疊加----->先清空目錄,再生成測試結果:pytest --alluredir=report --clean-alluredir ***.py

解壓,把d:\allure\allure-2.13.0\bin新增到環境變數path裡。

然後,重啟pycharm。

3、生成html格式的測試報告:

allure generate report(資料夾)----->預設存放在allure-report資料夾裡

allure generate report -o test_report----->指定存放在report資料夾裡

如果test_report資料夾已存在:

allure generate -c report -o test_report

4、網頁開啟

1、結果是xpass的,在報告裡顯示為pass

2、結果是xfail的,在報告裡顯示為skipped

import pytest

import allure

# 設定一條測試用例的每個步驟(方法1)

@allure.step("測試第一步")

def step_1():

pass

@allure.step("測試第二步")

def step_2():

pass

# 按照模組子模組或功能點子功能點, 對測試用例進行分組

@allure.epic('後台管理模組')

@allure.feature('登入功能點')

@allure.story('正常登入')

def test_a():

# 設定一條測試用例的每個步驟(方法2)

with allure.step("測試第一步"):

pass

with allure.step("測試第二步"):

assert 1 == 2

with allure.step("測試第三步"):

pass

@allure.epic('後台管理模組')

@allure.feature('登入功能點')

@allure.story('使用者名稱錯誤登入')

@allure.issue('')

@allure.testcase('')

# 設定測試用例的標籤, 可以設定多個

@allure.tag("回歸測試", "重要")

# 設定測試用例的級別 blocker > critical > normal > minor > trivial

@allure.title('測試登入:使用者名稱錯誤')

@allure.description('測試登入:測試用例描述資訊')

@allure.severity("blocker")

def test_b1():

step_1()

step_2()

@allure.epic('後台管理模組')

@allure.feature('商品管理')

def test_c():

assert 1 == 1

def test_d():

assert 1 == 2

def test_e():

assert 1 == 2

建立框架入口

import pytest

import os

if __name__ == '__main__':

result_dir = "./test_result"

report_dir = "./test_report"

# pytest.main() 相當於執行pytest命令

pytest.main(["-sv", "--alluredir=%s"%result_dir, "--clean-alluredir", "test_allure_markers.py"])

ret = os.system("allure generate --clean %s -o %s" % (result_dir, report_dir))

if ret:

print('生成測試報告失敗')

else:

print('生成測試報告成功')

Python pytest測試框架基本用法(一)

一 框架介紹及安裝 pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。安裝 pip install pytest 我這裡已經安裝成功了 二 框架使用流程 建立如下的原始碼檔案test one.py de...

python pytest測試框架介紹三

之前介紹了pytest以xunit形式來寫用例,下面來介紹pytest特有的方式來寫用例 如下 這裡使用的了pytest的特有的模式來寫用例,使用的方式是scope方式,scope支援多種,後面會介紹 這裡還使用了pytest的addfinalizer內建功能,具體可參見官網,用處是 在最後乙個測試...

Python Pytest框架(三)測試韌體 下

一 執行命令pytest fixture 可以列出當前所有可用的fixture,包括內建的 外掛程式中的 以及當前專案定義的。eg conftest.py和test 1.py在同一目錄下,要使用測試韌體login。conftest.py import pytest pytest.fixture de...