Python+requests库实现接口自动化
1 Requests库安装
Requests库是使用Python编写的,采用Apache2 Licensed 开源协议,基于urllib库进行二次封装的HTTP库,Requests库中封装了相应接口测试的方法。
打开终端,输入pip install requests
安装requests库,输入pip show requests
,若显示版本信息,则表示安装成功。
遇到的问题:在安装的时候出现了问题,导致无法完成安装,告警信息如下(使用的是MAC系统):
WARNING: Running pip as the 'root' user can result in broken permissions and
conflicting behaviour with the system package manager. It is recommended to
use a virtual environment instead: https://pip.pypa.io/warnings/venv
解决方案:
step1: 使用python3 -m venv tutorial-env
命令创建一个虚拟环境
step2:使用source tutorial-env/bin/activate
命令激活虚拟环境
step3: 重新执行安装命令pip install requests
2发送HTTP请求
通过requests调用HTTP请求类型所对应的方法发送网络请求。
step1: 导入requests包:import requests
step2:获取响应对象:
- GET请求:
response = requests.get(url,params=请求参数)
(请求参数为可选),请求参数为字典或字符串,推荐使用字典 - POST请求:
response = requests.post(url,json=请求体,headers=请求头信息)
step3:获取相应信息:
- 获取请求URL:
response.url
- 获取响应状态码:
response.status_code
- 获取响应内容,以文本显示:
response.text
- 获取响应内容,以json显示:
response.json()
2.1 GET请求
举个🌰:使用百度搜索“百度搜索”,获取响应状态码
# 导入requests包
import requests
# 设置请求参数
params = {"ie":"UTF-8","wd":"百度搜索"}
# 获取响应对象
r = requests.get("https://www.baidu.com",params = params)
# 获取响应状态码
print(r.status_code)
2.2 POST请求
举个🌰:标准身高体重计算器:https://www.juhe.cn/docs/api/id/571,通过传递身高、体重、性别计算体重是否正常,获取响应内容,并以json格式显示
# 导入requests包
import requests
# 定义url,请求头和请求体
url = "http://apis.juhe.cn/fapig/calculator/weight"
headers = {"Content-Type":"application/json"}
data = {
"data":[{
"key":"14f8601edd6f43f0db1319c6b3ad0772",
"sex":1,
"role":1,
"height":180,
"weight":67
}]
}
# 获取响应对象
r = requests.post(url,json=data,headers=headers)
# 获取响应内容
print(r.json())