Pytest自動化測試的具體使用
Pytest是Python中最流行的自動化測試框架之一,簡單易用,而且具有豐富的插件可以不斷擴(kuò)展其功能,同時也提供了豐富的斷言功能,使得編寫測試用例更靈活。
一、Pytest如何安裝
一般都使用pip來安裝:
pip install pytest
二、Pytest如何編寫用例
創(chuàng)建一個python文件(test_example.py),并編寫以下代碼:
# test_example.py
def add(a,b): # 定義函數(shù)
return a+b
def test_add(): # 編寫測試用例
assert add(1,2) == 3 # assert斷言三、Pytest如何運(yùn)行用例
打開終端,在對應(yīng)的工作目錄下,輸入命令:
pytest test_example.py
四、Pytest如何實(shí)現(xiàn)參數(shù)化
import pytest
def add(a, b):
return a + b
@pytest.mark.parametrize("a, b, expected", [(1, 2, 3), (0, 0, 0), (-1, 1, 0)])
def test_add(a, b, expected):
result = add(a, b)
assert result == expected五、Pytest如何跳過和標(biāo)記用例
import pytest
@pytest.mark.skip("This function is not completed yet")
def test_uncompleted_function():
pass
@pytest.mark.slow
def test_slow_function():
# 此處放慢測試的代碼
pass
六、Pytest如何失敗重執(zhí)行
首先安裝失敗重跑插件:pytest-rerunfailures
pip install pytest-rerunfailures
插件參數(shù):
命令行參數(shù):–reruns n(重新運(yùn)行次數(shù)),–reruns-delay m(等待運(yùn)行秒數(shù))
裝飾器參數(shù):reruns=n(重新運(yùn)行次數(shù)),reruns_delay=m(等待運(yùn)行秒數(shù))
如果想要重新執(zhí)行所有測試用例,直接輸入命令:
pytest --reruns 2 --reruns-delay 10 -s
上述首先設(shè)置了重新運(yùn)行次數(shù)為2,并且設(shè)置了兩次運(yùn)行之間等待10秒。
如果想重新運(yùn)行指定的測試用例,可通過裝飾器來實(shí)現(xiàn),命令如下:
import pytest
@pytest.mark.flaky(reruns=3, reruns_delay=5)
def test_example():
import random
assert random.choice([True, False, False])
七、Pytest如何使用夾具
首先創(chuàng)建夾具,代碼如下:
@pytest.fixture()
def test_example():
print('case執(zhí)行之前執(zhí)行')
yield
print('case執(zhí)行之后執(zhí)行')使用夾具方式1:通過參數(shù)引用
def test_case(test_example):
print('case運(yùn)行中')使用夾具方式2:通過函數(shù)引用
@pytest.mark.usefixtures('test_example')
def test_case():
print('case運(yùn)行中')八、Pytest如何進(jìn)行夾具共享
夾具共享:conftest.fy文件,可以跨多個文件共享夾具,而且在用例模塊中無需導(dǎo)入,pytest會自動發(fā)現(xiàn)conftest.py中的夾具。
fixture 優(yōu)先級:當(dāng)前所在模塊---> 當(dāng)前所在包的 conftest.py--->上級包的 conftest.py--->最上級的 conftest.py
九、Pytest如何設(shè)置夾具作用域
作用域執(zhí)行的優(yōu)先級:session > module > class > function
根據(jù)@pytest.fixture()中scope參數(shù)不同,作用域區(qū)分:
- function(函數(shù)):默認(rèn)值。每個測試用例函數(shù)執(zhí)行時都會執(zhí)行一次。
- class(類):不論有多少測試用例,整個類只會運(yùn)行一次。
- module(模塊):不論有多少測試用例,整個模塊(文件)下只運(yùn)行一次。
- package(包):不論有多少測試用例,整個包(文件夾)下只運(yùn)行一次。
- session:不論有多少測試用例,整個pytest下只會運(yùn)行一次。
到此這篇關(guān)于Pytest自動化測試的具體使用的文章就介紹到這了,更多相關(guān)Pytest自動化測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python基于回溯法子集樹模板解決數(shù)字組合問題實(shí)例
這篇文章主要介紹了Python基于回溯法子集樹模板解決數(shù)字組合問題,簡單描述了數(shù)字組合問題并結(jié)合實(shí)例形式分析了Python回溯法子集樹模板解決數(shù)字組合問題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
通過Folium在地圖上展示數(shù)據(jù)Python地理可視化的入門示例詳解
這篇文章主要介紹了通過Folium在地圖上展示數(shù)據(jù)Python地理可視化的入門,在本文中,我們介紹了如何使用Python中的Folium庫進(jìn)行地理可視化,通過Folium,我們可以輕松地創(chuàng)建交互式地圖,并在地圖上展示數(shù)據(jù)、繪制形狀、添加圖例和文本標(biāo)簽等,需要的朋友可以參考下2024-05-05
python 除法保留兩位小數(shù)點(diǎn)的方法
今天小編就為大家分享一篇python 除法保留兩位小數(shù)點(diǎn)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python3.10.4激活venv環(huán)境失敗解決方法
這篇文章主要介紹了Python3.10.4激活venv環(huán)境失敗解決方法的相關(guān)資料,需要的朋友可以參考下2023-01-01

