news 2026/11/3 3:23:25

Win7下LoadRunner 11.0 Mobile App脚本录制环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Win7下LoadRunner 11.0 Mobile App脚本录制环境搭建

简介:面向移动端测试初学者与需要上手性能脚本录制的一线测试人员,这份文档围绕手机 APP 性能测试脚本开发展开,重点解决 LoadRunner 11.0 环境下真机录制脚本的环境准备与操作流程问题。内容从前提条件切入,依次说明手机与电脑共享网络、安装 LR_03105_Patch4 补丁、选择 Mobile App(HTTP/HTML) 协议、设定录制模式、在真机上操作并生成脚本等关键环节,并对脚本在性能测试、负载测试与压力测试中的典型用途作了归纳。文中还标注了补丁获取地址以及 Vuser_init、Action、Vuser_end 三个脚本段的选择建议,便于对照实操。压缩包内共 1 个 doc 文件,约 359KB,体量轻便,适合作为随查随用的操作参考。已有 483 人学习,说明该流程在实际工作中具有一定通用性。读者可据此理清真机录制的完整链路,避开补丁缺失、网络不通等常见卡点,快速产出可复用的性能测试脚本。

1. 一台 Win7 机器加一支随身 WiFi,App 性能测试脚本最容易卡在前十分钟

第一次录 App 脚本的人,八成以为难点在脚本逻辑,真正卡住的地方往往在前十分钟:LoadRunner 11.0 装好了,新建脚本的协议列表里却翻不到 Mobile App(HTTP/HTML);手机明明连上了电脑热点,操作半天,录完 Action 里只有一行 return 0。做一次完整的 app 性能测试脚本录制,环境其实不复杂,一台 Win7 机器、一个 11.0 的 LoadRunner、一个 LR_03105_Patch4 补丁、一支能让手机连上来的随身 WiFi,四样凑齐就能跑,但它对顺序挑得厉害:补丁要在主程序之后打,热点要在录制之前起,端口要在手机端填对。顺序错一步,VuGen 不报错,只安静地给你一份空脚本。下面按我实际装过的顺序走一遍,新手照着能通,熟手可以直接跳到版本和端口两节。

2. 装 LoadRunner 11.0:系统版本、依赖和 LR_03105_Patch4 的先后顺序

这套环境的版本组合是死的。11.0 是 2010 年前后的产品,后面再出的系统它不认,后面再出的补丁它也不认。我见过最省事的做法不是硬啃新系统,而是拿一台干净的 Win7 SP1 32 位机器,装完系统只打 SP1 和必要的运行库,不装任何杀毒和下载工具,然后一次性把 LR 和补丁装完。

2.1 装之前先对系统:Win7 32 位是这套组合的舒适区

LoadRunner 11.0 官方支持的范围是 Windows XP SP3 到 Windows 7。放到 Win10 或 Win11 上装,安装程序会卡在系统版本检测那一步,即使绕过检测强装成功,录制引擎也会因为 IE 版本和权限模型的差别直接歇工。所以我的建议很直接:要么开一台虚拟机装 Win7 SP1 32 位,要么留一台旧机器专门干这件事,别在主力机上折腾。

32 位和 64 位的选择也有讲究。64 位 Win7 能装,但 VuGen 本身是 32 位进程,录制时依赖的是 32 位的浏览器控件和运行库,64 位系统上经常出现“主程序装好了、录制按钮点下去没反应”的情况。除非你手头只有 64 位系统,否则优先 32 位。

IE 版本是另一个隐形的坎。LR 11.0 的录制引擎绑的是 IE8,IE9 以上会出现录制中途断开、页面加载不全的问题。Win7 出厂自带的是 IE8,装完系统先别去更新它。如果系统已经被升到了 IE11,去控制面板的程序和功能里回退。

依赖组件这块,Win7 原版镜像自带 .NET Framework 3.5.1,一般不用额外装。但如果是精简版系统,3.5 可能被裁掉了,安装程序会在中途报错退出。装之前先确认一遍:

:: 确认 .NET 3.5 是否已启用,Install 值为 1 说明可用 reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /v Install :: 查看当前 IE 版本,这套环境建议停在 8.0 reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version :: 查看系统版本和位数,确认是 Win7 SP1 systeminfo | findstr /C:"OS Name" /C:"OS Version" /C:"System Type"

三条命令分别对应依赖、浏览器、系统三块。第一条如果报“系统找不到指定的注册表项”,说明 .NET 3.5 没启用,去控制面板的“打开或关闭 Windows 功能”里勾上再装 LR。第二条的版本号如果是 9.x 或 11.x,先去回退 IE。第三条的 OS Version 里必须带 Service Pack 1,没打 SP1 的系统装 LR 会在注册组件阶段失败。

环境对照表我整理了一份,装之前对一遍能省掉大部分返工:

项目推荐配置可以但不推荐基本会翻车
操作系统Win7 SP1 32 位Win7 SP1 64 位Win10 / Win11
浏览器内核IE 8.0IE 9.0 / 10.0IE 11 及以上
.NET Framework3.5.1(系统自带)4.0 并存完全未安装
磁盘可用空间20 GB 以上10 GB5 GB 以下
安装路径全英文、无空格有数字含中文或特殊字符
杀毒软件安装期间全部关闭仅关实时防护全程开启

磁盘空间容易被忽略。LR 主程序解压后约 2.5 GB,安装过程还要在临时目录留一份,20 GB 可用空间是稳妥线,低于 10 GB 容易在装到一半时报“磁盘空间不足”然后回滚。

另外装之前把 UAC 关掉。LR 安装程序里有多个子安装包会依次弹权限框,UAC 开着的话,你人不在跟前就卡住了。关法是在控制面板的用户账户里把滑块拉到最低,装完再调回去。

2.2 主程序安装:从挂载 ISO 到第一次启动 VuGen

安装包一般是 ISO 格式。Win7 自带虚拟光驱,双击就能挂载;如果没有,用 7-Zip 直接解压到本地目录也行,解压路径同样不要带中文。挂载完之后进入根目录,找到 setup.exe,右键“以管理员身份运行”。

安装向导第一步会让你选安装类型,选 LoadRunner Full Setup,不要选 Load Generator 或者 Monitor,那两个是给压力机和控制台用的,不含 VuGen 和录制组件。下一步接受许可协议,再下一步选安装路径,默认是C:\Program Files\HP\LoadRunner,我不建议改,因为补丁和部分配置文件里写死了相对路径,改到别的盘符有时候会导致补丁找不到目标。

之后是一个组件列表,会依次提示安装 Microsoft Visual C++ 2005 SP1 运行库、.NET 相关组件、Microsoft Script Debugger 等。这些全部点允许,一个都别跳过。VC++ 2005 运行库是录制引擎的硬依赖,跳过的话主程序能装完,但 VuGen 一打开就报缺少 msvcr80.dll。

安装过程大概 15 到 30 分钟,中间会弹一次重启提示。这里有个细节:提示重启的时候先别急着点“是”,把安装程序完全退干净再手动重启。曾经有一次在重启提示上直接点了确认,系统重启后安装程序没跑完最后一步的注册动作,结果控制台打不开。

重启完之后,先别急着双击桌面的 VuGen 图标。去安装目录的 bin 下确认三个核心文件在不在:

:: 三个文件缺任何一个,都说明安装没有完整走完 dir "C:\Program Files\HP\LoadRunner\bin\vugen.exe" dir "C:\Program Files\HP\LoadRunner\bin\wlrun.exe" dir "C:\Program Files\HP\LoadRunner\bin\LRLauncherApp.exe"

vugen.exe 是脚本开发器,wlrun.exe 是 Controller 控制台,LRLauncherApp.exe 是启动器。这三个都在,说明主程序装全了;少了任何一个,别往下走,直接卸载重装,比重装补丁省时间。

确认完之后给 vugen.exe 设一次兼容性:右键属性 → 兼容性 → 勾选“以管理员身份运行此程序”。这一步不是可选项,Win7 的 UAC 即使关了,某些注册表写入还是会被拦,录制时表现就是端口监听起不来。

2.3 打 LR_03105_Patch4:让 Mobile App(HTTP/HTML) 协议出现在列表里

这是整套环境里最关键的一步,也是最多人漏掉的一步。LoadRunner 11.0 原生不带 Mobile App(HTTP/HTML) 协议,那个协议是后面版本才有的能力。LR_03105_Patch4 这个补丁的作用,就是把移动端的录制能力回填到 11.0 上,装完之后 VuGen 的协议列表里才会多出这一项。

补丁必须在主程序装完并重启之后打,顺序反了补丁会报“未检测到已安装的 LoadRunner”。打之前先把所有 LR 进程杀干净,否则文件被占用,补丁装到一半会失败:

:: 打补丁前先清理残留进程,这三个进程只要有一个在跑,补丁就会装不全 taskkill /f /im vugen.exe taskkill /f /im wlrun.exe taskkill /f /im LRLauncherApp.exe :: 顺便确认一下没有后台残留的录制服务 tasklist | findstr /I "lr"

taskkill 的 /f 是强制结束,/im 是按进程名匹配。后一条 tasklist 是兜底检查,如果还能刷出别的 lr 开头的进程,手动在任务管理器里结束掉。

进程清干净之后,右键补丁 exe,以管理员身份运行。补丁会自己去找 LR 的安装目录,找不到的时候会弹一个路径选择框,这时候手动指到C:\Program Files\HP\LoadRunner,注意是指到 LoadRunner 这一层,不是指到 bin。指错了补丁会装到另一个目录下,看起来装成功了,但协议列表里照样没有。

补丁装完必须重启机器,不是只重启 VuGen。补丁会替换几个 dll 并注册新的协议描述文件,这些动作在系统重启后才完全生效。

重启之后验证方式很简单:打开 VuGen,File → New,在协议列表的搜索框里输入 Mobile,能刷出 Mobile App(HTTP/HTML) 就说明补丁生效了。

提示:打完补丁协议列表里还是没有这一项,八成是补丁装到了另一个 LR 目录,或者装完只重启了 VuGen 没重启系统。这是这套环境里最高频的一次翻车,我一般会在装完之后立刻新建一次脚本验证,验证通过再去动网络那部分。

3. 网络打通:用随身 WiFi 把手机流量引到 VuGen 的监听端口

脚本录制能出内容的前提,是手机上的每一个请求都从电脑上过一遍。VuGen 在录制时会打开一个本地监听端口,手机把网络的出口指向电脑的 IP 加这个端口,请求就会被原样记下来。这一段的坑几乎全在“手机能不能连上这台电脑”和“连上之后请求有没有真的过来”。

3.1 台式机的硬件前提:一块能开热点的无线网卡

笔记本自带无线网卡,Windows 7 可以用系统自带的承载网络功能直接开热点,不需要额外硬件。台式机不一样,绝大多数台式机没有无线网卡,只能加一个 USB 无线网卡。随身 WiFi 这类设备本质就是 USB 无线网卡加一份驱动,插上装完驱动,设备管理器里会多出一个无线网络适配器。

判断一块网卡能不能开热点,不用猜,一条命令就能看出来:

:: 关键看最后一段"支持的承载网络",显示"是"才能开热点 netsh wlan show drivers

这条命令会列出所有无线网卡的能力。如果输出里“支持的承载网络”是“否”,换网卡,驱动层面绕不过去。有些老型号的 USB 网卡(特别是早期的 802.11g 芯片)不支持承载网络,插上能搜到 WiFi 但开不了热点,表现就是netsh wlan start hostednetwork报“组或资源的状态不是执行请求操作的正确状态”。

还有一个容易忽略的点:USB 无线网卡插在 USB 3.0 口上,部分老驱动会认不出来。装驱动失败的时候换到 USB 2.0 口上再试一次,这个玄学问题我在三台机器上碰到过两次。

3.2 起热点:两条 netsh 命令和它的三个前提

热点用系统自带的承载网络起,不用装第三方软件。命令只有两条,但每一条都有前提。

:: 第一条:配置一个虚拟热点。mode=allow 表示允许承载网络 :: ssid 是手机端看到的 WiFi 名称,key 是密码,至少 8 位 netsh wlan set hostednetwork mode=allow ssid=LR_Record key=12345678 :: 第二条:启动热点 netsh wlan start hostednetwork :: 第三条:确认状态,"状态"一栏显示"已启动"才说明起来了 netsh wlan show hostednetwork

mode=allow这个参数必须写。它的作用是把虚拟网卡从禁用状态切成允许,漏掉的话第二条命令会直接报错。ssid建议用纯英文加下划线,中文 SSID 在部分安卓机型上会显示成乱码导致连不上。key至少 8 位,少于 8 位命令会静默失败,也不报错,就是热点起不来。

热点起来之后还有一步是必须做的,也是最多人漏掉的:把电脑当前联网的那张物理网卡,共享给这个虚拟热点网卡。操作路径是控制面板 → 网络和共享中心 → 更改适配器设置,右键已经连上网的那张网卡(有线或无线)→ 属性 → 共享选项卡 → 勾选“允许其他网络用户通过此计算机的 Internet 连接来连接”,下面的下拉框里选虚拟热点对应的那张网卡,名字一般带“无线网络连接 2”或“本地连接”之类的后缀。

这一步做完,Windows 会自动给虚拟网卡分配一个固定网段,常见的是192.168.137.1。这个 IP 是后面手机端要填的地址,记下来。确认一下:

:: 找虚拟热点网卡那一节的 IPv4 地址,一般是 192.168.137.1 ipconfig /all

输出的网卡列表里,找到描述带“Microsoft Virtual WiFi Miniport”或者你那张 USB 无线网卡名字的那一节,看 IPv4 地址。如果显示的是169.254.x.x,说明共享没生效,回去重新勾一次共享,勾的时候要把共享的网卡取消再重新选一次。

3.3 手机端填 IP 和端口:录制能不能出脚本就看这一步

到这里电脑侧就完成了。手机侧要做的只有两件事:连上 LR_Record 这个 WiFi,然后把网络的出口指向电脑的 IP 和 VuGen 的监听端口。

连上 WiFi 之后,长按这个网络名 → 修改网络 → 展开高级选项。IP 设置保持 DHCP 不动,往下找到“主机名”或者“网络接入点”这一栏(不同安卓版本叫法不一样,有的是一个单独的“主机名”输入框,有的是 IP 和端口两个框分开填),填192.168.137.1,端口填8888。iOS 类似,在 WiFi 详情页的 HTTP 那一栏填服务器地址和端口。

8888是 VuGen 在 Mobile App 协议下的默认监听端口,可以在 Recording Options 里改,但建议先用默认值,确认整条链路通了再谈改端口。

注意:这里填的 IP 必须是电脑在热点网段里的那个地址(一般是 192.168.137.1),不是电脑连接外网时拿到的地址。填错的典型表现是手机能连上 WiFi、微信也能刷,但打开待测 App 就一直转圈,录制那边一行都不出。

填完之后建议先做一次链路验证,别直接上 App。先点 VuGen 的 Start Recording,然后在手机浏览器里随便打开一个网页。如果 VuGen 的录制日志里开始滚请求行,说明链路是通的;如果手机浏览器打不开网页,说明出口没指对,或者共享没配对。

再补一条命令行验证手段,录制开始后在电脑上执行:

:: 能刷出 8888 端口的 ESTABLISHED 连接,说明手机的流量已经进到监听端口了 netstat -ano | findstr :8888

如果这条命令什么都没输出,问题一定在手机侧或者热点侧,不用去查 VuGen。如果刷出了大量TIME_WAIT但录制日志里没内容,那问题就在 VuGen 的捕获层级设置上,留到下一章说。

4. 录制脚本:Mobile App(HTTP/HTML) 协议的三种模式怎么选

前面的环境都通了,录制本身反而最快。但协议、捕获层级、录制位置这三个选择如果选错,录出来的东西是废的——要么空的,要么全是看不懂的二进制,要么回放全 404。

4.1 新建脚本与协议选择:为什么不能选 Web(HTTP/HTML)

打开 VuGen,File → New,弹出的向导里选 Single Protocol Script,然后在协议列表里搜 Mobile。选中 Mobile App(HTTP/HTML),点 Create。

这里解释一下为什么不能图省事选 Web(HTTP/HTML)。Web 协议的录制是靠 IE 浏览器的事件驱动来工作的,它挂在浏览器进程上,浏览器发出一个请求它记一个。手机 App 的请求根本不经过电脑上的浏览器,走的是手机自己的网络栈,Web 协议那边完全看不到。选了 Web 协议去录手机,按钮点得下去,进度条也在走,但录完 Action 里什么都没有。

Mobile App(HTTP/HTML) 的机制完全不同:VuGen 在本机开一个监听端口,手机把出口指向这个端口,所有经过的 HTTP 请求被原样抓下来,转换成脚本函数。它不依赖浏览器,也不关心请求是从哪个 App 发出来的。

协议选对之后,脚本目录里会多出一个录制配置文件,这个文件是协议选对的旁证:

:: 协议选对了,脚本目录下才会生成 .lrs 录制配置文件 :: 路径换成你自己的脚本保存目录 dir "D:\LR_Scripts\AppTest\*.lrs" /s

如果这个目录里只有 .prm、.cfg、Action.c 而没有 .lrs,说明协议选错了,删掉重建。

4.2 Recording Options:捕获层级、端口和 Record into 的取舍

新建完脚本,先别点录制,去 Tools → Recording Options 里过一遍,有三个地方要动。

第一个是捕获层级。展开 Recording Options 的 HTTP/HTML 节点,找到 Capture level,一共三档:

  • Socket level data:抓的是 TCP 层原始数据,最全,连 HTTP 头都原样保留。缺点是录出来的脚本可读性极差,一堆十六进制和转义字符。只有在待测接口用了非标准协议、HTTP/HTML 层级抓不到的时候才用它。
  • WinINet level data:挂在浏览器的 WinINet 接口上,只适合 Web 录制,手机场景用不上。
  • HTTP/HTML level:默认推荐。录出来的脚本是可读的 web_custom_request 函数,Body 里的 JSON 也是干净的字符串,后面做参数化和关联都方便。

手机 App 录制选 HTTP/HTML level。如果录出来是空的,可以临时切到 Socket level 再试一次,能抓出东西就说明请求确实到端口了,问题在协议识别上,这时候再反过来分析请求头。

第二个是端口。Network 节点下有个 Port Mapping,默认监听 8888。如果 8888 被占用(下载工具、某些开发服务喜欢占这个端口),改成 8899 或者 9000,改完记得手机端同步改。判断是否被占用:

:: 看 8888 端口是否已被其他进程占用,有输出说明被占了 netstat -ano | findstr :8888

第三个是 Record into Action。这个选项在录制弹窗里也能选,含义是真个录制过程的内容塞进哪一段:

  • Vuser_init:只在虚拟用户初始化时执行一次,适合放登录、握手这类只需要跑一次的动作。
  • Action:每次迭代都执行,绝大多数业务操作放这里。
  • Vuser_end:虚拟用户结束时执行一次,适合放退出登录、清理资源。

一般录业务操作选 Action。如果一条完整业务流里登录只做一次,可以分两次录,第一次录到 Vuser_init,第二次录到 Action。

4.3 录制过程与脚本生成:手机端该怎么点

设置完点 Start Recording。弹窗里 Record into Action 选 Action,点 Start Recording,按钮文字变成 Stop Recording,说明端口已经在监听了。

这时候切到手机,把待测的这条业务流一次性走完:打开首页、登录、进列表、点详情、加购物车、下单。手机端每操作一步,电脑这边 VuGen 的 Recording Log 会滚一行,能看到Recorded: GET /api/home/index这样的记录。看不到滚动就去查第三章说的链路。

几个操作上的细节。第一,手机端的操作要一气呵成,中途别切后台、别接电话、别锁屏,切后台这一下经常会把 App 的网络连接断掉,录制就从中间断了。第二,别开飞行模式去测,那会把整条网络链路重置,端口监听那边的连接全部作废。第三,走完业务流程立刻点 Stop Recording,别在停止之前先去电脑上做别的操作,容易把无关请求也录进来。

点完 Stop Recording,VuGen 会弹一个窗口问是否生成脚本,点 OK,等几秒钟,自动切到 Script 视图,能看到的脚本大致长这样:

Action() { /* 首页接口,GET 请求,Resource=0 表示这是一个页面级请求需要等响应 */ web_custom_request("home_index", "URL=http://api.example.internal:8080/api/home/index", "Method=GET", "Resource=0", "Referer=", LAST); /* 登录接口,Body 是 JSON 串,录下来的账号密码后面必须参数化掉 */ web_custom_request("user_login", "URL=http://api.example.internal:8080/api/user/login", "Method=POST", "Resource=0", "Referer=", "Body={\"mobile\":\"13800000000\",\"password\":\"123456\"}", LAST); return 0; }

web_custom_request是 LR 里最通用的请求函数,手机端录下来的 JSON 接口基本都是这个形态。第一个参数是请求的逻辑名,VuGen 会根据 URL 自动生成,可以手动改成语义更清楚的名字。URL里的是 App 配置文件里写死的服务器地址,不是热点地址,别看到域名不一样就以为录错了。Method对应 HTTP 方法。Resource=0表示这个请求需要等待响应,Resource=1表示只是资源加载不阻塞。LAST是参数结束标记,漏了会报语法错误。

Body 里的账号密码录完第一件事就是参数化。这些内容原样留在脚本里,后面做并发压测时所有虚拟用户共用一个账号,测出来的数据没意义,而且明文密码放在脚本里也不合适。参数化做法是在脚本上方插入lr_save_string和参数列表,把手机号换成{p_mobile}这类占位符。

5. 避坑记录:录不到、录空、连不上热点的五条排查路径

这套环境我装过很多次,出问题的位置高度集中在五个地方。下面每条都按现象、原因、解决的顺序写,照着对一遍基本能定位。

5.1 协议列表里找不到 Mobile App(HTTP/HTML)

现象:VuGen 新建脚本,协议列表从上翻到下,只有 Web(HTTP/HTML)、Web Services、Oracle 这些,搜 Mobile 也没有结果。

原因:LR_03105_Patch4 没装,或者装了但装到了另一个目录,或者装完没重启系统只重启了 VuGen。

解决:先确认补丁到底装到哪了。去C:\Program Files\HP\LoadRunner和C:\Program Files (x86)\HP\LoadRunner两个路径下都看一眼,如果有一个目录下有dat文件夹但是修改时间和主程序不一样,说明补丁装串了位置。卸载补丁重装,安装时路径手动指到主程序实际所在的那一层。装完重启系统,不是重启 VuGen。还有一种情况是补丁装完提示成功,但机器上装了多个 LR 版本,补丁只认第一个,这种情况把多余的版本卸掉。

5.2 录制结束,Action 里只有一行 return 0

现象:录制按钮正常点了,手机上也操作了完整流程,点停止后生成的脚本里只有return 0;,Recording Log 里也没有任何 Recorded 记录。

原因:手机侧的出口没指到电脑,或者指了但端口不对,请求根本没进到 VuGen 的监听端口。最常见的是填了电脑连接外网时拿到的 IP,而不是热点网段的地址。

解决:先在录制状态下执行netstat -ano | findstr :8888。没有输出就一定是网络链路问题,跟脚本无关。回到手机 WiFi 设置里核对填的 IP,必须是ipconfig /all里虚拟热点那张网卡的 IPv4 地址,一般是 192.168.137.1。再确认电脑侧的网卡共享勾上了,共享的下拉框选对了虚拟网卡。还有一种隐蔽情况是手机同时开着移动数据,部分安卓系统会优先走数据网络,把移动数据关掉再试一次。

5.3 手机能连上热点,但 App 转圈打不开

现象:手机 WiFi 列表里能看到 LR_Record,密码也对,连上了,但打开待测 App 一直转圈,或者提示网络异常。电脑这边netstat能刷出 8888 端口的连接,但录制日志里没内容。

原因:电脑没有把外网共享给热点网卡,手机虽然连上了热点,但没有出口,请求发到电脑就断了。也可能是热点网卡被系统识别成了“未识别的网络”,共享规则没生效。

解决:打开网络和共享中心,看虚拟热点网卡下面显示的是不是“未识别的网络”。如果是,把这张网卡先禁用再启用一次,然后重新做一遍共享设置。共享的顺序是先取消所有已勾选的共享,点确定,再重新进属性勾一次,中间别跳步。还有一个容易忽略的点是 Windows 防火墙,防火墙在公用网络模式下会拦掉热点网卡的转发,把当前网络位置改成“工作网络”再试。

5.4 录制到一半 VuGen 卡死

现象:录制进行中,VuGen 界面完全无响应,任务管理器里 vugen.exe 占用一个核跑满,只能强制结束。脚本录了一半,重新打开发现内容不全。

原因:捕获层级选了 Socket level data,同时手机端一次性加载了大量图片和视频资源,几千个请求瞬间灌进录制缓冲区,VuGen 处理不过来。另一个常见原因是录制期间电脑上还开着抓包工具或者另一个 LR 实例,两个进程抢同一个监听端口。

解决:把捕获层级切回 HTTP/HTML level,录制前在 Recording Options 的 URL Filters 里把图片、视频、静态资源这几类过滤掉,只留接口请求。录制期间关掉 Wireshark 之类的抓包工具,也别同时开两个 VuGen。如果已经卡死了,别直接强杀,先在任务管理器里看 vugen.exe 的 CPU 占用,如果一直在涨就再等一分钟,有时候是缓冲区在落盘,强杀反而把已录内容丢了。

5.5 回放报错,脚本里的地址是手机本地地址

现象:录完的脚本回放,日志里全是 404 或者连接被拒绝,打开脚本一看,URL 里写的是http://127.0.0.1:xxxxx或者某个内网地址,跟待测服务对不上。

原因:手机 App 内部用了本地转发或者内置了 mock 服务,录制时抓到的第一个请求是本地回环地址,后面的真实请求挂在这个地址后面。另一种情况是 App 用了 HTTPS,录制时证书校验失败,VuGen 抓到的是失败重定向的地址。

解决:在脚本里全局搜127.0.0.1和localhost,把这类地址替换成真实的服务地址。HTTPS 的情况需要在 Recording Options 的 Port Mapping 里配上证书,或者在 VuGen 的 Runtime Settings 里把证书校验关掉(仅限测试环境)。替换完先单跑一次回放,看日志里的 HTTP 响应码,全部 200 再往下做并发。

6. 装完怎么验证:三步确认这套录制环境真的能用

环境装完、脚本录出来,不等于这套东西能用。我习惯用三步验证,每一步都过了才算收工,中间任何一步失败都回去查对应章节,不要跳步往下走。

第一步验证协议和补丁。不看界面,直接看文件:脚本目录下有 .lrs 文件,VuGen 的协议列表里能搜到 Mobile App(HTTP/HTML),安装目录下的 dat 文件夹修改时间是补丁安装那天。这三条对上,说明补丁装到位了。这一步五分钟能做完,但能挡掉后面八成的问题。

第二步验证脚本本身。把脚本里的 Think Time 关掉再回放,路径是 Run-Time Settings → Think Time → 选 Ignore think time。关掉的原因是回放时带着思考时间要等很久,验证脚本逻辑不需要它。回放跑完之后看 Output 窗口,重点看三行:

/* 回放日志里要重点确认的三类信息 */ /* 1. "You have N HTTP responses" —— N 必须大于 0,等于 0 说明请求一个都没发出去 */ /* 2. "web_custom_request ... was successful" —— 每个请求都要有一条成功记录 */ /* 3. 出现 "Not a single successful response" —— 直接判定脚本无效,回去重录 */

第一行是响应总数,跟录制时手机端操作的接口数量对得上才算完整。第二行是逐个请求的成功标记,有一个失败就去翻那个请求的响应码。第三行是致命信号,出现这行说明整个脚本是废的,别在上面浪费时间调,回去重录一遍比改脚本快。

第三步验证并发能力。脚本回放通了只是单用户能跑,性能测试要的是多用户。打开 Controller,把脚本加载进去,场景设成 5 个虚拟用户、跑 1 分钟、不设集合点。跑完看两个数:成功率必须 100%,平均响应时间在合理范围内(具体数值取决于待测服务,第一次跑只做基线记录)。这一步的意义不是压出什么结论,而是确认这套录制出来的脚本能被 Controller 正常调度——有些脚本在 VuGen 里回放没问题,一到 Controller 里就因为参数文件路径、依赖库缺失直接报错。

从前到后跑完这三步,一套能用的 App 性能测试脚本环境就算落地了。我自己的习惯是,每次重装完这套环境,不管多赶时间,都会先录一条最简的登录流程,然后把这三步走一遍——不是为了验证什么,是因为这套东西翻车从来不在装的时候报错,都在你以为装好了的时候。

从那以后我每次装完 LoadRunner 11.0 加补丁,都会强制走一遍这三步验证,哪怕只是换个虚拟机重装,也不省这一步。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 3:22:10

ABAP屏幕设计实战:SE51建屏、GUI状态与OK_CODE避坑

简介:这份文档围绕ABAP屏幕(Screen)设计实战展开,面向已掌握ABAP基础语法、需要独立完成SAP界面开发的初中级开发人员,也可作为SE38、SE51、SE41等事务代码的上手练习参考。内容从新建程序、设计屏幕、处理控件与逻辑流…

作者头像 李华
网站建设 2026/11/3 3:22:04

WorkBuddy Win11安装实战:REA三步法详解与本地服务统一管理

1. 项目概述:WorkBuddy 是什么,为什么要在 Win11 上装它? WorkBuddy 这个名字最近在技术圈和效率工具社群里出现频率明显变高,但很多人第一次看到时会下意识以为是某家大厂新出的办公套件,或者某个远程协作插件。其实…

作者头像 李华
网站建设 2026/11/3 3:21:45

容器化部署Skill节点的核心技术与实践

1. 为什么需要容器化部署Skill节点?在分布式系统架构中,Skill节点作为业务能力的最小执行单元,其部署效率直接影响整体系统的弹性。传统物理机或虚拟机部署方式面临三个核心痛点:第一是环境一致性问题。开发环境使用Ubuntu 22.04 …

作者头像 李华
网站建设 2026/11/3 3:20:25

线电荷电场仿真实验报告:从离散化到场强可视化的完整流程

简介:这份资源是一份基于Matlab模拟线电荷电场分布的仿真实验报告,面向学习电磁场与电磁波课程、需要完成仿真实验或课程设计的高校学生。报告围绕库仑定律、电场强度与势函数展开,通过设置线电荷分布、构建二维坐标网格、循环累加各点电势&a…

作者头像 李华
网站建设 2026/11/3 3:19:34

Kubectl-neat:简化Kubernetes YAML配置的高效工具

1. 为什么我们需要kubectl-neat?在Kubernetes日常运维中,每个工程师都遇到过这样的场景:当你执行kubectl get pod -o yaml时,输出的YAML内容总是包含大量系统自动生成的字段。这些字段包括:status字段(记录…

作者头像 李华
网站建设 2026/11/3 3:19:08

MOS管驱动与损耗全解析:从原理到工程实践

简介:这份文档面向开关电源与马达驱动电路的设计者,系统梳理MOSFET从器件结构到驱动电路的基础知识,帮助读者跳出只看导通电阻、最大电压和电流的选型误区,建立更完整的设计认知。内容涵盖MOS管种类与结构、导通特性、开关损耗与导…

作者头像 李华