10 接口自动化-requests模块详解以及Cookie,Session关联处理

文章目录

      • 一、Requests 库简介
      • 二、Requests 库常用的方法
        • 1.`requests.get(url, params=None, **kwargs)` 发送 get 请求(通过 params 传参)
        • 2.`requests.post(url, data=None, json=None, **kwargs) `发送 post 请求(通过 data 和 json 传参)
        • 3.requests.put() 发送 put 请求
        • 4.requests.delete() 发送 delete 请求
        • 5.requests.request() 发送任意请求,最核心的方法
        • 6.requests.session() 发送任意请求,最核心的方法
      • 三、request() 执行之后返回 response 对象
      • 四、实战(发送 get,post
      • 五、需要带请求头的接口,需要带 Cookie 的接口
      • 六、一般情况下我们会使用 session 对象关联。
      • 七、封装没有固定的方式,只有一个方向。

一、Requests 库简介

用于发送 http 请求的第三方库。安装:
pip install requests

二、Requests 库常用的方法

1.requests.get(url, params=None, **kwargs) 发送 get 请求(通过 params 传参)
2.requests.post(url, data=None, json=None, **kwargs) 发送 post 请求(通过 data 和 json 传参)
  • 1.请求正文格式:multipart/form­data 文件上传
    Content­Type:multipart/form­data 一般用于传价值对和文件
  • 2.请求正文格式:application/x­www­form­urlencoded 键值对
    Content­Type:application/x­www­form­urlencoded 以表单的方式传参,数据格式:key1=value1&key2=value2
  • 3.请求正文格式“:raw
    Content-Type:application/json
    Content-Type:text/plain
    Content-Type:application/javascript
    Content-Type:text/html
    Content-Type:application/xml
  • 4.请求正文格式:binary
    Content-Type:application/octet­stream 二进制流的数据
3.requests.put() 发送 put 请求
4.requests.delete() 发送 delete 请求
5.requests.request() 发送任意请求,最核心的方法
method 请求方式
url 请求路径
params=None get方式传参
data=None post,put,patch传参
headers=None 请求头
cookies=None 请求的cookie信息
files=None 文件上传
json=None post传参
auth=None 鉴权
timeout=None 超时
allow_redirects=True 重定向
proxies=None 代理
hooks=None
stream=None 文件下载
verify=None 是否需要验证证书
cert=None CA证书
6.requests.session() 发送任意请求,最核心的方法

三、request() 执行之后返回 response 对象

response 对象 解释
res.text 响应的字符串格式的数据
res.content 响应的bytes类型格式的数据
res.json() 响应的字典数据格式
res.status_code 响应的状态码
res.reason 响应的状态信息
res.cookies 响应的cookie信息
res.headers 响应头
res.request.headers 请求头

四、实战(发送 get,post

json.dumps(data) 序列化,把字典转换成 str 字符串
json.loads(data) 反序列化,把字符串转换成字典

post:

  • data (键值对的字典)
    默认:Content­Type:application/x­www­form­urlencoded 数据格式:key1=value1&key2=value2
    当使用json.dumps(data)转换之后,那么默认:‘Content­Type’: ‘application/json’
  • json(有嵌套的字典):
    默认:‘Content­Type’: ‘application/json’
  • files:(文件上传)
    默认:Content­Type’: ‘multipart/form­data;
    boundary=50dcca52ed21a4b55651353785ca905a’

五、需要带请求头的接口,需要带 Cookie 的接口

cookie 关联。基本上所有的web项目的接口都需要做 cookie 关联。

六、一般情况下我们会使用 session 对象关联。

因为 session 就表示同一个回话,同一个回话里面的 cookie 会自动关联。

七、封装没有固定的方式,只有一个方向。

你可能感兴趣的:(API,自动化测试,自动化,python)