作者:性能测试专家
---
前言
大家好,我是性能测试专家。做性能测试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内置监控图表:
---
四、测试报告分析
报告概览
RunnerGo性能测试报告包含:
1.
执行摘要
- 总请求数
- 成功/失败数
- 平均TPS
- 平均响应时间
2.
性能指标
- TPS分布
- 响应时间分布
- 错误率分析
3.
瓶颈分析
- 慢接口排名
- 错误类型分布
- 建议优化方向
关键指标解读
TPS(Transactions Per Second):
| TPS值 | 性能评价 |
|-------|----------|
| > 1000 | 优秀 |
| 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自动化测试编排 - 场景设计与定时任务配置
作者:性能测试专家,8年性能测试经验,RunnerGo深度用户