pytest測試框架是python測試中常用的一種測試框架,在自動化測試中也可以用來與selenium進(jìn)行搭配使用。但是縱觀整個pytest測試用例,我們并沒有找到運(yùn)行代碼的入口,那么pytest測試用例怎么執(zhí)行呢?接下來這篇文章帶你了解。
pytest概述
pytest是一個非常成熟的全功能的Python測試框架,主要特點(diǎn)有以下幾點(diǎn):
1、簡單靈活,容易上手,文檔豐富;
2、支持參數(shù)化,可以細(xì)粒度地控制要測試的測試用例;
3、能夠支持簡單的單元測試和復(fù)雜的功能測試,還可以用來做selenium/appnium等自動化測試、接口自動化測試(pytest+requests);
4、pytest具有很多第三方插件,并且可以自定義擴(kuò)展,比較好用的如pytest-selenium(集成selenium)、pytest-html(完美html測試報告生成)、pytest-rerunfailures(失敗case重復(fù)執(zhí)行)、pytest-xdist(多CPU分發(fā))等;
5、測試用例的skip和xfail處理;
6、可以很好的和CI工具結(jié)合,例如jenkins
如下是目錄結(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表示只要一個用例報錯,那么測試停止運(yùn)行
#–maxfail=2 出現(xiàn)兩個失敗用例停止
#-k 根據(jù)測試用例的部分字符串指定測試用例 pytest -vs test_day2 -k “yang”
3、通過讀取pytest ini配置文件運(yùn)行 (最主要運(yùn)用的方式)
#pytest.ini是pytest單元測試框架中的核心配置文件
(1)位置:一般是放在項目的根目錄
(2)編碼:必須是ANSI,可以使用notepad++來修改編碼格式
(3)作用:改變pytest的默認(rèn)行為
(4)運(yùn)行的規(guī)則:不管是主函數(shù)的模式運(yùn)行該,命令行模式,都會區(qū)讀取這個配置文件
[pytest] addopts=-vs #命令行參數(shù) 用空格分離 testpaths=./testcase #測試用例的路徑 ./testcase/test_day2.py # python_files=test_*.py #模塊名的規(guī)則 python_classes=Test* #類名的規(guī)則 python_functions=test #方法名的規(guī)則
#實際項目配置中,盡量刪除注釋,確保不必要的問題出現(xiàn)
以上就是pytest測試用例怎么執(zhí)行的詳細(xì)內(nèi)容,更多關(guān)于Pytest的學(xué)習(xí)資料請關(guān)注W3Cschool其它相關(guān)文章!