###Pytest自動化測試框架學習筆記###01

Pytest

pytest是一個非常成熟的全功能的Python測試框架,主要有以下幾個特點:

簡單靈活,容易上手

支持參數(shù)化

能夠支持簡單的單元測試和復雜的功能測試,還可以用來做selenium/appnium等自動化測試、接口自動化測試(pytest+requests)

pytest具有很多第三方插件,并且可以自定義擴展,比較好用的如pytest-selenium(集成selenium)、pytest-html(完美html測試報告生成)、pytest-rerunfailures(失敗case重復執(zhí)行)、pytest-xdist(多CPU分發(fā))等

測試用例的skip和xfail處理

可以很好的和jenkins集成

report框架----allure 也支持了pytest

安裝Pytest

pip install -U pytest

Pytest用例設計原則

測試類以Test開頭,并且不能帶有init方法

以test_開頭的函數(shù)

以Test開頭的類

所有的包pakege必須要有__init__.py文件

斷言使用assert

運行Pytest的兩種方式

Pycharm里代碼運行

pytest.main(["test.py"])

Pycharm里代碼運行

pytest test.py

# 運行指定類下的指定方法

pytest 文件名::類名::方法名

Pytest參數(shù)說明

-v 說明:可以輸出用例更加詳細的執(zhí)行信息,比如用例所在的文件及用例名稱等

-s 說明:輸入我們用例中的調(diào)式信息,比如print的打印信息等

-x:遇到錯誤的用例,立即退出執(zhí)行,并輸出結(jié)果

-v:表示查看詳細的報告內(nèi)容

-collect-only:表示把待執(zhí)行的用例全部展示出來

-lf:只執(zhí)行上次失敗的用例

-vv :顯示詳細的測試結(jié)果

-tb=no:不展示用例失敗的錯誤詳情

-tb=line:展示用例失敗的代碼具體行數(shù)

-tb=short:展示更加詳細的錯誤信息

-k "關(guān)鍵字" 說明:執(zhí)行用例包含“關(guān)鍵字”的用例

-q 說明:簡化控制臺的輸出,可以看出輸出信息和上面的結(jié)果都不一樣, 下圖中有兩個..點代替了pass結(jié)果

-maxfail=num 當用例錯誤達到指定數(shù)量時,停止測試

m 說明:執(zhí)行特定的測試用例。我們再次修改一下我們的用例,并添加一個新的用例

# 如果要運行多個標識的話,用表達式,如下

pytest -m "slow or faster" test_1.py? 運行有slow標識或 faster標識用例

pytest -m "slow and faster" test_1.py 運行有slow和faster標識的用例

pytest -m "slow and not faster" test_1.py 運行有slow和沒有faster標識的用例

注意:-m后面不能帶''號(單引號),只能帶“”(雙引號),不然識別不到

ini配置文件

創(chuàng)建pytest.ini文件(固定寫法)

[pytest];固定寫法

;變量名不能錯

addopts=-vv -s ;多個參數(shù)中間空格

testpaths=../HC/huace ;多個目錄中間空格

python_files=test*.py ;python文件前綴,可自定義

python_classes=huace ;指定類名

python_functions=test* ;指定方法名,可自定義

跳過測試函數(shù)

跳過測試函數(shù): 根據(jù)特定的條件,不執(zhí)行標識的測試函數(shù)

# -*- coding: utf-8 -*-

import pytest

class Test():

? ? def test(self):

? ? ? ? print("執(zhí)行的是testcase的用例")

@pytest.mark.skipif(condition=1<2,reason="1不大于2,所以不執(zhí)行")

class huace():

? ? def haha(self):

? ? ? ? print("執(zhí)行的是haha方法里面的用例")


文章首發(fā)于微信公眾號:程序員一凡

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容