Python - 接口自动化(Requests)

发布时间 2023-09-12 11:27:51作者: [BORUTO]

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安装

使用pip安装

pip install requests

如果下载比较慢,配置使用国内镜像进行下载 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

 

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 响应)抛出异常