接口基础第五篇:requests库

一、Requests库部署与常用函数

1.安装

#安装命令:
pip install requests
#验证命令:
pip show requests

2.Requests库简介

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

官网介绍

https://cn.python-requests.org/zh_CN/latest/

3.requests库常用的7种方法

requests.requests()

requests.options(‘https://github.com/timeline.json’) #OPTIONS请求(跨域预检请 求)

requests.get(‘https://github.com/timeline.json’)

#GET请求 requests.post(“http://httpbin.org/post”)

#POST请求 requests.put(“http://httpbin.org/put”)

#PUT请求(提交修改全部的数据) requests.delete(“http://httpbin.org/delete”)

#DELETE请求 requests.head(“http://httpbin.org/get”)

#HEAD请求 requests.patch(“http://httpbin.org/get”)

#PATCH请求(提交修改部分数据)

4.requests() 方法的参数详解

requests.requests(method, url, **kwargs)
method:请求方式:GET, PUT,POST,HEAD, PATCH, delete, OPTIONS7种方式

url:网络链接
**kwargs: (13个可选参数):

params:字典或者字节序列,作为参数增加到url中 json: JSON格式的数据,作为requests的内容 headers: 字典,HTTP定制头
data: 是第二个控制参数,向服务器提交数据 cookies: 字典或CookieJar, Requests中的cookie auth: 元组,支持HTTP认证功能

files: 字典类型,传输文件
timeout: 设置的超时时间,秒为单位
proxies: 字典类型,设定访问代理服务器,可以增加登录认证 allow_redirects: True/False,默认为True, 重定向开关 stream: True/False,默认为True,获取内容立即下载开关 verity: True/False,默认为True, 认证SSL证书
cert: 本地SSL证书路径

get()方法的参数

requests.get(url, params=None, **kwargs)
url: 拟获取页面的url链接
params: url中的额外参数,字典或字节流,可选择 **kwargs:12个控制访问的参数,就是requests中除params参数

response response的返回内容还有其它更多信息

-- r.status_code
-- r.content
-- r.headers
分大小写,若键不存在则返回None
-- r.json() #Requests中内置的JSON解码器

#响应状态码
#字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩

#以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区

# 获取url
# 编码格式

-- r.url
-- r.encoding
-- r.cookies
-- r.raw
-- r.text
-- r.raise_for_status() #失败请求(非200响应)抛出异常

4.状态码 状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别: 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收、理解、接受 3xx:重定向--要完成请求必须进行更进一步的操作 4xx:客户端错误--请求有语法错误或请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:
200 OK//客户端请求成功
400 Bad Request//客户端请求有语法错误,不能被服务器所理解
401 Unauthorized//请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起 使用
403 Forbidden//服务器收到请求,但是拒绝提供服务
404 Not Found//请求资源不存在,eg:输入了错误的URL
500 Internal Server Error//服务器发生不可预期的错误
503 Server Unavailable//服务器当前不能处理客户端的请求,一段时间后可能恢复正常

二、单接口测试

json是一种数据类型? Json不是一种数据类型,只是一种特定格式内容的数据对象 {

"key1":"value1",

"key2":"value2" }

# 获取cookie #返回原始响应体

#字符串方式的响应体,会自动根据响应头部的字符编码进行解码

 

总结: requests库实现的接口测试应用:

1. 导包
2. 接口请求的模拟

1. 确定协议是http/https

2. 确定请求需传递的参数
3. 如果需要对请求的内容做一定限制,可以在参数中进行设置

json 表示传入json格式的参数
timeout 表示本次接口的调用超时时长的定义
headers 表示本次接口传输时的headers当中自定义添加的内容

4. 在requests库中,进行请求模拟时,请标注清晰每一个参数分别是什么

三、接口关联测试
接口关联:
token与Session是在接口端常用的鉴权机制 很多的接口彼此之间是有关系的。通过token或者session来进行确认。说白了。接口的关 联其实就是特定数据的传递。 基于Session是通过requests.session()对象来实现数据的关联性 基于token是通过变量的保存和传递来实现数据的关联性

posted @ 2022-01-29 14:37  术科术  阅读(175)  评论(0编辑  收藏  举报