python的pytest框架之命令行參數(shù)詳解(上)
前言
pytest是一款強(qiáng)大的python自動(dòng)化測試工具,可以勝任各種類型或者級別的軟件測試工作。pytest提供了豐富的功能,包括assert重寫,第三方插件,以及其他測試工具無法比擬的fixture模型。pytest是一個(gè)軟件測試框架,是一款命令行工具,可以自動(dòng)找到測試用例執(zhí)行,并且回報(bào)測試結(jié)果。有豐富的基礎(chǔ)庫,可以大幅度提高用戶編寫測試用例的效率。具備擴(kuò)展性,用戶可以自己編寫插件,或者安裝第三方提供的插件。可以很容易地與其他工具集成到一起使用。比如持續(xù)集成,web自動(dòng)化測試等。
下面列舉了一些pytest相對于其他框架的優(yōu)點(diǎn)
1. 簡單的測試可以很簡單的編寫
2. 復(fù)雜的測試也可以簡單的編寫
3. 測試的可讀性
4.易于上手
5. 斷言僅使用原生的assert關(guān)鍵字,而不是像unittest那樣使用self.assert**那樣
6. pytest可以運(yùn)行unittest和nose編寫的測試用例
上面大部分結(jié)論其實(shí)也不是我個(gè)人總結(jié)的,是我從一本書上看到的,因?yàn)槲乙彩莿倓偨佑|這個(gè)框架,了解的也并不多。還有一個(gè)重要原因就是寫文章不寫點(diǎn)所謂的科學(xué)理論好像缺少點(diǎn)啥……(別管了前面了*總之一句話:pytest就是一個(gè)測試框架和unittest一類,功能很強(qiáng),支持好多插件,用例寫起來簡單,代碼邏輯性強(qiáng),值得學(xué)習(xí)!實(shí)際工作中能不能用,能不能用好那就要靠自己了!)^_^廢話不多說!
編寫第一個(gè)測試函數(shù)(用例)
from selenium import webdriver def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit()
可以看到用例很簡單,就是一個(gè)普通的函數(shù)(驅(qū)動(dòng)瀏覽器,打開百度首頁,斷言首頁的title是否正確),那么pytest是如何運(yùn)行測試用例的呢?
我們可以通過cmd終端,并且換到當(dāng)前用例所在的目錄,輸入 pytest 即可,運(yùn)行結(jié)果如下所示
pytest執(zhí)行用例命令行參數(shù)
上面我們已經(jīng)學(xué)會(huì)了執(zhí)行用例的命令 就是pytest, 那么真的就這么簡單了嗎?其實(shí)不然,pytest 還提供了很多可供我們執(zhí)行用例的命令行參數(shù),下面我們就一一介紹并演示
1.-v :pytest -v 說明:可以輸出用例更加詳細(xì)的執(zhí)行信息,比如用例所在的文件及用例名稱等
2.-s :pytest -s 說明:輸入我們用例中的調(diào)式信息,比如print的打印信息等,我們在上面用例8行加上一句 print(driver.title),我們再運(yùn)行一下我們的用例看看
3.-m ?。簆ytest -m ”標(biāo)記“ 說明:執(zhí)行特定的測試用例。我們再次修改一下我們的用例,并添加一個(gè)新的用例
from selenium import webdriver import pytest @pytest.mark.run_this_testcase def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title print(driver.title) assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit() def testBaidu(): driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言
我們可以看到只執(zhí)行了被標(biāo)記的用例,新添加的用例并沒有被執(zhí)行
4.-k :pytest -k "關(guān)鍵字" 說明:執(zhí)行用例包含“關(guān)鍵字”的用例
5.-q ?。簆ytest -q 說明:簡化控制臺(tái)的輸出,可以看出輸出信息和上面的結(jié)果都不一樣, 下圖中有兩個(gè)..點(diǎn)代替了pass結(jié)果
以上5個(gè)參數(shù),大家可以自己嘗試一下,下一篇文章會(huì)繼續(xù)講解其他幾個(gè)常用的參數(shù)的使用以及pytest是如何發(fā)現(xiàn)測試用例的!
下篇將繼續(xù)更新其他一些命令選項(xiàng)的使用,和pytest收集測試用例的規(guī)則!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
django ManyToManyField多對多關(guān)系的實(shí)例詳解
今天小編就為大家分享一篇django ManyToManyField多對多關(guān)系的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08tensorflow實(shí)現(xiàn)從.ckpt文件中讀取任意變量
這篇文章主要介紹了tensorflow實(shí)現(xiàn)從.ckpt文件中讀取任意變量,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05conda創(chuàng)建pytorch環(huán)境報(bào)錯(cuò)
這篇文章主要介紹了conda創(chuàng)建pytorch環(huán)境報(bào)錯(cuò),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04C#中使用XPath定位HTML中的img標(biāo)簽的操作示例
隨著互聯(lián)網(wǎng)內(nèi)容的日益豐富,網(wǎng)頁數(shù)據(jù)的自動(dòng)化處理變得愈發(fā)重要,圖片作為網(wǎng)頁中的重要組成部分,其獲取和處理在許多應(yīng)用場景中都顯得至關(guān)重要,本文將詳細(xì)介紹如何在 C# 應(yīng)用程序中使用 XPath 定位 HTML 中的 img 標(biāo)簽,并實(shí)現(xiàn)圖片的下載,需要的朋友可以參考下2024-07-07Python3爬蟲學(xué)習(xí)之應(yīng)對網(wǎng)站反爬蟲機(jī)制的方法分析
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之應(yīng)對網(wǎng)站反爬蟲機(jī)制的方法,結(jié)合實(shí)例形式分析了Python3模擬瀏覽器運(yùn)行來應(yīng)對反爬蟲機(jī)制的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12python中re.findall函數(shù)實(shí)例用法
在本篇文章里小編給大家整理了一篇關(guān)于python中re.findall函數(shù)實(shí)例用法相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-09-09Python實(shí)用工具之實(shí)現(xiàn)PDF轉(zhuǎn)DOCX文檔
pdf2docx作為第三方包,提供了非常優(yōu)秀的功能,僅僅幾行代碼就可以完成PDF轉(zhuǎn)換為DOCX的工作,所以本文就來利用pdf2docx實(shí)現(xiàn)PDF轉(zhuǎn)DOCX文檔功能吧2023-12-12Python進(jìn)程multiprocessing.Process()的使用解讀
這篇文章主要介紹了Python進(jìn)程multiprocessing.Process()的使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02