Python - 接口自动化(Requests)
1、requests简介
如果想用python做接口测试,我们首先有不得不了解和学习的模块。
它就是python的第三方模块:Requests。
虽然Python内置有urllib模块用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。
所以呢更好的方案是使用requests。它也是目前应用最广泛、最方便、功能最强大的一个Python第三方库,主要用于处理URL资源
ruquests的中文官网:http://cn.python-requests.org/zh_CN/latest/index.html
requests的英文官网:http://www.python-requests.org/en/master/
2、requests安装
(1)cmd窗口使用pip命令安装
pip install requests
(2)如果下载比较慢,配置使用国内镜像进行下载 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如下图所示:
(3)显示python已经安装的模块
pip list
如下图所示:
3、requests-发送get请求
import requests
# 请求的url,以小望之家的以id查企业接口为例
url = "https://endpoint.xiaowangtech.com/xw-moonlit/moonlit/enterprise/search-detail?enterpriseId=410417"
# header信息
header = {
"Access-Token": "6693dfed-bbbf-4163-9e59-e21a19ec7195",
"Accept": "application/json, text/plain, */*",
}
# 使用requests发送get请求
r = requests.get(url=url, headers=header)
# 以text格式打印出参
print(r.text)
# 以json格式打印出参
print(r.json())
4、requests-发送post请求
import requests
# 请求的url,以小望之家的获取企业列表为例
url = "https://endpoint.xiaowangtech.com/xw-moonlit/moonlit/enterprise/list"
# header信息
header = {
"Access-Token": "6693dfed-bbbf-4163-9e59-e21a19ec7195",
"Accept": "application/json, text/plain, */*",
}
# 请求入参
json = {
"enterpriseName": "",
"current": 1,
"size": 10
}
# 使用requests发送post请求
r = requests.post(url=url, headers=header, json=json)
# 以text格式打印出参
print(r.text)
# 以json格式打印出参
print(r.json())
5、response的其他应用
-- r.status_code #响应状态码
-- r.content #字节方式的响应体,会自动为你解码 gzip 和deflate 压缩
-- r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回 None
-- r.json() #Requests 中内置的 JSON 解码器,requests的方便之处还在于,对于特定类型的响应,例如JSON,可以直接获取
-- r.url # 获取 url
-- r.encoding # 编码格式,requests自动检测编码
-- r.cookies # 获取 cookie
-- r.raw #返回原始响应体-- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
-- r.raise_for_status() #失败请求(非 200 响应)抛出异常