時(shí)間:2019-08-17 15:57:04 作者:無名 瀏覽量:14
小白必看的全功能的Python測試框架教程
大家好,隨著人們對(duì)生活的質(zhì)量要求越來越高,電腦已經(jīng)成為人們生活和工作中的必需品,電腦是有很多軟件系統(tǒng)程序組成,如果想要學(xué)好電腦,我們必須對(duì)這些軟件系統(tǒng)程序有所了解,今天小編就帶領(lǐng)大家學(xué)習(xí)如何使用全功能的Python測試框架歐洲五大聯(lián)賽即將開始
一.第一步——安裝和簡單使用歐洲五大聯(lián)賽即將開始
pytest是一個(gè)非常成熟的全功能的Python測試框架,主要特點(diǎn)有以下幾點(diǎn):
•1、簡單靈活,容易上手,文檔豐富;歐洲五大聯(lián)賽即將開始
•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
安裝
pip3 install pytest
簡單使用
新建一個(gè)test_sample.py文件,輸入以下代碼:
definc(x):
returnx+1
deftest_answer():
assertinc(3)==5
在test_sample.py文件的目錄下,執(zhí)行pytest命令,pytest將運(yùn)行當(dāng)前目錄及其子目錄下所有名稱為“test_*.py” 或 “*_test.py”的文件
小白必看的全功能的Python測試框架教程圖1歐洲五大聯(lián)賽即將開始
我們使用了assert語句來驗(yàn)證測試期望值,pytest中有一種斷言反思機(jī)制,能智能地報(bào)告assert表達(dá)式的中間值,這個(gè)測試返回了一個(gè)失敗報(bào)告,因?yàn)閕nc(3)沒有返回5
二.第二步——配置文件歐洲五大聯(lián)賽即將開始
pytest配置文件可以改變pytest的運(yùn)行方式,它是一個(gè)固定的文件pytest.ini文件,讀取配置信息,按指定的方式去運(yùn)行。
[pytest]
#添加命令行參數(shù)
addopts=-s
#文件搜索路徑
testpaths=./scripts
#文件名稱
python_files=test_*.py
#類名稱
python_classes=Test*
#方法名稱
python_functions=test_*
addopts
addopts參數(shù)可以更改默認(rèn)命令行選項(xiàng),這個(gè)當(dāng)我們?cè)赾md輸入指令去執(zhí)行用例的時(shí)候,會(huì)用到,比如我想測試完生成報(bào)告,指令比較長
pytest -s —html=report.html
每次輸入這么多,不太好記住,于是可以加到pytest.ini里
在配置文件中修改addopts = -s —html=report.html
這樣我下次打開cmd,直接輸入pytest,它就能默認(rèn)帶上這些參數(shù)了
testpaths
默認(rèn)的情況下,pytest將會(huì)進(jìn)入到當(dāng)前目錄下的目錄和文件中,去收集測試用例(test_開頭的函數(shù))。但是很多時(shí)候我們只想搜索固定的某一個(gè)文件夾,比如項(xiàng)目目錄下的scripts文件夾。這樣的話,我們可以通過配置文件來是想這個(gè)功能
testpaths = ./scripts
python_files
pytest默認(rèn)會(huì)找test開頭的py文件,如果我們想指定某個(gè)文件或者指定某些有規(guī)律的文件名可以使用這個(gè)參數(shù)來進(jìn)行修改
python_files = test_*.py
python_classes
pytest默認(rèn)會(huì)找Test開頭的類,如果我們想指定某個(gè)類或者指定某些有規(guī)律的類名可以使用這個(gè)參數(shù)來進(jìn)行修改
python_classes = Test*
python_functions
pytest默認(rèn)會(huì)找test開頭的函數(shù),如果我們想指定某個(gè)函數(shù)或者指定某些有規(guī)律的函數(shù)名可以使用這個(gè)參數(shù)來進(jìn)行修改
python_functions = test_*
三.第三步——斷言
編寫代碼時(shí),我們總是會(huì)做出一些假設(shè),斷言就是用于在代碼中捕捉這些假設(shè)。斷言表示為一些布爾表達(dá)式,程序員相信在程序中的某個(gè)特定點(diǎn)該表達(dá)式值為真,可以在任何時(shí)候啟用和禁用斷言驗(yàn)證,因此可以在測試時(shí)啟用斷言而在部署時(shí)禁用斷言。同樣,程序投入運(yùn)行后,最終用戶在遇到問題時(shí)可以重新啟用斷言。