ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LoadRunner 11.0安装破解到实战:性能测试工程师的完整避坑指南

LoadRunner 11.0安装破解到实战:性能测试工程师的完整避坑指南 说实话十几年前的 LoadRunner 11.0放在今天这个云压测满天飞、K6 和 JMeter 都卷出花的时代看似是个老古董。但只要你去稍微大一点的传统企业或金融、政企类项目里转转就会发现这套经典工具依然顽强地活在无数性能测试机房里。很多老系统的验收报告、性能基线甚至当年录好的脚本全都锁在 LR11 的工程文件里。这篇文章我尽量一次讲透从安装前的系统准备、破解注冊的完整流程到 VUGen 录制脚本、Controller 压测设计、Analysis 结果分析再到我这些年踩过的各种坑。如果你是刚入行做性能测试的新人或者被公司老系统逼着要兼容 LR11 的存量脚本这份实操记录应该能帮你少走不少弯路。1. 拆解项目核心为什么要装 11.0 以及安装前必须搞清的三件事1.1 版本选型的纠结LR11 到底过时了没有每次有人问我现在学 LoadRunner 是学 11.0 还是直接学 12.63我的回答通常是看你目标环境。如果你要去的公司有一堆 2010 年左右上线的核心系统脚本全是 LR11 的 .c 文件你装 12 根本打不开旧工程但如果你做新项目12.63 的 UI 更友好、协议支持也更全。然而 11.0 有一个 12.x 比不了的优势它轻、快、破解生态最成熟、几乎任何一台配置一般的旧电脑都能流畅跑起来而且网上关于它的教程、工具链、常见问题解答数量是最庞大的。还有一点很多培训机构和老牌测试教材至今还在用 11.0 授课原因很简单——LR11 包含了性能测试最经典、最完整的核心逻辑VUser 脚本生成、Controller 压力调度、Analysis 结果分析三大组件一眼能看懂性能测试全貌。所以我这篇虽然以 11.0 为主线但讲到的原理和实操思路换到 12.63 也照样适用。1.2 安装前检查清单别装到一半才拍大腿LR11 对操作系统和浏览器环境相当挑剔我见过太多人一上来直接双击 setup结果卡在配置或录制环节完全没法用。装之前花五分钟排查下面这几项比你事后折腾一整天强得多。第一系统版本。LR11 官方支持 Windows XP、Windows 732 位/64 位均可、Windows Server 2003/2008。在 Win10 和 Win11 上装 LR11 不是不行但必须用管理员身份运行安装程序并把兼容模式调整成 Windows 7。我在 Win10 上装过总体可用但 VUGen 录制时偶尔会碰到浏览器挂钩异常后文会专门讲对策。第二IE 浏览器版本。LR11 录制 Web 脚本默认调用 IE 内核最佳搭配是 IE8 或 IE9。如果系统是 Win7自带 IE8 就很合适Win10 自带的 IE11 和 Edge 往往会导致录制时弹不出浏览器、或者代理端口被占用建议先卸载更新降级到 IE9或者干脆准备一台 Win7 虚拟机。在虚拟机里装 LR11 是我强烈推荐的方案干净、可控、快照随便回滚办公环境也不会被测试工具干扰。第三运行库。LR11 安装包本身会带 VC 2005/2008 运行库但为了保险起见装完系统后先把 VC 运行库全家桶和 .NET Framework 3.5 装上。尤其是 .NET Framework 3.5Win10/11 上默认不启用不走“控制面板 – 启用或关闭 Windows 功能”勾选的话安装过程会一直报错。这个坑我栽过当时折腾了两小时最后发现只是少装了运行库。1.3 关于安装包和破解补丁的准备工作LR11 的安装镜像在网上很好找体积大概在 1.4GB 左右。比较常见的文件名是 LoadRunner_11_0_T9750-16449.iso 或 LR11 破解版合集包里面除了安装镜像通常还附带一个破解补丁文件夹核心文件是 lm70.dll 和一个注册码文档。这里必须先提醒一句杀毒软件对破解补丁的误报率极高360、Windows Defender 都可能直接隔离。所以在解压补丁之前先把自己的杀软临时关掉或者把补丁目录加进信任白名单。不要等文件被静默删除后才开始排查白白浪费时间。2. 安装与破解全流程实录2.1 安装步骤详解从挂载镜像到组件选择用虚拟光驱软件或直接在 Windows 资源管理器里右键 ISO 文件选择“装载”挂载镜像后找到 setup.exe右键管理员身份运行。启动界面不要急着点 LoadRunner 安装先看一眼安装说明确认补丁包里提供的注册码是大写还是小写、有没有需要特殊处理的格式。这一步很多人忽略但后面输注册码的时候大小写错了激活不了来回折腾很烦。选择安装 LoadRunner 11.0 后会进入引导界面直接 Next。在注册信息页用户名和组织可以随便填关键是序列号必须准确。常见补丁包里自带的序号码一般是一长串比如 AEABEXFR-YK5WQHEFJXK8Q7MZ3D7Z6WB4X9K 这类格式。不同补丁包的 key 可能不同以你下载到压缩包内的 license 说明文件为准。别把安装时输入的序列号和破解读取后的 License 搞混前者是安装凭证后者是激活软件功能的钥匙。组件选择这里新手建议直接选 Complete完整安装。如果你熟练可以拆开装VUGen 录脚本、Controller 压测、Analysis 分析三个核心组件必选如果你需要压测 Java 或 .NET 应用再把对应的附加组件勾上。不推荐精简安装LR11 组件间有依赖关系少装了某个协议支持录制时才发现缺这缺那回头补装很麻烦。安装路径不要带中文和空格我习惯放在 C:\HP\LoadRunner 下路径越短越清爽。装完后会提示重启虚拟机或电脑照做就行。2.2 破解流程与 License 注入关键操作就是替换一个文件重启完成后先别急着打开任何 LoadRunner 组件接下来是破解和 License 注入的关键操作顺序搞错容易前功尽弃。第一步打开安装目录下的 bin 文件夹默认在 C:\HP\LoadRunner\bin找到 lm70.dll 这个文件。右键查看属性记住它的大小和修改日期方便后面核对是否替换成功。第二步确认当前所有 LoadRunner 相关进程都退出包括后台可能自动驻留的进程管理器。最稳妥的检查方法是打开任务管理器看有没有下列进程在运行vugen.exe、wlrun.exe、analysis.exe、mdagent.exe有的话全部结束掉。这里的操作细节必须说清楚被杀软拦截时先把安全软件退出文件被替换失败会直接导致 License 加载失败。第三步用补丁包内的 lm70.dll 覆盖原文件。替换时可以先把原文件备份成 lm70.dll.bak万一以后出问题还能还原这个习惯帮我避免过几次重装系统的悲劇。覆盖完后再看一眼文件大小如果跟补丁包里的完全一致说明替换成功。第四步打开 License 配置工具位置在“开始菜单 – HP Software – LoadRunner – License”处或者是 C:\HP\LoadRunner\bin\lragent.exe 启动的 License 管理器界面。在 License 界面里选择“添加新许可证”把补丁文档中提供的永久 License 粘贴进去点应用即可。第五步验证破解是否成功。打开 Controller新建一个简单场景此时左上角的信息面板会显示当前 License 的类型和有效期。如果显示 Permanent 且没有 10 天试用倒计时说明破解成功。如果仍然显示 10 天期限多半是 lm70.dll 被还原、或者 License 粘贴时混入了空格和换行符重新操作一遍就好。注意很多网上流传的 11.0 注册码在有新补丁包时仍然有效但这类通用码在不同版本补丁下未必 100% 通用。最可靠的做法是永远看你下载的压缩包里自带的说明和注册码不要随便用别人博客里贴的一串 code。License 注入失败不会损坏软件随时可以重试不需要急着重装。2.3 破解后组件联动检查三大模块一个都不能少License 激活只是第一步完整安装还包括三个核心组件的功能联动验证。我一般按这个顺序检查一是 VUGen。打开 Virtual User Generator确认能正常创建新脚本、选择协议树进入脚本编辑界面后工具栏上的录制和回放按钮可以正常点选。VUGen 是每天写脚本用的主要阵地它出问题的概率最大尤其是录制时浏览器不起。二是 Controller。打开 HP LoadRunner Controller确认能新建场景能识别到本机的 Load Generator。在很多安装中本机 Load Generator 没有自动配置好需要在 Controller 的“Load Generators”面板里手动添加输入 localhost 或本机 IP然后点击连接测试状态变为 Ready 才行。不少新手在这一步发现 VUGen 都好好的一进 Controller 就跑不起来多半就是这个环节遗漏了。三是 Analysis。打开 Analysis 模块如果能正常打开一个空的 Analysis 会话基本就算通过了。Analysis 到结果分析阶段还有可能因为证书或数据解析报错后面我会专门说。3. 核心使用流程从脚本录制到结果分析全链路3.1 VUGen 脚本录制与编辑协议选择是重头戏打开 VUGen新建脚本时系统会弹出一个协议选择框。这里有相当多新手掉坑不管三七二十一选了 Web Services 或别的协议结果实际压测的只是一个普通 Web 应用。我通常建议直接选 Web – HTTP/HTML这是覆盖范围最广、录制最稳定的选项。除非你明确知道被测系统是 Web Services 接口调用或者需要模拟 Socket 长连接否则不要轻易换协议。录制之前先确认 IE 浏览器已经完全关闭。LR11 录制 Web 脚本时是依赖 IE 的进程挂钩如果已经有 IE 窗口开着录制时可能出现两个浏览器实例冲突、或者代理端口被占用。把 IE 的所有窗口关干净然后点击录制按钮弹出的录制设置里选择录制到 Action 还是 vuser_init压测场景中一般登录操作放 vuser_init核心业务操作放 Action退出和清理放 vuser_end。这个划分不是拘于形式直接决定你后面在 Controller 里做集合点和迭代设置时是每一轮都完整登录还是只跑一遍登录。录制过程中的操作节奏也要控制好每完成一个业务步骤在界面上停顿 1-2 秒等 VUGen 把请求记录完整后再进入下一步。不要以为点得越快录制越准后端的请求一旦乱序后面检查脚本时全是乱成一团的请求排查成本极高。整个录制结束后会生成一个包含大量 url()、web_url()、web_submit_data() 这些函数的脚本没有编程基础的人先把它们当成文字流程看录制的核心是业务步骤的完整性。如果脚本代码里出现大量乱码通常是字符集问题选择 Recording Options 里的 Advanced将 Support Charset 设为 UTF-8重新录制即可。3.2 脚本增强关联、参数化、事务和集合点录制下来的脚本往往不能直接用原因很简单服务器每次返回的动态值比如 sessionId、token写死在脚本里回放第二次就失效。解决办法就是关联。最简单的方式是 VUGen 的自动关联录制结束后在 Tools – Compare with Vuser 中对比两次录制系统会提示可能存在的动态值从而自动建立关联函数。最高频手动关联的场景是通过 web_reg_save_param 函数把上一次请求响应中的某个值取出来在下一次请求中引用。正则表达式的匹配规则不用学得很深但要理解左右边界的概念取服务器响应中两个固定字符串之间的内容这就是关联的本质。参数化是用来模拟真实用户数据多样性的。右键点击脚本中需要参数化的常量比如用户名、商品编号选择“Replace with a Parameter”从参数表里定义一组取值范围包括文件参数、内部生成的随机数等。压测中常见的是用 File 类型从.dat 文件里按行读取用户名密码。参数表设计要注意每条虚拟用户取值的策略是顺序取还是随机取如果压测目标是登录接口强烈建议每条虚拟用户分配唯一账号避免多个用户同时用一个账号触发并发踢下线。事务和集合点分别对应 LR 里的两个函数lr_start_transaction 和 lr_rendezvous。事务用于衡量某一段业务操作比如登录、下单、支付整个动作的响应时间录制时可以在业务操作前打上事务开始标记操作结束后打上结束标记。集合点则是为了在同一瞬间让多条虚拟用户同时发起某个操作比如电商秒杀场景就是典型的 1000 人同时点“立即购买”。函数 lr_rendezvous 放在事务开始之前设置里选上“在虚拟用户到达集合点后阻塞直到所有用户都到达”即可。务必记住集合点用得太频繁会让整个压力模型失真一般只在核心竞争场景上设置。3.3 Controller 场景设计与负载模型场景设计是性能测试的中央控制台也是最能体现测试工程师对业务理解的地方。新建 Controller 场景时会要求你指定脚本和负载生成器。负载生成器Load Generator是关键概念如果你只有一台机器跑脚本生成压力那 Vuser 数量再高也是单机压力场景里支持添加多个 Load Generator可以让多台电脑共同施压。我在公司干活时经常借用实验室的其他电脑当负载机只要装上 LR Agent 并保证网络互通添加好后连接测试状态为 Ready 即可这个机制在 LR11 里已经相当成熟了。场景类型的选择也要讲究需要精确控制压力曲线就用 Manual Scenario自己定义 Vuser 逐步加载的策略如果只是想验证系统能否达到一个目标吞吐量用 Goal-Oriented Scenario 更省事设定一个并发用户数目标或每秒事务数目标由 Controller 自动调配。对于绝大多数性能测试报告来说手工场景更可控也更符合向领导汇报“我在什么压力级别下测的”这样的叙事脉络。计划Schedule设置里我通常设置为每 30 秒加载 50 个虚拟用户持续稳压 15 分钟然后每 30 秒释放 50 个用户这样能观察系统在负载爬坡和处理高峰两个阶段的响应趋势。监控指标里Windows Resources 基本必开如果你压的是 Linux 服务器则需要安装 rstatd 守护进程来获取 CPU、内存、磁盘指标。要记得提前在被压服务器上把对应的监控服务配好等压测开始发现数据是空的再回来配监控就晚了。3.4 Analysis 结果解读从曲线到瓶颈判断压测跑完后数据会保存在结果文件里打开 Analysis 模块就能看到完整的图表。新手拿到几十张图往往会懵但其实核心图只有几张平均响应时间图、每秒事务数图、并发用户数变化图、Windows 资源利用率图。判断瓶颈的基本逻辑并不复杂当并发用户持续上升时如果平均响应时间同步上涨而每秒事务数停止增长系统吞吐已经到顶了这时候应该去看资源图找 CPU 是否已经 100%、内存是否明显不足、磁盘队列是否长时间高水位运行。如果资源还没饱和但响应时间已经恶化则优先考虑应用层问题单一应用服务器线程数用完或者数据库连接池耗尽都是最常见的隐藏瓶颈。LR11 的 Analysis 可以把多张图关联起来同步对比比如把并发用户曲线和响应时间曲线放在同一坐标观察非常直观。这里插句话Analysis 生成报告的时候不要图省事只导出默认的 Summary Report点开 HTML Report 向导把事务响应时间、每秒点击率、资源使用这些主图一并导出这样的报告呈现给项目组和领导才算完整。绩效验收或者性能调优阶段最怕数据不完整后面返工还要重新压一遍。4. 常见问题与排查技巧实录4.1 录制时 IE 打不开或报错这个问题的复现率极高90% 以上都是因为 IE 版本过高或 IE 开启了一些保护模式。LR11 录制 Web 脚本时IE 会以代理方式启动如果 IE 设置了 Enhanced Protected Mode或者系统开启了多进程沙箱代理挂钩就会失败。我在 Win10 上遇到“录制后浏览器一闪而过没有任何请求产生”的问题最后是在 IE 的“Internet 选项 – 高级”里取消勾选了“启用增强保护模式”并且在“工具 – 兼容性视图设置”中把被测网站加入兼容性视图列表。如果 IE 版本降不下来还有一个实用技巧不依赖自动录制改用手动录制的 URL 模式或者直接基于抓包工具导出的 HAR 文件来生成脚本。虽然 11.0 不是直接支持导入 HAR但你可以通过 fiddler 抓包后手工编辑脚本工作量会大一些但至少不会被浏览器绑定卡死。4.2 中文乱码问题录制脚本时屏幕上已经正常显示了中文界面但生成的脚本里提交的中文参数全变成了乱码这种通常是默认字符集不对。把 Recording Options 里的 Advanced 选项将 Charset 从默认改成 UTF-8再重新录制一遍基本能解决。如果脚本已经录制好了但里面是乱码也可以直接在脚本顶部手动添加一句 web_set_max_html_param_len 和修改请求头中的 Content-Type 编码但我个人建议别手动折腾直接重录最快。4.3 Controller 本地负载机连不上创建场景后添加 Load Generator 并输入本机 IP点击连接后显示 Failed几乎是路径和权限的问题。先看 LR Agent 进程是否已启动安装目录下 mdagent.exe 没跑起来的话负载机永远连不上。确认这个进程存在后再检查负载机和 Controller 之间是否被防火墙拦截Windows 防火墙要放行 LoadRunner 相关端口。最粗暴但有效的办法是先把防火墙临时关掉试一次如果是防火墙原因再去定制入站规则。另一个隐蔽原因是Controller 所在机器登录账户不是管理员或者 UAC 权限过高导致 Agent 创建失败。右键 Controller 图标选择以管理员身份运行可以解决大多数权限坑。4.4 分析报告打开为空或报错Analysis 能正常运行但打开结果文件时报“无法解析”通常是因为结果库文件损坏或者没正常保存。压测过程中可别随便中断 Controller强制结束进程会导致结果数据库文件处于未完成状态。如果已经碰到这种情况可以尝试在 Controller 中重新运行一次场景并正常结束或者直接打开 Controller 的结果目录找到 .lrr 文件所在路径在 Analysis 里用“打开最近结果”修复加载。还有一类情况是磁盘空间满了结果写不完直接中断压测前一定要预留足够的磁盘空间。4.5 破解文件被杀软隔离这个出现的频率远比想象中高特别是新装电脑上有 360、腾讯管家或 Windows Defender 时lm70.dll 替换完一重启就被隔离到恢复区License 回到 10 天试用状态。解决办法不复杂在杀软设置中把整个 LoadRunner 安装目录加入信任区再重新替换一次文件。替换后先别急着重启电脑先打开 License 管理工具确认 License 已经永久生效再重启能有效减少被二次隔离的概率。5. 从 11.0 到 12.63 的迁移与兼容性建议最近网上关于 LoadRunner 12.63 下载和使用的关注度又上来了不少原来用 11.0 的团队开始考虑升级。这里我必须说点实话如果你手上有大量 11.0 存量脚本升级到 12.63 并不是双击安装那么轻松的事。12.63 默认能打开 11.0 生成的脚本工程但打开后协议类型和依赖库有部分会自动升级个别代码结构比如老的 lr_think_time 参数、关联函数格式需要手工调整。反过来12.63 生成的脚本是没法在 11.0 里打开的所以升级前一定做好脚本迁移和回归对比测试。另外12.63 在 Windows 10/11 上表现确实比 11.0 稳定得多UI 现代化Controller 和 Analysis 的联动也更强。如果你所在团队没有历史包袱直接用 12.63 起步更省心。但从教学和原理理解角度LR11 的经典设计反而是最直观的。我的经验是在一台 Win7 虚拟机里同时装 LR11.0在物理机 Win10 里装 12.63两边工程文件用 git 管理既能跑老项目又能用新版做新任务互不干扰。虚拟机里的 LR11 快照保存好出问题回滚比别人重装系统快多了这个方案我用了三年从没因为工具本身加班过。6. 基于个人实操的几点体会装过十几遍 LoadRunner 11.0、带过好几批测试新人之后我想说几句可能别人不爱听的大实话。第一不要迷信“最新版”工具是解决问题的不是用来炫耀的。很多客户现场的验收评审会只认 LoadRunner 生成的性能测试报告模板你用再新再贵的压测工具不如一份格式规范的 LR 报告有说服力。第二破解工具和注册码本身不复杂复杂的永远是环境IE 版本、系统权限、防火墙、杀毒软件、运行库排查这些所花的时间才是大头。所以我一贯建议把 LR11 装在一台专用的 Win7 虚拟机上做一次完整配置后打一个快照以后测试环境脏了乱了一分钟回滚。最后再送一个实操细节为了让 Controller 压测时的数据更稳如果你用 Load Generator记得把负载机器的电源管理设置为“从不睡眠”局域网传输和系统休眠经常让压力曲线断崖式下跌这个坑看起来很低级但真的会在关键指标汇报当天冒出来。希望这份教程能帮你顺利跨过安装和初用这两道坎后续脚本设计、瓶颈分析这些进阶玩法咱们再慢慢聊。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进