—
前言
大家好,我是性能测试专家。做性能测试8年,用过JMeter、LoadRunner、Gatling。最近深度使用RunnerGo做性能测试,发现它的可视化报告和操作便捷性真的很棒。今天分享RunnerGo性能测试的入门经验。
本文章参考RunnerGo v2.3官方文档
—
一、RunnerGo性能测试模块介绍
功能定位
RunnerGo性能测试模块定位:
- 可视化配置:无需写脚本
- 实时监控:测试过程可视化
- 智能报告:自动生成分析报告
与JMeter对比
| 对比项 | JMeter | RunnerGo |
|---|---|---|
| 配置方式 | XML脚本 | 可视化界面 |
| 分布式 | 手动配置Agent | 内置支持 |
| 监控集成 | 需配置Grafana | 内置监控 |
| 报告分析 | 后处理 | 实时+历史 |
| 学习难度 | 高 | 低 |
—
二、创建性能测试计划
测试计划配置
步骤:
1. 进入”性能测试”模块
2. 点击”新建测试计划”
3. 配置基本信息
配置项:
yaml
测试计划名称: 用户接口压测
测试计划描述: 测试用户相关接口在高并发下的表现
执行方式: 按并发数执行
场景配置
RunnerGo支持多种测试模式:
| 模式 | 说明 |
|---|---|
| 并发模式 | 固定并发数压测 |
| TPS模式 | 按目标TPS压测 |
| 混合模式 | 多场景混合压测 |
并发模式配置示例:
yaml
并发用户数: 100
压测时长: 5分钟
预热时间: 30秒
步进时间: 10秒
接口配置
添加测试接口:
yaml
接口名称: 获取用户列表
请求方法: GET
请求URL: {{base_url}}/users
请求参数:
page: 1
pageSize: 20
断言:
– StatusCode == 200
– ResponseTime < 1000
—
三、测试执行与监控
启动测试
点击”开始执行”,RunnerGo会:
1. 按配置启动压测
2. 实时展示测试数据
3. 自动生成测试报告
实时监控指标
RunnerGo实时展示:
| 指标 | 说明 |
|---|---|
| TPS | 每秒处理事务数 |
| 响应时间 | 平均、最大、最小 |
| 成功率 | 成功请求占比 |
| 并发数 | 当前活跃线程数 |
| 错误数 | 失败请求累计 |
监控图表
RunnerGo内置监控图表:
- TPS曲线图
- 响应时间曲线
- 成功率趋势
- 错误分布
—
四、测试报告分析
报告概览
RunnerGo性能测试报告包含:
1. 执行摘要
– 总请求数
– 成功/失败数
– 平均TPS
– 平均响应时间
2. 性能指标
– TPS分布
– 响应时间分布
– 错误率分析
3. 瓶颈分析
– 慢接口排名
– 错误类型分布
– 建议优化方向
关键指标解读
TPS(Transactions Per Second):
| TPS值 | 性能评价 |
|---|---|
|
优秀 |
| 500-1000 | 良好 |
| 100-500 | 一般 |
| < 100 | 需优化 |
响应时间:
| 响应时间 | 用户体验 |
|---|---|
| 1000ms | 慢 |
瓶颈定位方法
RunnerGo报告帮助定位瓶颈:
1. 查看慢接口排名
– 找出响应时间最长的接口
– 分析是否有共性
2. 分析错误类型
– 超时错误:网络或服务瓶颈
– 500错误:服务端异常
– 429错误:限流触发
3. 对比历史数据
– 看趋势变化
– 识别性能退化
—
五、压测策略选择
基准测试
目的:测试单接口极限性能
yaml
配置建议:
并发数: 10-50
压测时长: 2-5分钟
目标: 确定单接口基准性能
负载测试
目的:测试系统正常负载下的表现
yaml
配置建议:
并发数: 预估日常峰值
压测时长: 10-30分钟
目标: 确认系统稳定运行
压力测试
目的:测试系统极限承载能力
yaml
配置建议:
并发数: 逐步增加直到系统崩溃
压测时长: 持续观察
目标: 找到系统瓶颈点
稳定性测试
目的:测试系统长时间运行稳定性
yaml
配置建议:
并发数: 日常负载水平
压测时长: 1-24小时
目标: 检测内存泄漏、连接泄漏等
—
六、常见瓶颈分析
服务端瓶颈
| 症状 | 可能原因 |
|---|---|
| CPU高 | 计算密集、循环过多 |
| 内存高 | 内存泄漏、大对象 |
| 磁盘高 | IO密集、日志过多 |
| 连接超时 | 线程池满、网络瓶颈 |
数据库瓶颈
| 症状 | 可能原因 |
|---|---|
| 查询慢 | SQL未优化、缺少索引 |
| 连接满 | 连接池配置小 |
| 锁等待 | 锁竞争、长事务 |
网络瓶颈
| 症状 | 可能原因 |
|---|---|
| 响应时间长 | 网络延迟、带宽不足 |
| 超时多 | 网络不稳定、防火墙限制 |
—
七、压测最佳实践
压测前准备
1. 确认压测目标
– 预估用户量
– 确定性能指标要求
2. 准备测试数据
– 足够的测试账号
– 合理的测试场景
3. 通知相关方
– 告知运维团队
– 准备应急预案
压测执行
1. 渐进式压测
– 从低并发开始
– 逐步增加
– 观察系统反应
2. 监控配合
– 监控服务器资源
– 监控数据库状态
– 检查应用日志
3. 记录数据
– 保存压测报告
– 记录瓶颈点
– 建立性能基线
压测后分析
1. 对比基线数据
2. 定位瓶颈原因
3. 提出优化建议
4. 制定优化计划
—
八、RunnerGo压测案例
案例:电商系统压测
测试场景:
- 用户登录:10%
- 商品浏览:60%
- 下单支付:30%
压测配置:
yaml
总并发: 5000
压测时长: 30分钟
预热时间: 5分钟
场景分配:
– 登录场景: 500并发
– 浏览场景: 3000并发
– 下单场景: 1500并发
压测结果:
| 接口 | TPS | 平均响应时间 | 成功率 |
|---|---|---|---|
| 登录 | 450 | 180ms | 99.5% |
| 商品浏览 | 2800 | 350ms | 99.2% |
| 下单 | 1200 | 520ms | 98.5% |
瓶颈分析:
- 下单接口响应时间最长
- 数据库查询慢导致瓶颈
- 建议:添加Redis缓存、优化SQL
—
总结
RunnerGo性能测试要点:
| 环节 | 关键点 |
|---|---|
| 计划创建 | 可视化配置、场景设计 |
| 测试执行 | 实时监控、观察指标 |
| 报告分析 | TPS、响应时间、成功率 |
| 瓶颈定位 | 慢接口、错误类型、资源监控 |
| 优化建议 | 缓存、索引、架构优化 |
—
下期预告:RunnerGo自动化测试编排 – 场景设计与定时任务配置