




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第Python接口自動化淺析如何處理接口依賴這么多語法規(guī)范,大家會覺得一臉懵逼吧,細心的小伙伴會發(fā)現(xiàn)語法中..表示遞歸匹配所有子元素,簡單粗暴,用..獲取所有匹配的子元素,通過索引拿到想要的值,以下以實戰(zhàn)進行演練。
3、JsonPath源碼
defjsonpath(obj,expr,result_type='VALUE',debug=0,use_eval=True):
"""traverseJSONobjectusingjsonpathexpr,returningvaluesorpaths"""
obj:需要解析的對象,比如接口的返回值。
expr:匹配的表達式。
4、JsonPath實戰(zhàn)
以下編寫代碼進行演示。
fromjsonpathimportjsonpath
#json格式結(jié)果
res={
"code":0,
"msg":"OK",
"data":{
"token_info":{
"token_type":"Bearer",
"expires_in":"2025-05-2813:07:29",
"token":"eyJhbGciOiJIUzUxAiJ9.eyJtZW1iZZJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNjQyNDQ5fQ.s6A7pzLILf9tqpEDAU9wIPGGLGkgKEQ6EBHq26l-eUM5seCb48DWalkE7u16iRZv3uzD5hIDFbw41Jmi9V0T_Q"
#獲取res中的token
token=jsonpath(res,'$..token')[0]
print(token)
響應結(jié)果為:
eyJhbGciOiJIUzUxBiJ9.eyJtZW1iZZJfaWQiOpEwMDA1MTMxNSwiZXhwIjoxNTkwNjQyNDQ5fQ.
s6A7pzLILf9tqpEDAU9wIPGGLGkgKEQ6EBHq26leUM5seCb48SWalkE8u16iRZv3uzD5hIDFbw41Jmi9V0T_Q
四、token依賴實例
1.在config/setting.py配置文件中,配置全局的域名或IP
classDevConfig():
#項目的域名或IP
host=':8888'
config=DevConfig()
2.在config/config.yaml文件中,存入登錄賬號
config.yaml
user:
mobile_phone:'155********'
pwd:'12345678'
3.在項目根目錄下,新建文件夾middleware,文件夾下新建文件helper.py,用于處理token
4.首先編寫登錄接口,返回接口數(shù)據(jù)
helper.py
fromcommon.requests_handlerimportRequestsHandler
fromconfig.settingimportconfig
fromcommon.yaml_handlerimportyaml_data
deflogin():
"""登錄,接口返回token"""
req=RequestsHandler()
res=req.visit('post',config.host+'/login',json=yaml_data['user'])
returnres
print(login())
運行結(jié)果如下:
'code':0,
'msg':'OK',
'data':{
'token_info':{
'token_type':'Bearer',
'expires_in':'2025-05-2613:31:41',
'token':'eyJhbGciOiJIUpUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNDcxMTAxfQ.4QDNdQ-Wyecvpv7yRnMlCx1ZXpAlb8vpohxHht5OfNcjGn_yTaISyhmn7OMzjMGlz68sJ_uFbCh2NhIaO2p_Lg'
}
5.接下來編寫函數(shù)
獲取登錄接口返回值并提取token和token_type進行拼接。這里要使用jsonpath模塊提取返回的token和token_type。
helper.py
defsave_token():
"""保存token信息"""
res=login()
token=jsonpath(res,'$..token')[0]
token_type=jsonpath(res,'$..token_type')[0]
token="".join([token_type,token])
returntoken
print(save_token())
運行結(jié)果如下:
BearereyJhbGciOJIPzUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwN
6.最后定義類
將token作為類屬性,整體代碼如下:
helper.py
fromcommon.requests_handlerimportRequestsHandler
fromconfig.settingimportconfig
fromcommon.yaml_handlerimportyaml_data
fromjsonpathimportjsonpath
deflogin():
"""登錄,返回token信息"""
req=RequestsHandler()
res=req.visit('post',config.host+'/login',json=yaml_data['user'])
returnres
defsave_token():
"""保存token信息"""
res=login()
token=jsonpath(res,'$..token')[0]
token_type=jsonpath(res,'$..token_type')[0]
token="".join([token_type,token])
Context.token=token
returntoken
classContext:
"""將token作為類屬性"""
token=''
if__name__=='__main__':
print(save_token())
運行結(jié)果如下:
BearereyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjEwMDA1MTMxNSwiZXhwIjoxNTkwNDcz
7.充值接口攜帶token請求
importunittest
importrequests
frommiddleware.helperimportContext,save_token
classTestRecharge(unittest.TestCase):
defsetUp(self):
pass
deftearDown(self):
pass
deftest_recharge(self):
save_token()
token=Context.token
url=':88888/recharge'
payload={
"member_id":100051315,
"amount":80
res=requests.post(url,json=payload)
print(res.json())
if__name__=='__main__':
unittest.main()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小吃品牌連鎖管理制度
- 城市能量轉(zhuǎn)讓方案(3篇)
- 貨物施工方案(3篇)
- 學校防疫網(wǎng)格管理制度
- 養(yǎng)殖物資存放管理制度
- 醫(yī)院采購中心管理制度
- 印刷車間設備管理制度
- 醫(yī)院防火防爆管理制度
- DB62T 4411-2021 隴東地區(qū)萬壽菊栽培技術規(guī)程
- 罰款繳納方案(3篇)
- 院感質(zhì)量管理考核標準
- 安全文明施工措施費(終版)
- 2021年湖南省普通高中學業(yè)水平考試數(shù)學試卷及答案
- DL-T5588-2021電力系統(tǒng)視頻監(jiān)控系統(tǒng)設計規(guī)程
- 四川省成都市 2024年高一下數(shù)學期末考試試題含解析
- DZ∕T 0382-2021 固體礦產(chǎn)勘查地質(zhì)填圖規(guī)范(正式版)
- 《研學旅行課程設計》課件-研學課程方案設計
- 開票申請表模板
- MOOC 通信電路與系統(tǒng)-杭州電子科技大學 中國大學慕課答案
- 企業(yè)EHS風險管理基礎智慧樹知到期末考試答案2024年
- 紅旗E-HS3保養(yǎng)手冊
評論
0/150
提交評論