python+requests接口自动化3. 接口<参数>的关联与cookie提取
Posted lht3347
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+requests接口自动化3. 接口<参数>的关联与cookie提取相关的知识,希望对你有一定的参考价值。
python+requests接口自动化
介绍
Python+Requests接口自动化介绍、协议及环境搭建
快速上手(发送get和post请求<含json>)
接口<参数>的关联与cookie提取
接口参数的提取
做接口测试难免会遇到接口与接口之间的数据关联。python
中我们可通过json
格式去获取对应参数的值。
下面我们通过一个案例来学习接口间的关联。
# url:获取验证码接口的地址
AuthCode_url = "http://127.0.0.1:5656/api/user/getAuthCode"
# data:请求参数以字典<Json>格式
req_data = "username":"15066888866","authType":"2"
# requests发送post请求
getCode_res = requests.post(AuthCode_url,req_data)
# 获取响应数据的json内容,赋予变量
response_json = getCode_res.json()
# 输出响应数据
print(response_json)
响应数据的输出内容如下所示:
'authType': '2',
'bus_code': '10001',
'bus_data': [
'authCode': '4hXR97',
'bus_phone': '15066888866',
'createTime': '2021-03-04 15:27:47',
'info': '你要么努力向上爬,要么烂在社会最底层的泥淖里。'
],
'message': 'GetAuthCode successful'
- 获取json格式下bus_code参数的值 。
json变量[参数名称]
或者通过json变量.get(参数名称)
# 获取json格式下bus_code参数的值
print(response_json["bus_code"])
print(response_json.get("bus_code"))
打印出来的内容如下:
- 获取验证码authCode参数的值。
json变量[参数名称][角标][参数名称]
或者json变量.get(参数)[角标].get(参数)
角标填写是因为提取出来的bus_data是列表格式
# 获取验证码authCode参数的值,赋予变量
Code = response_json["bus_data"][0]["authCode"]
print(Code)
print(response_json.get("bus_data")[0].get("authCode"))
打印出来的数据都是一样的。如下所示:
cookie关联<鉴权>
用户登录后会产生cookie
值,requests
中提供了获取cookie
值的方法,下面来学习下登录接口响应数据获取cookie
值。
# 登录的url
login_url = "http://127.0.0.1:5656/api/user/login"
# 登录的信息头:以字典<Json>的格式
login_head = "Content-type":"application/json"
# 登录的请求参数:以字典的格式。引用上个接口获取的验证码参数
login_json = "username":"15066888866","password":"a12345678","authCode":Code
# 发送post请求
login_res = requests.post(url=login_url,json=login_json,headers=login_head)
# 获取cookie信息,并赋予变量login_cookie
login_cookie = login_res.cookies
# 下个接口引用cookie值
requests.get(url="接口地址",cookies=login_cookie)
Cookie 的返回对象为 RequestsCookieJar
,该对象的数据类型类似字典格式。我们也可通过该类去实现接口鉴权。
引用RequestsCookieJar类
from requests.cookies import RequestsCookieJar
示例代码如下:
# 定义cookie信息,并赋值
Cookie_jar = RequestsCookieJar()
Cookie_jar.set("session","对应的cookie值")
# 接口引用cookie值
requests.get(url="接口地址",cookies=Cookie_jar)
结尾
如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。
以上是关于python+requests接口自动化3. 接口<参数>的关联与cookie提取的主要内容,如果未能解决你的问题,请参考以下文章
python+requests接口自动化4. 接口实现文件(图片)上传