【接口自动化测试基础之路 10】request介绍

本文记录关于自动化测试的基础学习内容

使用的语言:python

从这里开始介绍:request的相关内容,后续一步一步介绍封装

下面一节课开始真正封装代码


一、不同请求及传参方式

1、requests.get(url, params=None, **kwargs)
通过params传参
在这里插入图片描述

2、requests.post(url, data=none, json=none, **kwargs)
通过data或json传参
在这里插入图片描述
3、requests.put(url, data=none, **kwargs)
通过data传参
在这里插入图片描述
4、requests.delete(url, **kwargs)
在这里插入图片描述
5、requests.request(method, url, **kwargs):
发送任意请求,上述请求都通过requests.request()方法
参数列表:
  method:请求方式
  url:请求路径
  params:get方式传参
  data:post\put\patch方式传参
  json:post方式传参
  headers:请求头
  cookies:请求cookie信息
  files:文件上传
  auth:鉴权
  timeout:超时
  allow_redirects:允许重定向
  proxies:代理
  verify:是否验证证书
  stream:文件下载
  cert:CA证书

二、常见请求头

1、Content-Type:multipart/form-data——传文件或键值对,file传参默认请求头

2、Content-Type:application/x-www-form-urlencoded——传表单,data传参默认请求头

3、Content-Type:application/json——传有嵌套的字典,json传参默认请求头

三、request执行返回response对象

res = requests.XXXXXXXXX
1、res.text——返回字符串格式的数据
2、res.content——返回bytes字节类型的数据(如图片、文件)
3、res.json()——返回字典格式的数据
4、res.status_code——返回状态码
5、res.reason——返回状态信息
6、res.cookies——返回cookie信息
7、res.headers——返回响应头信息
8、res.request.headers——返回请求头信息

四、传参示例

1、序列化和反序列化:当需要将数据存入文件或者通过网络发送时,需要将数据对象转换为字节流,即对数据序列化。
  序列化:
    json.dumps(data)
    将字典转换为字符串
  反序列化:
    json.loads(data)
    将字符串转为字典

2、post请求
  data传参:(表单)
  默认请求头:Content-Type:application/x-www-form-urlencoded
  数据格式:key1=value1&key2=value2
  当使用 json.dumps(data) 转换后:改为:Content-Type:application/json

注意:
json.dumps():将Python数据结构转换为JSON,即dict类型转成str类型。
json.dump():编码,用于将dict类型的数据转成str类型,并写入到json文件。
json.loads():将JSON编码的字符串转换回Python数据结构,即str类型转换成dict类型。
json.load():解码,用于从json文件中读取数据

  json传参:(嵌套的字典)
  默认请求头:Content-Type:application/json

  files传参:(文件)
  默认请求头:Content-Type:multipart/form-data
    data = {
      “media”:open(r"文件路径", “rb”)
    }

五、取值

1、json取值
  json_data[‘键’][‘键’]

2、正则取值
obj = re.search('左边界(.?)右边界’, return_data )
(re是第三方的库 需要取的值用 (.
?) 替代)
obj.group(1) 表示匹配的第一个值

六、需要带cookie、请求头的接口

第一种方式:
  1、设置全局变量,存cookie信息
    cookie = res.cookies
  2、后续的接口传参:
    cookies = cookie

第二种方式(常用):
  1、定义session类属性
    session = requests.session()
  2、通过session发送请求
    res = 类名.session.requests(method=, url=)

session表示同一个会话,同一个会话里面自动关联cookie
可以考虑定义在:conftest.py文件中,其他用例都可以调用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值