接口入?yún)⒐芾硭悸?/h1>
進(jìn)行接口測試比較頭疼的問題就是入?yún)⒌奶幚恚?/p>
- 寫在用例文件中督函,顯得太死板,而且工作了比較大闯参,所以需要剝離出來伶丐,經(jīng)過大家的努力現(xiàn)在感覺終于找到了一個相對【數(shù)據(jù)庫凤跑、excel、配置文件】更簡單一點(diǎn)點(diǎn)的方法家淤,那就是通過模板的形式進(jìn)行用例入?yún)⒌墓芾?/li>
實(shí)現(xiàn)思路
- 構(gòu)建模板:模板顧名思義有一套默認(rèn)值乎莉,就是配置好一套完整的初始值
- 模板通過字典的形式進(jìn)行管理
- 用例中只需要直接引入模板,然后只需要根據(jù)不同用例需求改變模板中需要修改的key的value
模板:
in_param.py
class temp:
list_in_param_template= {
'user':'tom',
'status':2,
'userInfo':{
'phone':'13222221111',
'name':'tom',
'age':23,
'sex':1
}
}
#用例_A 入?yún)?
list_in_param_case_a = {
'user':'lili',
'userInfo':{
'name':'lili',
'sex':2
}
}
處理方法:
method.py
from in_param import temp
def updateDict(parm_temp, new_parm):
"""
更新字典
:param parm_temp: 模板字典
:param new_parm: 更新模板字典
:return:
"""
if isinstance(parm_temp,dict) :
for x in range(len(parm_temp)):
temp_key = parm_temp.keys()[x]
temp_value = parm_temp[temp_key]
if isinstance(new_parm,dict):
for y in range(len(new_parm)):
temp_key_b = new_parm.keys()[y]
temp_value_b = new_parm[temp_key_b]
if not isinstance(temp_value,(list,dict)) and not isinstance(temp_value_b,(list,dict)):
if temp_key == temp_key_b:
parm_temp[temp_key] = new_parm[temp_key_b]
updateDict(temp_value,temp_value_b)
return parm_temp
用例中使用方法:
from method import updateDict
......
api = Api()
in_param = InDatabase.updateDict(list.as_list_temp,list.as_list_case_1)
response = api.requet(in_param)
......