這個(gè)Pytest函數(shù),輕松實(shí)現(xiàn)動態(tài)參數(shù)化√

無論什么自動化,部分測試用例均會運(yùn)用到參數(shù)化,參數(shù)化可以幫助我們覆蓋更多的測試用例,減少重復(fù)代碼邏輯,然而自動化中也有多種實(shí)現(xiàn)參數(shù)化的方法,比如UnitTest的DDT模式,Pytest的fixture,以及Pytest的parametrize均可以實(shí)現(xiàn)測試用例的參數(shù)化。
今天小編介紹新的一種方法,通過hook函數(shù)來實(shí)現(xiàn)測試用例的參數(shù)化,廢話不多說,直接進(jìn)入正文。
pytest_generate_tests
pytest_generate_tests鉤子函數(shù)是Pytest框架中用來動態(tài)生成測試用例參數(shù)的鉤子函數(shù)。通過它,我們可以在運(yùn)行時(shí)動態(tài)地生成測試參數(shù),從而避免手動編寫重復(fù)的測試用例。
在conftest.py文件中編寫對應(yīng)的函數(shù)信息:

方法一
簡單編寫兩條測試用例,然后通過pytest_generate_tests實(shí)現(xiàn)測試用例的參數(shù)化:

編寫完成后,直接運(yùn)行程序,通過結(jié)果發(fā)現(xiàn)已經(jīng)執(zhí)行成功。

方法二
通過上面的案例,小伙伴們可能懂了pytest_generate_tests如何運(yùn)行的.
其實(shí)該函數(shù)主要提供的就是動態(tài)方便我們實(shí)現(xiàn)測試用例,上述方法很顯然不動態(tài),小編在介紹一種使用方法,場景是根據(jù)不同的命令行,傳入不同的測試數(shù)據(jù)。
這個(gè)時(shí)候就想到了pytest的另一個(gè)函數(shù)pytest_addoption,可以實(shí)現(xiàn)自定義命令行參數(shù)后,再次動態(tài)實(shí)現(xiàn)我們的參數(shù)化內(nèi)容。更改conftest.py文件內(nèi)容,增加pytest_addoption函數(shù)內(nèi)容:

同樣根據(jù)剛才的測試用例,將測試數(shù)據(jù)進(jìn)行分離,參數(shù)值為test的訪問上海的參數(shù),參數(shù)值為qa的我們訪問北京的參數(shù):

編寫完成后,我們直接驗(yàn)證命令行傳入不同參數(shù),實(shí)現(xiàn)了動態(tài)參數(shù)化的內(nèi)容。如果沒有傳入?yún)?shù)的話,系統(tǒng)會出現(xiàn)報(bào)錯(cuò)的。
總結(jié)
小編通過兩種方法介紹了pytest_generate_tests的使用方法和一般的使用場景。
當(dāng)然該函數(shù)肯定不僅僅只有這兩種方法來使用,具體的使用方法可以根據(jù)對應(yīng)的需求或者項(xiàng)目進(jìn)行來完成,不同的需求不同的使用方法,如果有更好的使用方法可以下方留言,大家一起溝通交流。
最后:這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個(gè)倉庫也陪伴上萬個(gè)測試工程師們走過最艱難的路程,希望也能幫助到你!

包括,測試人技術(shù)進(jìn)階路徑圖,50多天的視頻教程、16個(gè)項(xiàng)目實(shí)例,30多個(gè)測試工具,37份測試文檔,70個(gè)軟件測試相關(guān)問題,40篇測試經(jīng)驗(yàn)級文章分享,還有軟件測試面試小程序,求職簡歷的優(yōu)化模板。
加油吧,如果你需要提升技術(shù)儲備,那就行動,在路上總比在起點(diǎn)觀望的要好。一切的迷茫都是因?yàn)橄氲锰喽龅奶伲?/p>
你可以在公眾號:傷心的辣條?! 自行領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料【免費(fèi)的】。以及相對應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。
現(xiàn)在我邀請你進(jìn)入我們的軟件測試學(xué)習(xí)交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測試,共同學(xué)習(xí)軟件測試技術(shù)、面試等軟件測試方方面面,還會有免費(fèi)直播課,收獲更多測試技巧,我們一起進(jìn)階Python自動化測試/測試開發(fā),走向高薪之路。