Python接口自动化浅析如何处理接口依赖_第1页
Python接口自动化浅析如何处理接口依赖_第2页
Python接口自动化浅析如何处理接口依赖_第3页
Python接口自动化浅析如何处理接口依赖_第4页
Python接口自动化浅析如何处理接口依赖_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Python接口自动化浅析如何处理接口依赖这么多语法规范,大家会觉得一脸懵逼吧,细心的小伙伴会发现语法中..表示递归匹配所有子元素,简单粗暴,用..获取所有匹配的子元素,通过索引拿到想要的值,以下以实战进行演练。

3、JsonPath源码

defjsonpath(obj,expr,result_type='VALUE',debug=0,use_eval=True):

"""traverseJSONobjectusingjsonpathexpr,returningvaluesorpaths"""

obj:需要解析的对象,比如接口的返回值。

expr:匹配的表达式。

4、JsonPath实战

以下编写代码进行演示。

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. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论