fixtrue基礎之params引數實現簡單引數化
前言
我的努力求學沒有得到別的好處,只不過是愈來愈發覺自己的無知。 ——笛卡兒
如果大家越來越在一個領域思考的話,應該會有如上的認知。
一、 params引數是什麼?
· params引數是fixture方法中的其中一個引數;(ps:為了防止有些朋友單獨看這篇博文才寫了這句)
· params引數接受列表型別的資料 實現引數化功能。
二、關於引數化的理解
· 相同的 測試指令碼 使用不同的測試資料來執行,測試資料和測試行為進行了完全的分離,這樣的測試指令碼設計模式叫做資料驅動;
· 引數化就是資料驅動實現的一種表現;
· 比如登入功能模組,使用 3組不同的使用者名稱和密碼進行登入來驗證登入功能模組的正確性,可以把這組不同的使用者名稱和密碼理解為引數化的資料;
· 為什麼要使用不同的資料來對相同模組功能進行驗證,因為這樣測試會更充分一些,也可以檢查程式是否處理了各種異常情況(如錯誤的使用者名稱、錯誤的密碼等)。
三、 params引數應用
· 3.1 簡單應用params引數
import pytest
user_list = ['xiaoming','xiaohong','xiaoli']
@pytest.fixture(params=user_list) #params引數接收列表型別資料
def setUp(request): #傳參預設request引數
return request.param
def testadd(setUp):
print('\n使用者名稱:'+ str(setUp))
assert1
if__name__=='__main__':
pytest.main(["-s"])
· 3.2 思維發散一點,一組引數包含多個值
import pytest
#使用包含字典的列表傳值,解決一組引數只有一個的問題
user_list = [{'username':'xiaoming','password':'666666'},
{'username':'xiaohong','password':'888888'},
{'username':'xiaoli','password':'123456'}
]
@pytest.fixture(params=user_list)
def setUp(request):
returnrequest.param
def testadd(setUp):
print('\n使用者名稱:'+ str(setUp['username']),end=' ') #setUp['username']取使用者名稱
print('密碼:'+ str(setUp['password'])) #setUp['password']取密碼
assert 1
if__name__=='__main__':
pytest.main(["-s"])
上述兩個例項小結:
· params引數只要求是列表型別的資料;
· 傳參預設 request引數不能更改其它名字;
· 有了示例 2,大家其實可以想到把 測試 的期望結果也做成引數化的形式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2910227/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- fixtrue基礎之scope引數
- fixtrue基礎之name引數
- fixtrue基礎之autouse引數
- fixtrue基礎之ids引數
- 『動善時』JMeter基礎 — 24、JMeter中使用“使用者引數”實現引數化JMeter
- out,ref,params引數傳遞
- JAVA基礎之-引數傳遞Java
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- python基礎之 函式的引數Python函式
- 『動善時』JMeter基礎 — 22、JMeter中實現引數化(CSV)JMeter
- Jmeter基礎004----增加引數化JMeter
- 淺談C#可變引數paramsC#
- Python基礎(11):引數Python
- 自己實現一個簡單可變引數函式函式
- 『動善時』JMeter基礎 — 26、使用txt檔案實現JMeter引數化JMeter
- 『動善時』JMeter基礎 — 27、通過JMeter函式助手實現引數化JMeter函式
- JavaWeb基礎-Request物件接收表單請求引數JavaWeb物件
- Android Gradle基於引數化配置實現差異化構建AndroidGradle
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- 035、Vue3+TypeScript基礎,路由params引數時,使用defineProps自動獲得資料VueTypeScript路由
- SQL WHERE IN引數化編譯寫法簡單示例SQL編譯
- 『動善時』JMeter基礎 — 23、JMeter中使用“使用者自定義變數”實現引數化JMeter變數
- 【Oracle】簡單引數也有講究,JOB_QUEUE_PROCESS引數調研Oracle
- http params規範中,允許一個引數多次出現嗎?HTTP
- c#基礎-5.變長引數和引數預設值C#
- 原生實現jquery param序列化引數jQuery
- JUnit5學習之六:引數化測試(Parameterized Tests)基礎Zed
- 【公式與引數】用友U8-UFO報表公式與引數基礎公式
- CSS3-陰影引數基礎CSSS3
- 函式基礎和函式引數函式
- Spring WebFlux 基礎教程:引數校驗SpringWebUX
- lr引數化
- SpringMVC實現引數校驗SpringMVC
- SpringBoot 引數別名實現Spring Boot
- 『忘了再學』Shell基礎 — 16、位置引數變數變數
- 引數匹配模型——Python學習之引數(二)模型Python
- PostgreSQL:引數簡介SQL
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis