本文为霍格沃兹测试开发学社学员学习笔记分享
接口自动化测试框架介绍
目录
- 接口自动化测试介绍
- 接口自动化测试的学习体系
- 接口自动化测试框架介绍
接口测试场景
自动化测试场景
接口测试在分层测试中的位置
接口自动化测试与 Web/App 自动化测试对比
接口自动化测试与 Web/App 自动化测试对比
看起来接口自动化测试什么都比 Web/App 自动化测试要好,为什么还要做 Web/App 自动化测试?
- 接口关注数据无法触达用户体验。
接口测试工具类型
为什么推荐 Requests
- 是由 Python 实现的 API 测试框架。
- 支持发起 POST, GET, PUT, DELETE 等请求。
- 可以用来验证和校对响应信息。
官网地址: Requests: HTTP for Humans™ — Requests 2.31.0 documentation
Requests 优势
- 功能全面:HTTP/HTTPS 支持全面。
- 使用简单:简单易用,不用关心底层细节。
- 定制性高:结合测试框架完成二次封装,比如 HttpRunner。
Requests 环境准备
- 安装命令:
pip install requests
接口请求方法
目录
- 常见 HTTP 请求方法构造
- 演练环境
- HTTP 协议知识回顾
- 构造请求方法
常见 HTTP 请求方法构造
底层设计
演练环境地址
HTTP 协议知识回顾
- URL 结构
- HTTP 请求
- HTTP 响应
具体详见《常见接口协议》录播
构造 GET 请求
-
requests.get(url, params=None, **kwargs)
- url: 接口 url。
- params:拼接在 url 中的请求参数。
- **kwargs:更多底层支持的参数。
# 导入依赖
import requests
def test_get():
# 定义接口的 url 和拼接在 url 中的请求参数
url = "https://httpbin.ceshiren.com/get"
# 发出 GET 请求,r 接收接口响应
r = requests.get(url)
# 打印接口响应
logger.info(f"接口响应为 {r}")
构造 POST 请求
-
requests.post(url, data=None, json=None, **kwargs)
- url: 接口 url。
- data:表单格式请求体。
- json:JSON 格式请求体。
- **kwargs:更多底层支持的参数。
# 导入依赖
import requests
def test_post():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/post"
# 发出 POST 请求,r 接收接口响应
r = requests.post(url)
# 打印接口响应
logger.info(f"接口响应为 {r}")
构造 PUT 请求
-
requests.put(url, data=None, **kwargs)
- url: 接口 url。
- data:表单格式请求体。
- **kwargs:更多底层支持的参数。
# 导入依赖
import requests
def test_put():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/put"
# 发出 POST 请求,r 接收接口响应
r = requests.put(url)
# 打印接口响应
logger.info(f"接口响应为 {r}")
构造 DELETE 请求
-
requests.delete(url, **kwargs)
- url: 接口 url。
- **kwargs:更多底层支持的参数。
# 导入依赖
import requests
def test_delete():
# 定义接口的 url 和表单格式请求体
url = "https://httpbin.ceshiren.com/delete"
# 发出 POST 请求,r 接收接口响应
r = requests.delete(url)
# 打印接口响应
logger.info(f"接口响应为 {r}")
构造请求方法
-
requests.request(method, url, **kwargs)
-
method: 请求方法。
GET
,OPTIONS
,HEAD
,POST
,PUT
,PATCH
,DELETE
。
-
url: 接口 url。
-
**kwargs:更多底层支持的参数。
-
底层参数说明
参数 | 应用场景 |
---|---|
method | 请求方法 |
url | 请求 URL |
params | 请求中携带 URL 参数 |
data | 请求中携带请求体(默认为表单请求) |
json | 请求中携带 json 格式的请求体 |
headers | 请求中携带头信息 |
cookies | 请求中携带 cookies |
files | 请求中携带文件格式的请求体 |
auth | 请求中携带认证信息 |
timeout | 设置请求超时时间 |
allow_redirects | 请求是否允许重定向 |
proxies | 设置请求代理 |
verify | 请求是否要认证 |
cert | 请求中携带 ssl 证书 |