App下載

Pytest測試用例怎么執(zhí)行?

酒鞭名馬 2021-08-10 17:29:21 瀏覽數(shù) (2937)
反饋

pytest測試框架是python測試中常用的一種測試框架,在自動(dòng)化測試中也可以用來與selenium進(jìn)行搭配使用。但是縱觀整個(gè)pytest測試用例,我們并沒有找到運(yùn)行代碼的入口,那么pytest測試用例怎么執(zhí)行呢?接下來這篇文章帶你了解。

pytest概述

pytest是一個(gè)非常成熟的全功能的Python測試框架,主要特點(diǎn)有以下幾點(diǎn):

1、簡單靈活,容易上手,文檔豐富;
2、支持參數(shù)化,可以細(xì)粒度地控制要測試的測試用例;
3、能夠支持簡單的單元測試和復(fù)雜的功能測試,還可以用來做selenium/appnium等自動(dòng)化測試、接口自動(dòng)化測試(pytest+requests);
4、pytest具有很多第三方插件,并且可以自定義擴(kuò)展,比較好用的如pytest-selenium(集成selenium)、pytest-html(完美html測試報(bào)告生成)、pytest-rerunfailures(失敗case重復(fù)執(zhí)行)、pytest-xdist(多CPU分發(fā))等;
5、測試用例的skip和xfail處理;
6、可以很好的和CI工具結(jié)合,例如jenkins

如下是目錄結(jié)構(gòu):

目錄結(jié)構(gòu)

1、主函數(shù)模式

(1)運(yùn)行所有 pytest.main()
(2)指定模塊 pytest.main('[-vs],','./testcase/test_day1.py')
(3)指定目錄pytest.main('[-vs]'),'./testcase')
(4)通過nodeid指定用例運(yùn)行:nodeid由模塊名,分隔符,類名,方法名,函數(shù)名組成
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::test_demo11')
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1')

2、命令行模式

(1)運(yùn)行所有:pytest
(2)指定模塊 pytest -vs ./testcase/test_day1.py
(3)指定目錄 pytest -vs ./testcase
(4)通過nodeid指定用例運(yùn)行:nodeid由模塊名,分隔符,類名,方法名,函數(shù)名組成
pytest -vs ./interface_testcase/test_day3.py::test_demo11
pytest -vs ./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1

參數(shù)詳解:
-s:表示輸出調(diào)試信息,包括print打印的信息
-v顯示更詳細(xì)的信息
-vs一起使用
-n支持多線程或者分布式運(yùn)行測試用例
#如 #pytest.main(['-vs','./testcase/test_day1.py','-n=2'])
# pytest -vs ./testcase/test_day1.py -n 2
#reruns==number 表示失敗用例重跑
#pytest -vs ./testcase/test_day2.py --reruns 2
#pytest.main(['–vs','./testcase/test_day2.py',‘reruns=2']) #失敗得的用例重跑兩次
#-x表示只要一個(gè)用例報(bào)錯(cuò),那么測試停止運(yùn)行
#–maxfail=2 出現(xiàn)兩個(gè)失敗用例停止
#-k 根據(jù)測試用例的部分字符串指定測試用例 pytest -vs test_day2 -k “yang”

3、通過讀取pytest ini配置文件運(yùn)行 (最主要運(yùn)用的方式)

#pytest.ini是pytest單元測試框架中的核心配置文件
(1)位置:一般是放在項(xiàng)目的根目錄
(2)編碼:必須是ANSI,可以使用notepad++來修改編碼格式
(3)作用:改變pytest的默認(rèn)行為
(4)運(yùn)行的規(guī)則:不管是主函數(shù)的模式運(yùn)行該,命令行模式,都會(huì)區(qū)讀取這個(gè)配置文件

[pytest]
addopts=-vs    #命令行參數(shù) 用空格分離
testpaths=./testcase #測試用例的路徑 ./testcase/test_day2.py #
python_files=test_*.py  #模塊名的規(guī)則
python_classes=Test*    #類名的規(guī)則
python_functions=test   #方法名的規(guī)則

#實(shí)際項(xiàng)目配置中,盡量刪除注釋,確保不必要的問題出現(xiàn)

以上就是pytest測試用例怎么執(zhí)行的詳細(xì)內(nèi)容,更多關(guān)于Pytest的學(xué)習(xí)資料請關(guān)注W3Cschool其它相關(guān)文章!



0 人點(diǎn)贊