RunnerGo接口测试实战 – 打造高效API测试工作流

前言

大家好,我是接口测试达人。做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. 失败分析
– 失败原因
– 错误信息
– 重试建议

报告导出

支持多种导出格式:

报告分享

生成分享链接,团队成员可直接查看报告。

九、团队协作

成员权限管理

RunnerGo支持细粒度权限控制:

角色 权限
管理员 全部权限
编辑者 创建、修改、执行
执行者 仅执行
查看者 仅查看

版本管理

接口变更记录:

协作规范

推荐团队协作规范:

1. 接口变更通知
– 接口修改后通知相关人员
– 更新接口文档

2. 定期评审
– 每周评审接口测试覆盖率
– 清理废弃接口

3. 报告归档
– 重要测试报告归档保存
– 定期分析失败趋势

总结

RunnerGo接口测试工作流:

环节 关键操作
接口管理 目录分类、命名规范、文档完善
断言配置 多类型断言、逻辑组合
数据驱动 CSV数据、动态断言
数据传递 JSON提取、正则提取
公共组件 公共Header、签名计算
Mock服务 模拟接口、边界测试
团队协作 权限管理、版本控制

下期预告:RunnerGo性能测试入门 – 可视化压测报告与瓶颈分析

分享到:

探索 RunnerGo 全栈测试平台

RunnerGo 是一款面向企业的全栈测试平台,集接口测试、自动化测试、性能测试、UI测试于一体,助力企业提升研发效能。

接口测试
性能测试
自动化测试
免费体验 RunnerGo