接口测试的测试点可分为以下几大类,涵盖功能、性能、安全及异常场景的全面验证:
请求与响应:
输入合法参数,验证返回状态码(如200 OK)和数据格式(JSON/XML)。
检查响应字段完整性(必填字段是否存在)和数据类型(如字符串/数值)。
边界值测试:
参数为值、值(如分页参数page_size=1和page_size=100)。
空值或零值处理(如amount=0是否返回合理错误)。
数据一致性:
数据库写入验证(如创建订单后,DB中是否生成对应记录)。
跨接口数据依赖(如支付接口依赖订单接口的订单状态)。
业务规则:
折扣计算(满减、优惠券叠加逻辑)。
状态机流转(如订单从"待支付"到"已完成"的合法跳转)。
必填参数缺失:
POST /api/user # 缺失username参数 {"password": "123456"}
预期:返回400 Bad Request,错误信息提示缺失字段。
参数格式校验:
邮箱格式(user@example.com vs user@.com)。
日期格式(YYYY-MM-DD vs MM/DD/YYYY)。
多参数交互:
筛选接口:/api/products?category=electronics&price_min=100&sort=desc。
验证各条件是否同时生效。
非法输入:
字符串传入数值型参数(如user_id=abc)。
超长字符串(如1MB的文本字段)。
异常场景:
重复提交(幂等性验证):连续两次相同支付请求是否生成重复订单。
资源不存在:访问/api/users/9999(不存在的ID)。
服务降级:
依赖的下游服务超时(模拟返回504 Gateway Timeout)。
验证是否返回友好提示或启用缓存数据。
单接口响应时间:
平均响应时间<500ms(如登录接口)。
99%请求响应时间<1s。
吞吐量:
支持1000 TPS(每秒事务数)的订单创建接口。
高并发场景:
模拟1000用户同时(验证库存扣减准确性)。
长时间压测(如2小时持续请求,检查内存泄漏)。
未授权访问:
未带Token访问需鉴权的接口(预期401 Unauthorized)。
权限越权:
普通用户尝试访问管理员接口(如/api/admin/users)。
敏感信息泄露:
响应中是否暴露密码明文、数据库ID等。
HTTPS加密传输(禁用HTTP)。
注入攻击:
SQL注入:/api/users?name=' OR 1=1--。
XSS攻击:输入<script>alert(1)</script>。
HTTP/HTTPS:强制跳转HTTPS。
HTTP方法:
GET /api/resource vs POST /api/resource(预期405 Method Not Allowed)。
多版本API:
/v1/users 与 /v2/users 返回字段差异。
内容协商:
请求头Accept: application/xml时是否返回XML格式。
日志完整性:
错误请求是否记录详细日志(包括请求参数、IP、时间戳)。
监控指标:
Prometheus采集接口成功率(requests_total{status="200"})。
| 测试类型 | 工具示例 | 验证目标 |
|---|---|---|
| 功能测试 | Postman, RestAssured | 接口逻辑正确性 |
| 性能测试 | JMeter, Locust | 吞吐量/响应时间 |
| 安全测试 | OWASP ZAP, Burp Suite | SQL注入/XSS漏洞 |
| 自动化框架 | Pytest + Requests | 持续集成(CI/CD) |
正向用例:覆盖所有成功路径(Happy Path)。
反向用例:强制触发所有错误码(如400/500系列)。
混沌工程:模拟网络抖动、服务宕机,验证系统韧性。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。