使用Requests库实现接口测试

Requests库:python中的“浏览器”,基于urllib的HTTP库

一、Requests库入门示例

图片[1] - 使用Requests库实现接口测试 - 正则时光

requests库入门案例及使用步骤

二、Requests请求方法常用参数

resp = requests.请求方法(url='URL地址', params={k:v}, headers={k:v}, data={k:v}, json={k:v}, cookies='cookie数据'(如:令牌))
图片[2] - 使用Requests库实现接口测试 - 正则时光

对比Postman我们填写的参数可以更好理解,对应着请求方式,URL,请求参数,请求头,请求体。

图片[3] - 使用Requests库实现接口测试 - 正则时光

案例:发送POST请求

import requests 

# 发送 post 登录请求,指定 url、请求头、请求体,获取响应结果 
resp = requests.post(url="http://ihrm-test.itheima.net/api/sys/login", 
# headers={"Content-Type": "application/json"}, 可以不写,json和data指明了请求体的数据类型:表单和json
json={"mobile": "13800000002", "password": "123456"}) 

# 打印响应结果 print(resp.json())

三、请求携带Cookie

1.常规方式

从requests的响应结果中提取出cookies,后续操作请求中携带此cookies

# 发送获取验证码请求 
resp_v = requests.get(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=verify&r=0.21519623710645064") 

# 从 获取验证码的响应结果,提取 cookie 
my_cookie = resp_v.cookies

2.Session自动管理Cookie

因为Cookie中的数据,都是Session传递的。因此,Session 可以直接自动管理cookie。

#创建session对象
session = requests.Session()

#使用session对象去发送请求,不用携带设置cookies参数
resp=session.get(url,headers,params,data,json)
图片[4] - 使用Requests库实现接口测试 - 正则时光

案例:借助session重新实现上述TPshop商城登录,并获取“我的订单”页面数据。

实现步骤:

  1. 创建一个Session实例。
  2. 使用Session实例,调get方法,发送 获取验证码请求。(不需要获取cookie)
  3. 使用同一个Session实例,调用post方法,发送登录请求。(不需要携带 cookie)
  4. 使用同一个Session实例,调用get方法,发送查看我的订单请求。(不需要携带 cookie)
import requests 

# 1. 创建一个 Session 实例。 
session = requests.Session() 

# 2. 使用 Session 实例,调get方法,发送获取验证码请求。(不需要获取cookie) 
resp_v = session.get(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=verify&r=0.21519623710645064") 

# 3. 使用 同一个 Session 实例,调用 post方法,发送 登录请求。(不需要携带 cookie) 
resp = session.post(url="http://tpshop-test.itheima.net/index.php? m=Home&c=User&a=do_login&t=0.7094195931397276", data={"username": "13012345678", "password": "12345678", "verify_code": "8888"}) print(resp.json()) 

# 4. 使用 同一个 Session 实例,调用 get 方法,发送 查看我的订单请求。(不需要携带 cookie) 
resp_o = session.get(url="http://tpshop-test.itheima.net/Home/Order/order_list.html") print(resp_o.text)

四、Response对象—获取响应内容

图片[5] - 使用Requests库实现接口测试 - 正则时光
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享