loadrunner 是 HP 也就是现在 Micro Focus 出品的性能测试工具,整套流程核心分为四大模块,分别是 VuGen 录制脚本,Controller 设计压测场景,Load Generator 执行加压,Analysis 分析测试报告,完整操作顺序就是先录制优化业务脚本,再创建场景配置并发用户加压策略,启动压测执行,压测结束之后导出数据生成分析报告,判断系统并发能力响应时间吞吐量是否达标。这套工具适合 Web 接口业务的负载测试压力测试稳定性测试,使用前需要确认软件授权,被测服务器网络互通,被测业务可以正常手工访问,很多新手卡在脚本关联参数化报错,这也是压测最关键的优化环节,下面按照完整实操顺序拆解全部步骤。
前期准备
第一步 确认环境
确认 loadrunner 版本,被测系统地址,服务器账号,业务测试账号,保证本机和被测服务器网络通畅,关闭防火墙拦截,准备多组测试账号,避免压测的时候账号重复登录报错。
第二步 明确压测目标
提前确定指标,比如并发用户数,目标响应时间,吞吐量 TPS,错误率,压测时长,是峰值压测还是持续稳定性压测。
第一步 VuGen 录制并优化脚本
VuGen 全称 Virtual User Generator,作用就是模拟用户操作生成虚拟用户脚本
1 打开 VuGen,新建脚本,协议选择,普通网页业务选 Web HTTP HTML 协议,如果是接口可以选 Web Service 或者 HTTP 协议,协议选错会导致录制失败
2 点击开始录制,填写被测业务 URL,选择浏览器,设置录制位置,开始操作业务,比如登录查询下单,操作完成之后停止录制
3 脚本生成之后,查看代码,重点做两项优化
参数化,把固定账号密码改成参数列表,模拟多用户,避免同一个账号重复登录报错
关联,处理动态 session token 这类动态值,录制的时候服务器每次返回动态 ID,如果不做关联,多并发压测就会大量报错
4 单脚本回放验证,点击回放,确认脚本回放成功,没有报错,确认业务请求返回正常,脚本通过之后保存脚本,这一步是后续压测基础,单脚本回放失败不要直接上场景
第二步 Controller 创建压测场景
打开 Controller,加载刚才 VuGen 保存好的脚本
1 选择场景类型,有手工场景和面向目标场景,新手优先使用手工场景
2 配置 Load Generator 加压机,本机压测就选本机,分布式压测需要添加远程加压机,保证远程加压机已经启动 agent 服务
3 设置虚拟用户数量,也就是并发数,设置加压策略,常见策略有逐步加压,比如每 2 分钟增加 50 并发,达到最大并发之后保持运行,压测完成之后逐步递减用户
4 设置持续运行时间,设置监控项,添加被测服务器监控,监控 CPU 内存磁盘 IO 网络,同时监控事务响应时间,错误数 TPS
5 保存场景配置,确认脚本路径,加压机状态都是就绪
第三步 启动压测执行
1 点击启动场景,Controller 会分发脚本到 Load Generator,虚拟用户开始执行脚本
2 运行过程中实时监控,观察事务响应时间,错误率,TPS 曲线,如果错误率快速飙升,提前终止压测,排查是脚本问题还是服务器性能瓶颈
3 压测达到设定时长之后,场景自动结束,虚拟用户全部退出
第四步 Analysis 分析结果生成报告
压测完成之后打开 Analysis,导入本次压测结果数据
1 查看核心图表,事务平均响应时间,TPS 吞吐量,错误统计,并发用户曲线,服务器资源监控图表
2 交叉分析图表,把响应时间和 CPU 曲线叠加,判断是否 CPU 饱和造成响应变慢
3 生成 HTML 或者 Word 格式测试报告,记录瓶颈点,比如数据库慢查询,应用服务器 CPU 过高,内存泄漏,得出系统最大可承载并发,判断是否满足业务性能指标
关键优化要点对照表
| 环节 | 常见问题 | 处理方案 |
|---|---|---|
| VuGen 录制 | 动态 token 报错 | 做关联处理动态参数 |
| 参数化 | 账号重复冲突 | 准备多组账号,参数迭代策略设置唯一 |
| Controller | 加压机连接失败 | 开启 LR Agent,检查防火墙账号权限 |
| 压测运行 | 错误率很高 | 优先检查脚本回放,再检查服务器资源 |
| Analysis | 数据曲线异常 | 确认压测期间没有其他业务干扰 |
补充注意事项
第一 压测属于高负载操作,不要直接在生产环境无审批压测,优先在测试环境,生产压测需要提前申请窗口
第二 新版本 loadrunner 对高版本浏览器兼容性一般,录制推荐搭配兼容版本 IE 浏览器
第三 分布式压测,所有加压机时间同步,账号权限统一,不然场景调度失败
第四 压测结束记得清理压测产生的脏数据,避免污染业务数据库
【常见问题】
问题 1 loadrunner 录制脚本之后回放报错怎么办
回答 1 loadrunner 录制脚本回放报错,优先检查动态参数有没有做关联,账号是否参数化,确认被测业务手工访问正常,核对协议选择是否正确,修复之后重新回放,脚本通过之后再进入 loadrunner 的 Controller 场景加压。
问题 2 loadrunner Controller 找不到 Load Generator 怎么办
回答 1 loadrunner Controller 找不到 Load Generator,需要在加压机器启动 LR Agent 程序,确认两台机器网络互通,关闭防火墙,使用有权限账号登录,配置正确加压机 IP,就绪之后才可以在 loadrunner Controller 调度虚拟用户。
问题 3 loadrunner 压测的时候错误率很高是什么原因
回答 1 loadrunner 压测错误率很高,常见原因是脚本没有关联动态 token,测试账号重复,服务器资源耗尽,或者接口限流,需要回到 VuGen 优化脚本,同时查看服务器监控,定位 loadrunner 压测报错根源。
问题 4 loadrunner 压测报告在哪里生成
回答 1 loadrunner 压测执行完成之后,使用 Analysis 模块导入压测结果,加载事务 TPS 响应时间服务器监控数据,在 loadrunner Analysis 里面生成正式压测报告,输出性能瓶颈结论。
【免责申明】
本文内容仅为性能测试工具操作科普,压测会对服务器产生高负载,生产环境压测务必提前审批并做好回滚预案,操作风险由实施人员自行承担,本文不替代官方原版操作手册。


