




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Python接口自動化淺析如何處理接口依賴這么多語法規(guī)范,大家會覺得一臉懵逼吧,細心的小伙伴會發(fā)現語法中..表示遞歸匹配所有子元素,簡單粗暴,用..獲取所有匹配的子元素,通過索引拿到想要的值,以下以實戰(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格式結果
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)
響應結果為:
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.首先編寫登錄接口,返回接口數據
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())
運行結果如下:
'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.接下來編寫函數
獲取登錄接口返回值并提取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())
運行結果如下:
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())
運行結果如下:
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公室區(qū)塊鏈技術的安全性分析與防范
- 企業(yè)房屋包租合同范例
- 個人公寓傭金合同范例
- 人參購銷合同范例
- Office知識點總結模版
- 銀行業(yè)法律法規(guī)與綜合能力總結模版
- 書插畫合作合同范例
- 與物業(yè)續(xù)簽合同范例
- 產品測試服務合同范例
- 專線電路合同范例
- 《行政法與行政訴訟法》課件各章節(jié)內容-第二十六章 行政賠償及訴訟
- 2025年江蘇省高郵市中考一模物理試題(原卷版+解析版)
- 【9物一?!?025年安徽省合肥市45中(橡樹灣)中考一模物理試卷
- 2.1+新民主主義革命的勝利+課件高中政治統編版必修一中國特色社會主義
- 關務培訓課件
- 北京市豐臺區(qū)2025屆高三下學期3月一模試題 地理 含答案
- 2025年上海虹口區(qū)高三二模英語卷試題及答案詳解
- 員工涉黃賭毒協議書
- 反三違安全知識培訓課件
- 招商引資工作課件
- 鄂州職業(yè)大學《土木工程數值計算方法》2023-2024學年第一學期期末試卷
評論
0/150
提交評論