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引數傳遞
- Mysql 效能優化--基礎引數MySql優化
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- 同名函式的 帶 params 引數 與 不帶 params 引數的執行優先順序函式
- Jmeter基礎004----增加引數化JMeter
- Mysql 效能最佳化--基礎引數MySql
- 『動善時』JMeter基礎 — 22、JMeter中實現引數化(CSV)JMeter
- 淺談C#可變引數paramsC#
- java基礎的學習之引數的變化使用Java
- python基礎之 函式的引數Python函式
- Python基礎(11):引數Python
- Oracle引數檔案基礎Oracle
- margin引數簡單介紹
- margin 引數簡單介紹
- 『動善時』JMeter基礎 — 26、使用txt檔案實現JMeter引數化JMeter
- 『動善時』JMeter基礎 — 27、通過JMeter函式助手實現引數化JMeter函式
- JavaWeb基礎-Request物件接收表單請求引數JavaWeb物件
- 『動善時』JMeter基礎 — 23、JMeter中使用“使用者自定義變數”實現引數化JMeter變數
- SQL WHERE IN引數化編譯寫法簡單示例SQL編譯
- c#基礎-5.變長引數和引數預設值C#
- http params規範中,允許一個引數多次出現嗎?HTTP
- 【Oracle】簡單引數也有講究,JOB_QUEUE_PROCESS引數調研Oracle
- 原生實現jquery param序列化引數jQuery
- JUnit5學習之六:引數化測試(Parameterized Tests)基礎Zed
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- JavaScript形式引數和實際引數JavaScript
- C#引數傳遞之值引數C#
- 函式基礎和函式引數函式
- CSS3-陰影引數基礎CSSS3
- 『忘了再學』Shell基礎 — 16、位置引數變數變數
- kettle 引數——變數引數和常量引數變數
- 基礎知識3——資料庫初始化引數資料庫
- Android Gradle基於引數化配置實現差異化構建AndroidGradle