—
前言
大家好,我是接口测试达人。做API测试5年多了,从Postman到JMeter,工具换了不少。最近一年深度使用RunnerGo做接口测试,发现它的可视化编排和数据流设计真的很棒。今天分享RunnerGo接口测试的实战经验。
本文章参考RunnerGo v2.3官方文档
—
一、接口测试工作流设计
传统接口测试痛点
用Postman做接口测试时,常见问题:
- 接口多了管理混乱
- 测试数据传递复杂
- 自动化脚本维护成本高
- 团队协作困难
RunnerGo解决方案
RunnerGo提供了一套完整的接口测试工作流:
接口管理 –
场景编排 -> 自动化执行 -> 报告分析
工作流程图
1. 录入接口
├── 手动创建
├── 导入Swagger
└── 导入Postman
2. 调试验证
├── 发送请求
├── 查看响应
└── 添加断言
3. 场景编排
├── 组合接口
├── 数据传递
└── 流程控制
4. 自动执行
├── 手动触发
├── 定时执行
└── CI/CD触发
5. 报告分析
├── 查看结果
├── 错误定位
└── 分享报告
—
二、接口管理最佳实践
目录结构设计
按照业务模块组织接口:
项目根目录
├── 01-认证模块/
│ ├── 登录接口
│ ├── 注册接口
│ ├── 刷新Token
│ └── 退出登录
├── 02-用户模块/
│ ├── 用户列表
│ ├── 用户详情
│ ├── 创建用户
│ └── 更新用户
├── 03-订单模块/
│ ├── 订单列表
│ ├── 创建订单
│ └── 取消订单
└── 04-公共接口/
├── 文件上传
└── 配置查询
接口命名规范
推荐命名格式:模块_功能_操作
示例:
用户_列表_查询订单_详情_获取支付_状态_更新
接口文档维护
每个接口添加说明:
- 功能描述
- 参数说明
- 返回值说明
- 常见错误码
—
三、断言配置详解
断言类型
RunnerGo支持多种断言:
| 断言类型 | 用途 | 示例 |
|---|---|---|
| 状态码断言 | 验证HTTP状态 | code == 200 |
| 响应时间断言 | 验证性能 | time < 500 |
| JSON断言 | 验证响应体 | data.id != null |
| 包含断言 | 验证内容包含 | body contains "success" |
| 正则断言 | 复杂匹配 | body matches "d+" |
断言表达式语法
javascript
// 状态码
StatusCode == 200
StatusCode != 404
StatusCode in [200, 201, 204]
// 响应时间
ResponseTime = 200
// JSON路径
JSONBody.code == 200
JSONBody.data[0].name == “张三”
JSONBody.data.length
0
// 逻辑组合
(JSONBody.code == 200) && (JSONBody.data != null)
(JSONBody.code == 200) || (JSONBody.code == 201)
断言最佳实践
完整的接口断言示例:
javascript
// 1. 状态码断言
StatusCode == 200
// 2. 响应结构断言
JSONBody.code != undefined
JSONBody.message != undefined
JSONBody.data != undefined
// 3. 业务逻辑断言
JSONBody.code == 200
JSONBody.message == “success”
// 4. 数据类型断言
JSONBody.data.id is Number
JSONBody.data.name is String
JSONBody.data.createTime is String
// 5. 性能断言
ResponseTime < 500
—
四、数据驱动测试
测试数据准备
创建CSV文件:
csv
username,password,expected_code,expected_msg
testuser,password123,200,success
wronguser,wrongpass,401,用户名或密码错误
,,400,参数缺失
admin,admin123,200,success
RunnerGo数据驱动配置
步骤:
1. 创建测试场景
2. 添加数据文件
3. 引用数据变量
变量引用:
用户名: {{username}}
密码: {{password}}
预期状态码: {{expected_code}}
数据驱动断言
javascript
// 动态断言
StatusCode == {{expected_code}}
JSONBody.message == “{{expected_msg}}”
—
五、接口数据传递
数据提取配置
从一个接口提取数据,传递给下一个接口:
接口1:登录获取Token
javascript
// 提取配置
提取变量: token
提取方式: JSONPath
提取表达式: $.data.token
// 示例响应
{
“code”: 200,
“message”: “success”,
“data”: {
“token”: “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…”,
“userId”: 10001
}
}
接口2:使用Token查询用户
请求URL: {{base_url}}/users/{{userId}}
请求头: Authorization: Bearer {{token}}
多级数据传递
复杂的业务流程数据传递:
1. 登录 –
提取token, userId
2. 查询用户信息 –
提取userName, userRole
3. 创建订单 –
使用userId, userName
4. 支付订单 –
使用订单ID
5. 查询订单状态 –
验证支付成功
—
六、公共组件设计
公共请求头
RunnerGo支持配置公共请求头:
yaml
公共Header配置:
Content-Type: application/json
Accept: application/json
X-Client-Version: 2.0.0
X-Platform: web
签名计算
使用前置脚本计算签名:
javascript
// RunnerGo前置脚本
const timestamp = Date.now();
const secret = “your-secret-key”;
const sign = MD5(timestamp + secret);
// 设置请求头
setHeader(“X-Timestamp”, timestamp);
setHeader(“X-Signature”, sign);
公共断言
配置公共断言,所有接口自动验证:
javascript
// 公共断言配置
1. StatusCode == 200
2. JSONBody.code != undefined
3. ResponseTime < 3000
—
七、Mock服务配置
创建Mock接口
当后端接口未开发完成时,可以创建Mock接口:
json
// Mock响应配置
{
“code”: 200,
“message”: “success”,
“data”: {
“users”: [
{“id”: 1, “name”: “Mock用户1”},
{“id”: 2, “name”: “Mock用户2”}
],
“total”: 2
}
}
Mock服务使用场景
| 场景 | 用途 |
|---|---|
| 接口未开发 | 前端联调、测试设计 |
| 第三方依赖 | 模拟支付回调 |
| 异常测试 | 模拟超时、错误响应 |
| 边界测试 | 模拟特殊数据 |
—
八、测试报告分析
报告内容
RunnerGo自动化测试报告包含:
1. 执行概览
– 总接口数
– 成功数/失败数
– 总耗时
– 成功率
2. 接口详情
– 请求信息
– 响应信息
– 断言结果
– 执行时间
3. 失败分析
– 失败原因
– 错误信息
– 重试建议
报告导出
支持多种导出格式:
- HTML报告
- PDF报告
- JSON数据
报告分享
生成分享链接,团队成员可直接查看报告。
—
九、团队协作
成员权限管理
RunnerGo支持细粒度权限控制:
| 角色 | 权限 |
|---|---|
| 管理员 | 全部权限 |
| 编辑者 | 创建、修改、执行 |
| 执行者 | 仅执行 |
| 查看者 | 仅查看 |
版本管理
接口变更记录:
- 修改历史追溯
- 版本对比
- 回滚操作
协作规范
推荐团队协作规范:
1. 接口变更通知
– 接口修改后通知相关人员
– 更新接口文档
2. 定期评审
– 每周评审接口测试覆盖率
– 清理废弃接口
3. 报告归档
– 重要测试报告归档保存
– 定期分析失败趋势
—
总结
RunnerGo接口测试工作流:
| 环节 | 关键操作 |
|---|---|
| 接口管理 | 目录分类、命名规范、文档完善 |
| 断言配置 | 多类型断言、逻辑组合 |
| 数据驱动 | CSV数据、动态断言 |
| 数据传递 | JSON提取、正则提取 |
| 公共组件 | 公共Header、签名计算 |
| Mock服务 | 模拟接口、边界测试 |
| 团队协作 | 权限管理、版本控制 |
—
下期预告:RunnerGo性能测试入门 – 可视化压测报告与瓶颈分析