第一步:理解接口基础概念
-
接口定义
接口是系统间数据交互的通道,通常包含:- 请求地址(URL)
- 请求方法(GET/POST/PUT/DELETE)
- 请求参数(Headers/Body)
- 响应数据(Status Code/Body)
-
核心要素
接口测试 = 输入参数 + 预期输出 + 校验规则 \text{接口测试} = \text{输入参数} + \text{预期输出} + \text{校验规则} 接口测试=输入参数+预期输出+校验规则
第二步:设计用例核心原则
-
等价类划分
- 有效等价类:正常参数组合
例:用户ID在 [ 1 , 10000 ] [1, 10000] [1,10000]范围内 - 无效等价类:异常参数组合
例:用户ID为负数或字符串
- 有效等价类:正常参数组合
-
边界值分析
针对数值型参数测试:- 最小值 m i n min min
- 最大值 m a x max max
-
m
i
n
−
1
min-1
min−1和
m
a
x
+
1
max+1
max+1
例:分页参数page_size测试:0, 1, 50, 51(假设上限50)
-
状态迁移覆盖
对有状态变化的接口(如订单状态),覆盖所有状态路径:
创建 → 支付 → 发货 → 完成 \text{创建} \to \text{支付} \to \text{发货} \to \text{完成} 创建→支付→发货→完成
第三步:构建测试用例(实战示例)
以登录接口为例:
# 接口信息
- URL: /api/login
- Method: POST
- Request: {username, password}
- Response: {code, token, expire_time}
用例ID | 测试场景 | 输入数据 | 预期结果 |
---|---|---|---|
TC001 | 正常登录 | username=“test”, password=“123456” | code=200, token非空 |
TC002 | 用户名空 | username=“”, password=“123456” | code=400, 错误信息"用户名不能为空" |
TC003 | 密码长度不足 | username=“test”, password=“123” | code=400, 错误信息"密码长度需≥6位" |
TC004 | SQL注入攻击 | username=“admin’–”, password=“xxx” | code=403, 阻断非法请求 |
TC005 | 并发登录 | 10线程同时请求 | 响应时间<500ms, 无数据冲突 |
第四步:特殊场景设计
-
幂等性测试
- 多次发送相同请求(如支付接口)
- 验证是否产生重复数据
-
数据一致性
- 接口调用后检查关联数据库
- 例:创建用户接口需验证用户表新增记录
-
安全测试
- 敏感信息加密(如密码传输)
- 越权访问测试(普通用户访问管理员接口)
第五步:用例维护策略
-
版本关联
每个用例标注适用的API版本:
用例版本 ≡ 接口版本 \text{用例版本} \equiv \text{接口版本} 用例版本≡接口版本 -
自动化标记
- 高频用例:标记为自动化用例
- 异常用例:保留手动测试
-
变更追踪
建立用例与需求的映射矩阵,接口变更时快速定位受影响用例。
下一步建议:使用Postman或JMeter工具执行上述用例,并学习如何编写自动化测试脚本。实际项目中可结合Swagger文档设计更全面的用例集。