pytest功能
支援引數化
簡單的單元測試
複雜的功能測試
介面測試:pytest+requests
具有很多第三方外掛程式,並且可以自定義擴充套件
pytest-selenium(整合selenium)
pytest-html(完美html測試報告生成)
pytest-rerunfailures(失敗case重複執行)
pytest生成測試報告,參考:
環境搭建
# 先安裝依賴
pip install py colorama
# 依次安裝
pip install -u pytest
pip install -u pytest-html
pip install -u pytest-rerunfailures
失敗自動重跑引數:–lf
–if引數(last fail):執行上次執行失敗的測試用例,如果沒有失敗用例則執行全部測試用例。
使用方式:在執行函式或命令列中傳入引數: --lf 即可。
荔枝:我們的測試用例正常寫即可,其中第二條用例是會執行失敗的;在程式的入**們顯示通過pytest.main()方法正常執行了一次測試,然後又通過pytest.main()執行了上次測試失敗的用例。
#檔名是test_firstfile.py
#coding=utf-8
import pytest
@pytest.fixture()
def myfixture():
print("執行myfixture")
class test_pytest():
def test_one(self):
print("test_one方法執行" )
assert 1==1
def test_two(self):
print("test_two方法執行" )
assert "s" in "love"
def test_three(self,myfixture):
print("test_three方法執行" )
assert 3-1==2
if __name__=="__main__":
pytest.main(['-s','test_firstfile.py'])
pytest.main(['-s','--lf','test_firstfile.py'])
執行結果如下圖:我們可以看到第一執行測試中我們的第二個用例失敗了;第二次只執行了第二個測試用例。
引數:–ff
–ff引數(fail first):執行所有的測試用例,上次執行失敗的用例優先執行。
使用方式:在執行函式或命令列中傳入引數: --ff 即可。
荔枝:測試用例部分和上面的一樣,便不再展示。
if __name__=="__main__":
pytest.main(['-s','test_firstfile.py'])
pytest.main(['-s','--ff','test_firstfile.py'])
執行結果如下圖:可以看到第一次執行我們的第二條用例執行失敗了;第二次執行先是執行了第二條測試用例,隨後執行了其他用例。需要注意的我們韌體也隨著執行了一遍。
批處理命令實現自動重跑
我們上面演示的是在**中實現測試的執行以及重跑,當然我們也可以通過命令列的方式執行測試(這裡以–lf為例)。
開啟cmd~
第一條命令:正常執行測試用例。當然你可以根據需求傳入其他引數,不只是 -s。
pytest -s c:\users\administrator\pycharmprojects\firstpython\testpytest\test_firstfile.py
1第二條命令:執行上一次執行失敗的用例。
pytest -s --lf c:\users\administrator\pycharmprojects\firstpython\testpytest\test_firstfile.py
1結果圖:
為了方便執行,我們可以將上面兩個命令放在.bat檔案中,這樣雙擊即可。
新建 starttest.bat檔案,內容如下:前兩條命令使我們剛剛學習的兩條命令,你可以根據需求新增一些引數,我們這裡將兩個測試結果分別以html形式放在d盤下;我們在每個命令前都新增了call 命令,在bat中用來在乙個批處理指令碼中呼叫另外乙個批處理指令碼;在最後我們加了pause,在bat中用來執行結束後不自動關閉cmd視窗。
call pytest -s --html=d:\report1.html c:\users\administrator\pycharmprojects\firstpython\testpytest\test_firstfile.py
call pytest -s --html=d:\report2.html --lf c:\users\administrator\pycharmprojects\firstpython\testpytest\test_firstfile.py
pause
雙擊完成的bat指令碼,執行完成後會發現d盤**現了兩個測試報告。
---------------------
原文:
pytest失敗重跑
平常在做功能測試的時候,經常會遇到某個模組不穩定,偶然會出現一些bug,對於這種問題我們會針對此用例反覆執行多次,最終復現出問題來。自動化執行用例時候,也會出現偶然的bug,可以針對單個用例,或者針對某個模組的用例重複執行多次。pytest自帶失敗重跑機制,在執行中傳入引數即可。lf 引數 執行上次...
pytest實現測試用例引數化
本文總www.cppcns.com結pytest的測試用例引數化。軟體測試中,輸入相應值,檢查期望值,是常見測試方法。在自動化測試中,乙個測試用例對應乙個測試點,通常一組測試資料無法完全覆蓋測試範圍,所以,需要引數化來傳遞多組資料。pytest的測試用例引數化使用如下裝飾器即可完成。pytest.m...
PYTEST中對測試用例標記執行
標記三種方式 1 顯式指定函式名,通過 標記 pytest test.py test012 模糊查詢,使用 k標識 pytest k test test.py3 使用pytest.mark在函式上標記 建立pytest.ini檔案 注意縮排 pytest markers do do undo und...