python+requests接口自动化3. 接口<参数>的关联与cookie提取

Posted lht3347

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+requests接口自动化3. 接口<参数>的关联与cookie提取相关的知识,希望对你有一定的参考价值。

python+requests接口自动化

介绍

Python+Requests接口自动化介绍、协议及环境搭建

快速上手(发送get和post请求<含json>)

发送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. 接口实现文件(图片)上传

python+requests接口自动化4. 接口实现文件(图片)上传

python+requests接口自动化测试实战

python3+requests实现接口自动化1

python接口自动化测试-requests.post()

python接口自动化测试-requests.post()