python接口自动化测试二:requests库常用属性和方法

 

requests官方文档:https://requests.readthedocs.io/zh_CN/latest/

 

requests发送请求的方式和支持的请求:

 

一、发送请求

1:简单示例

发送一个get请求(post、put···其他方法发送方式一样),返回response对象

由源码可看出,查询字符串参数给一个字典,传给params参数

import requests

url = 'http://127.0.0.1:8080/test'
query_str = {'username': 'aaa'}
response = requests.get(url=url, params=query_str)
print(response.json()) # 响应体从json转为python对象(字典)

 

2.requests.request方法

由以上方法可以看出调requests.get、requests.post···其实都是调的requests.request方法,只不过是穿进去的请求方法

常用的一些参数:

  method: 请求方法,字符串格式的get、post、put、delete···
  url: 字符串格式的 host + 接口地址 + 以?开头,&分隔的url参数


  headers:头部信息,字典格式
  cookies:请求时要携带的cookie,字典格式


  data:form-data参数,字典格式,request自动处理请求头的content-type
  json:json参数,字典格式,request自动处理请求头的content-type
  files:文件流,字典格式,request自动处理请求头的content-type


  timeout:请求超时时间,秒
  allow_redirects:是否允许重定向,True为允许,默认为True
  proxies:发送请求时,使用的代理
  verify:是否校验证书,True为要校验,默认为True,发送HTTPS请求时,设置为False即可

 

使用示例:请求中需要什么参数刘加什么参数即可

 

二:响应对象

发送请求后接口会返回一个响应对象,和请求对象一样,也拥有头部信息、主体信息、url····

1.requests提供的响应对象的属性

  .ok # 请求是否成功
  .encoding # 返回的编码格式
  .status_code # 打印状态码,若有重定向,返回的是重定向之后的代码
  .request # 请求方法
  .url # 如果没有重定向,就是请求的url,如果有重定向,就是重定向后的url
  .history # 此次请求经历的重定向的url


  .headers # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
  .cookies # 获取cookie

  .raw #原始响应体
  .text # 响应体转为文本
  .content # 字节方式的响应体,会自动解码 gzip 和 deflate 压缩

  .elapsed # 接口响应时间对象

由于.elapsed是datetime对象,所以可以使用各种单位的取值

 

2.requests提供的处理响应对象的方法

  .raise_for_status() #失败请求(非2开头、非3开头)抛出异常
  .json() # Requests中内置的JSON解码器 ,把响应体的json转成python的字典

 

三:保持会话

当有多个请求,都需要同样的身份校验(cookie)的时候,可以先声明session,并且在此session中设置头部信息,后面的请求都是用这个session即可

requests.request的实现其实也是使用的requests.session

使用示例

 

posted @ 2018-06-09 13:56  向前走。  阅读(1015)  评论(0编辑  收藏  举报