Python 自動化框架pytest的安裝與使用

2021-10-12 21:18:05 字數 2469 閱讀 2762

pytest可以用來做系統測試 的自動化, 它的特點如下:

直接執行如下命令即可安裝 pytest:

python3 -m pip install pytest
一般還需要產生測試報表,所以要安裝乙個第三方外掛程式pytest-html,使用如下命令安裝:

python3 -m pip install pytest-html
在pytest 框架中尋找測試項 的具體規則:

從這些檔案中,收集如下測試項:

如果我們希望 顯示測試**中print的內容,因為這些列印語句在除錯**時很有用,可以加上命令列引數 -s,如下

pytest -s
執行 pytest 時, 如果命令列沒有指定目標目錄 或者 檔案, 它會自動搜尋當前目錄下所有符合條件的檔案、類、函式。如果我們希望得到更詳細的執行資訊,包括每個測試類、測試函式的名字,可以加上引數 -v,這個引數可以和 -s 合併為 -sv,如下:

pytest -sv
為了防止 pytest 到其他目錄中找測試用例項,執行測試時,我們可以在命令列加上目標目錄 cases ,就是這樣

pytest cases
要產生報告,在命令列加上 引數--html=report.html --self-contained-html,如下

pytest cases --html=report.html
初始化和清除模組:這樣就會產生名為 report.html 的測試報告檔案,可以在瀏覽器中開啟。

如下定義 setup_module 和 teardown_module 全域性函式:

def setup_module():

print('\n *** 初始化-模組 ***')

def teardown_module():

print('\n *** 清除-模組 ***')

可以像這樣只挑選乙個模組執行:

pytest cases\登入\test_錯誤登入.py
pytest cases

也可以指定多個目錄

pytest cases1 cases2

指定乙個類

pytest cases\登入\test_錯誤登入.py::test_錯誤密碼

也可以指定類裡面的方法

pytest cases\登入\test_錯誤登入.py::test_錯誤密碼::test_c001001

可以使用 命令列引數 -k 後面加名字來挑選要執行的測試項

比如像這樣後面跟測試函式名字的一部分:

pytest cases

也可以指定多個目錄

pytest cases1 cases2

pytest -k c001001 -s

注意,-k 後面的名字

可以是測試函式的名字,可以是類的名字,可以是模組檔名,可以是目錄的名字

是大小寫敏感的

不一定要完整,只要能有部分匹配上就行

可以用 not 表示選擇名字中不包含,比如

pytest -k "not c001001" -s

可以用 and 表示選擇名字同時包含多個關鍵字,比如

pytest -k "錯 and 密碼2" -s

可以用 or 表示選擇名字 包含指定關鍵字之一即可,比如

pytest -k "錯 or 密碼2" -s

參考官方文件

可以這樣給 某個方法加上標籤 webtest

import pytest

class test_錯誤密碼2:

@pytest.mark.webtest

def test_c001021(self):

print('\n用例c001021')

assert 1 == 1

然後,可以這樣執行指定標籤的用例

pytest cases -m webtest -s

也可以這樣給整個類加上標籤

@pytest.mark.webtest

class test_錯誤密碼2:

def test_c001021(self):

print('\n用例c001021')

assert 1 == 1

可以這樣定義乙個全域性變數 pytestmark 為 整個模組檔案 設定標籤

import pytest

pytestmark = pytest.mark.網頁測試

如果你需要定義多個標籤,可以定義乙個列表

import pytest

pytestmark = [pytest.mark.網頁測試, pytest.mark.登入測試]

python自動化測試框架nose

python除了unittest,還有一款更快捷的nose,nose可以說是對unittest的一種簡化吧 但是他不需要unittest那種必須有固有的格式,他只需要檔案,類名,方法名等含有test就可以 unittest是需要手動來寫discover函式來遍歷用例的 官網位址 舉例說明,比如我有乙...

python自動化測試框架選擇

框架 framework 是整個或部分系統的可重用設計,框架是用來解決 的組織及執行控制問題的。在我們編寫自動化指令碼的時候,經常需要讀取配置檔案,讀取資料檔案,傳送請求,記錄日誌,連線並對比資料庫資料。每個指令碼裡都重寫一遍各種方法不僅工作量大而且易錯。所以我們需要把公共的方法提取出來,封裝成單獨...

python 自動化測試框架概述

怎麼樣的框架?資料驅動 資料與 分離 如何做到資料和 的分離?基礎資料 環境資料 資料庫資訊 配置資訊 都放在配置檔案裡 場景資料 測試用例都放在excel管理 乙個介面對應乙個.py檔案 測試用例包括了幾列?解釋 每一行對應一條測試用例 title 用例的描述,說明測試點 後面的幾列是api介面測...