
我最早是在物理机上折腾LoadRunner的结果被折腾得够呛。Win10上装12.60各种兼容性设置、补丁来回试两天都没稳定跑起来换成Win7倒是能装可公司配的新电脑连Win7驱动都找不齐。后来索性把LoadRunner彻底搬进虚拟机和LoadRunner配套的系统环境里用一台虚拟机专门承载这套性能测试工具从安装到录制脚本再到压测一步到位问题全消。这篇就把从零搭建虚拟机、安装LoadRunner到完成一次可参考的真实性能测试的全过程拆开讲清楚顺便把我在虚拟机场景下踩过的那些坑也一并交代了。这套流程适合谁不管是刚入行想学性能测试的新人还是被老旧LoadRunner版本兼容性折磨的在职测试/开发又或者需要临时搭一套性能测试环境做验证的运维照着这篇走基本都能在半天内把环境拉起来并且完成第一个可用的压测脚本。读完你会清楚为什么推荐虚拟机方案、虚拟机里如何规划资源、安装时哪些地方容易翻车、以及录制和压测阶段最可能遇到的几个拦路虎怎么处理。1. 为什么把LoadRunner装在虚拟机上很多人第一反应是LoadRunner直接装本机不就行了为什么要绕一道虚拟机这个问题的答案要分三个层面说清楚。如果你也经历过装到一半报错、录制时浏览器“不听使唤”、换电脑就要重新折腾环境这些问题你会理解虚拟机方案并不是多此一举而是性价比最高的解法。1.1 兼容性问题才是真正的导火索LoadRunner这工具年头不短从LoadRunner 11、11.5到12.x、12.60再到后来的2021、2023版本迭代节奏不算快。但问题是很多公司现在跑的还是12.50或12.60甚至还有用11.5的老项目。这些老版本对操作系统非常“挑剔”官方支持列表里写的是Windows Server 2012/2016、Win7这些老系统并不太欢迎Win10 1903之后的版本。录制脚本时老版本默认依赖IE内核Win10里连IE都被主动藏起来更别提Edge接管之后录制经常直接失败。UAC权限控制、Windows Defender实时扫描、系统补丁强制更新都会在安装或运行中突然跳出来捣乱。我在物理机上装12.60时遇到最典型的状况安装进度到80%左右一个关于Vuser组件库的报错弹出来说无法注册某个DLL查了半天是系统安全策略把安装程序生成的临时文件拦截了。这种问题不是不能解决但要反复调整系统策略代价很高。虚拟机里用Win10 LTSC 2019或Windows Server 2016镜像干净、可控、更新少老版本工具在这种环境里表现反而比新系统稳定得多。1.2 虚拟机方案的核心优势隔离、快照、可复制虚拟机方案真正的价值不只在解决兼容性更在环境管理上。第一是隔离。性能测试工具装起来会写入大量系统组件、环境变量、服务注册项如果跟日常开发环境混在一起很可能污染其他工具链。我在一台物理机上同时装过LoadRunner和某个微服务开发环境之后发现项目的Maven构建偶尔会莫名报错排查到最后就是LoadRunner安装时改动的系统路径冲突。分一台虚拟机专门跑LoadRunner这类问题几乎不会发生。第二是快照。这个对压测场景尤其重要。你压测前系统是干净状态压完可能产生大量日志、临时文件甚至某些组件状态被改坏。直接在虚拟机管理软件里打个快照测试完一键恢复环境立刻回到初始态。很多资深的性能测试老手都是这么干的省去重复安装的时间。第三是可复制。虚拟机文件说到底就是一整个文件夹你在这台机器上配好了完整环境拷贝到另一台电脑上导入就能用。团队里要多人协作做性能测试完全可以一个人装好其他人复制镜像即可不用各自踩一遍安装坑。1.3 虚拟机配置规划别拍脑袋按这套建议来刚开虚拟机时配置规划很关键。给少了卡成幻灯片给多了宿主电脑受不了。根据我多次实际使用的经验按下面的规格来相对稳妥配置项推荐分配说明CPU2核4线程LoadRunner主要负载在Controller调度和Agent执行2核够用若压测并发用户多可给4核内存4GB6GB4GB是最底线录制脚本时浏览器VuGen分析器同时开建议给到6GB磁盘60GB动态分配安装包解压文件脚本产物压测日志60GB比较从容网络桥接模式如果压测目标服务器在局域网内桥接连接更稳定仅本机演示用NAT也行虚拟化引擎开启VT-x/AMD-V在虚拟机设置里勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”否则部分组件可能报错宿主机这边建议物理内存不低于16GBCPU 8核以上磁盘建议SSD。虚拟机不是把资源吃满就好你还要给宿主系统留出余量否则压测时宿主卡死测试结果一样废。给虚拟机分配的内存不要超过物理内存的一半这一点我在后面会再提一次真的很重要。2. 虚拟机搭设与系统准备方案定好了就进入实操。虚拟机软件的选择、Windows系统镜像的选用、虚拟机参数的设置每一步都影响后续LoadRunner安装和使用是否顺利。这个环节我尽量把“选哪个、为什么、怎么设”一次说透。2.1 虚拟机软件选型VMware还是VirtualBox目前最主流的虚拟机软件就两个VMware Workstation Pro和Oracle VirtualBox。前者在企业里占有率极高后者因为免费开源个人用户和教学场景用得多。我把两者的典型差异列在下面对比项VMware Workstation ProOracle VirtualBox价格付费有试用期新版本对个人用户有免费许可开源免费性能与图形适配更成熟USB、3D加速、磁盘IO都更稳日常够用重负载下略弱快照功能强支持多级快照和自动快照支持但管理体验一般网络模式NAT、桥接、Host-Only逻辑清晰同样支持但NAT下偶有配置繁琐的问题系统兼容性Win10/Win11下表现稳定某些更新后可能出现扩展包不匹配问题如果你目标是快速稳定地跑LoadRunner我建议直接用VMware Workstation Pro。17版本比较新装Win10/Server系统都顺利社区里教程最多遇到问题好查。VirtualBox也不是不行就是安装扩展包、配置USB、调整网络这些环节经常需要多花点时间对追求“装完就安心压测”的场景不够省心。至于现在网上经常有人提到“VMware 17没有配置和打开选项”那多半是安装包不是完整版或者界面语言版本导致的菜单名称差异后面我会单独说。2.2 创建Windows虚拟机关键设置一次到位虚拟机软件装好后创建虚拟机的基本流程不复杂但有几个关键点容易被忽略直接影响LoadRunner后续表现。第一步是准备系统镜像。LoadRunner要装在Windows里我建议选Windows 10 LTSC 2019或Windows Server 2016。前者没有应用商店和一堆预装应用干净且稳定后者更贴近服务器环境跑压测场景也合适。不要用最新版Win11老版本LoadRunner在Win11上问题更多。第二步是创建虚拟机。以VMware为例新建虚拟机向导里选择“典型”就可以客户机操作系统选“Microsoft Windows”和“Windows 10 x64”不要选错32位或64位。虚拟磁盘选“将虚拟磁盘存储为单个文件”更方便迁移大小设置为60GB勾选“立即分配所有磁盘空间”会占用物理磁盘但性能更好不勾选则是动态增长更省空间推荐不勾选。第三步进入虚拟机设置有两处必须调整处理器设置里勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”这是嵌套虚拟化支持。LoadRunner的某些性能监控组件和Vuser进程调度会依赖这类CPU指令不开启的话安装时可能不报错但后续Controller运行场景时容易异常。内存设置建议6GB。前面表格也说了4GB是底线但VuGen录制、Controller场景、Analysis分析这几个环节有时会同时跑内存给足能省去很多卡顿烦恼。网络模式这里多说一句。如果你压测的是局域网里的服务器选择“桥接模式”让虚拟机像一台独立物理机一样出现在网络里访问目标服务器走的是纯二层网络跟物理机没区别如果你只是为了自己练手被测系统也跑在同一台虚拟机上那NAT模式也可以。但注意NAT模式下如果目标服务器有IP白名单限制或者需要基于MAC地址做认证就会比较麻烦。我自己的习惯是默认桥接省事。2.3 系统装完后的必要环境优化Windows系统装完、VMware Tools也安装好之后先别急着装LoadRunner花十分钟做几项优化后面会省出几个小时。第一关闭UAC。用户账户控制UAC会在安装程序想写系统目录时弹权限提示LoadRunner安装过程中要弹好几回而且弹窗时机不稳定容易让人以为安装卡住了。控制面板→用户账户→更改用户账户控制设置把滑块拉到“从不通知”。第二关闭Windows Defender实时保护。安装LoadRunner时它会在后台扫描所有解压出来的文件导致安装速度骤降有时还把破解文件或注册机直接隔离了。设置里把实时保护临时关掉等装完再开。杀毒软件也同理安装阶段建议暂时退出。第三关闭系统休眠和睡眠功能。压测有时要跑几十分钟甚至数小时虚拟机一旦进入睡眠虚拟网卡可能重连失败LoadRunner场景可能意外中断。电源选项里把“睡眠”设为“从不”然后关掉休眠文件。第四安装完成后打个快照。这是最容易忽略但最值钱的步骤。我现在每次搭好一个新的LoadRunner环境装完系统、装好工具、验证能正常跑脚本之后一定会打一个快照命名“初始干净环境”。之后无论怎么折腾都能一键回到这个状态。别小看这个习惯它能帮你节省大量重复安装的时间。3. LoadRunner安装全流程拆解虚拟机环境准备好重头戏就来了。LoadRunner本身安装步骤不算太复杂但两个关键决策——版本选择、安装顺序——搞错的人非常多。这一节我把整个安装阶段的要点按顺序讲到位。3.1 安装前的环境检查清单磨刀不误砍柴工很多安装失败其实在系统准备阶段就埋下隐患了。我在虚拟机里装之前会先过一遍下面这份清单确认当前登录账户是管理员并且右键安装程序选择“以管理员身份运行”而不是双击。确认C盘剩余空间不小于20GBLoadRunner默认装到C盘安装解压过程还会额外占用空间。确认Windows系统补丁已更新到较新状态特别是一些老版本LoadRunner依赖的VC运行库系统补丁没装全时经常装不上去。确认虚拟机的网络连通正常LoadRunner安装时需要向许可证服务器做本地认证虽然不强制联网但网络环境乱会造成不必要的注册问题。确认杀毒软件和Defender实时保护处于关闭状态这个前面提过安装阶段务必关闭。这份检查清单花不了几分钟但每次装LoadRunner前都过一遍能避免大量“安装到一半报错查半天发现是环境问题”的情况。3.2 版本选择与安装包获取版本问题直接关系到后面的稳定性和学习成本。现在大家用的LoadRunner版本大概分几类LoadRunner 12.50/12.60目前网上教程、各类经验贴里用得最多的版本参考资料丰富虚拟机场景下表现稳定。新手入门建议优先考虑这个系列。LoadRunner 2021/2023OpenText收购后的新版本界面有变化对Win10/11的支持更好但网上基于老版本的教程可能部分不符合需要自己多摸索。LoadRunner Community Edition社区版可以从官方网站申请注册一个账号就能拿到试用许可功能有一定限制但学习完全够用。版本上我的建议很直接如果你是自学、看教程为主选12.60问题少、答案多如果你是公司项目要求、必须用新版那选2023但要有点心理准备新版的菜单和配置路径变动不小。安装包获取方面官方路径是注册OpenText账号后下载试用版。网上也能找到很多安装包资源但我不建议从不知名渠道下载里面的文件可能被植入广告甚至恶意程序。正规途径下载后安装包一般在4GB到5GB左右先确认下载文件完整再开始装不要解压到一半卡住。3.3 安装主程序与License配置要点安装包解压后目录里有几个文件夹关键的是setup.exe和Install Manager。步骤拆开看右键以管理员身份运行setup.exe安装器会先检查系统环境自动弹出安装Management Server、安装Prerequisites等选项。先点“Install Setup Prerequisites”这一步会自动安装VC运行库、.NET Framework等一系列依赖组件。第一次装的时候这一步可能耗时较长耐心等待即可。依赖装完再选择“Install LoadRunner”进入主程序安装。组件默认全选即可一般包括LoadRunner Agent、Controller、Analysis、VuGen、LoadRunner Professional核心组件。安装模式选择Standalone独立模式不要选Server模式也不用连接共享数据库除非你要做大规模集中式压测。安装路径建议保持默认不推荐改到中文路径或空格路径LoadRunner对路径敏感这是老毛病。安装完成后启动界面会让你选择License类型。如果用的是社区版直接填Community版许可如果用企业版试用填官方申请到的试用序列号。License状态可以在“Help → About LoadRunner / License”里确认注意有效期限和最大虚拟用户数。安装顺序上有个教训想多提醒一句永远先装Prerequisites再装主程序。很多人图省事直接跳过了Prerequisites结果主程序安装过程反复报缺少系统组件最后还是要回头补装白白浪费时间。另外安装完主程序后如果提示重启虚拟机重启前先把杀毒实时保护重新打开免得后续下载补丁或测试时系统裸奔。4. 虚拟机里的功能验证与脚本录制装完之后先别急着拿真实项目开压。先把LoadRunner各组件启动一遍确认在虚拟机环境下都能正常工作特别是VuGen的录制功能这里最容易暴露问题。录制脚本是性能测试的入口脚本质量直接影响压测结果的可信度。4.1 首次启动确认各个组件正常LoadRunner装好后开始菜单里会出现多个组件入口新手容易搞混。简单梳理下这些组件的分工Virtual User GeneratorVuGen用于录制脚本、编辑脚本、参数化和调试是性能测试中最常用到的组件。Controller设计和执行压力场景指定使用哪些脚本、多少虚拟用户、多长时间监控整个测试过程。Analysis分析测试结果生成各类图表和报告是看体检测结论的地方。Agent Process代理进程在压测执行时负责把虚拟用户“灌”到被测系统。首次启动建议按“VuGen → Controller → Analysis”这个顺序各打开一遍确认没有报错。我见过不少人在虚拟机上装完LoadRunner一跑VuGen就提示缺少某个系统组件就是因为前置依赖没装全。如果遇到这种情况先回去补装Prerequisites再不行就把Visual C运行库整个装一遍。启动时还有一个常见问题老版本LoadRunner在某些Windows更新后的系统上启动时提示“组件未正确注册”甚至弹错后界面直接消失。这时候先在控制面板里修复安装一次LoadRunner一般能解决实在不行卸载干净重装注意卸载后要把安装目录残留文件夹和注册表相关项清理掉再装成功率才高。4.2 录制第一个脚本以登录场景为例脚本录制是上手LoadRunner的关键步骤。以最简单也最常见的Web登录场景为例完整走一遍录制流程打开VuGen选择“File → New Script and Solution”在协议选择里选“Web - HTTP/HTML”这是最常用的Web协议适合大多数B/S架构应用。创建后点击工具栏中的“Record”按钮弹出录制设置框。在“Application Type”选“Internet Applications”浏览器选择IE或者本机安装的Chrome。如果你用Chrome注意老版本LoadRunner需要配套的录制插件选IE通常最省事。在“URL Address”里输入被测系统的登录页地址设置好工作目录点击“Start Recording”浏览器会自动打开并开始录制。正常进行一次登录操作输入用户名密码、点击登录、进入首页、退出登录。每一步操作都会实时被录制为脚本代码。点击“Stop Recording”VuGen会把刚才的操作转换成脚本。保存脚本命名清晰一些比如“login_test”。录制完成后的脚本看起来是一大堆类似web_submit_data、web_url的函数调用。新手往往觉得难懂其实只需要把握核心登录操作对应的通常是web_submit_data函数函数里包含了表单参数。这里先不要求完全读懂代码含义能跑通最重要。点击“Run”按钮运行一次脚本在“Replay Log”里看到执行成功的记录说明录制流程基本没问题。4.3 录制环节最常见的几个坑录制时翻车是最打击人的我把踩过的坑集中列一下你对照着排查比自己瞎试快得多浏览器打不开或者打开了不加载信天网站。这多半是系统默认浏览器设置的问题。LoadRunner默认调用IE模块老版本必须保证IE可用设置里把IE设为默认浏览器并把IE的“启用第三方浏览器扩展”选项关掉。录制的脚本是空的只有几个无关请求。检查浏览器有没有弹窗拦截、代理设置是否异常另外录制时不要点浏览器里的“停止”按钮有时会中断录制会话。HTTPS页面录制时证书报错。在录制设置里勾选“Enable HTTPS recording”并在系统里把LoadRunner的根证书先导入受信任证书列表。页面在虚拟机上打开特别慢。先确认虚拟机内存和CPU分配然后检查VMware Tools是否已安装没装的话鼠标体验和浏览器渲染都会明显卡顿。录制过程中动一下鼠标就产生了大量不相关事件。在录制设置中把“Recording Level”从“Extended Services”改为“Basic Recording”可以过滤掉很多无用的JS脚本和动态元素请求。录制不是一蹴而就的多录几次、对比不同录制的差异才能慢慢理解LoadRunner对脚本的处理逻辑。如果录制反复失败还有一个备选方案手动编写脚本不过学习曲线陡得多新手还是先解决录制问题更实际。5. 在虚拟机上完成一次真实的性能测试环境通、脚本录好就可以直奔主题跑一次真实压测了。这一节我会从性能测试的准备步骤、Controller场景设计、Analysis报告解读三个环节展开让你看完就能独立做一轮“脚本优化 → 压测设计 → 结果分析”的完整链路。5.1 脚本优化参数化、关联与检查点录制下来的原始脚本一般情况下不能直接用于压测原因很简单脚本里写死了你刚才登录用的用户名、密码、访问的URL。压测时几十上百个虚拟用户都使用同一个账号不仅不符合真实场景还可能触发被测系统的安全限制。所以上压测之前脚本要做三个基本优化。第一个是参数化。把脚本里的用户名、密码、查询关键词等数据从固定值替换成数据源。操作方式是在VuGen的脚本编辑器里右键选中需要参数化的字符串选择“Replace with a parameter”名称设为“username”类型选“File”然后把准备的测试账号数据写到一个.dat文件里指定文件路径和列号即可。LoadRunner的虚拟用户每次迭代时会按设定的方式顺序、随机、唯一从文件中取值这样每个用户都是不同的身份。第二个是关联。很多系统登录后服务器会返回一个token或session ID后续请求必须携带这个动态值才能真正访问成功。录制脚本时这个值被固定写入了压测时会因为token过期或无效而报错。处理方式是使用web_reg_save_param函数把服务器响应中动态变化的部分先捕获到参数里然后在后续请求中用{token}引用。我见过不少新人脚本跑手动一遍通一压测就大量失败多半就是关联没做。第三个是检查点。压测不仅要看响应时间还要确认业务是否真正成功。用web_reg_find函数可以在服务器响应中搜索一个代表“登录成功”的文本比如“欢迎admin”如果找不到脚本会将这个请求标记为失败。这样压测结束后你可以明确区分“服务器响应慢”和“业务逻辑报错”两类问题而不是被一堆HTTP 200欺骗。另外事务和集合点也是两个常用工具。关键操作建议加事务lr_start_transaction(login)和lr_end_transaction(login, LR_AUTO)包住登录请求这样Analysis报告里能直接看到登录操作的平均耗时并发尖峰测试时用lr_rendezvous(ready)可以让所有虚拟用户同时汇集在登录按钮处实现真正的并发点击。5.2 Controller中的场景设计从冒烟到阶梯加压脚本在VuGen里单独跑通后就该交给Controller压测了。Controller的界面看起来复杂其实核心就三件事选择脚本、配置虚拟用户数、设置运行策略。打开Controller选择已保存的脚本然后在“Scenario Groups”区域设定虚拟用户数量。新手建议分三轮进行不要一上来就1000用户第一轮冒烟测试5个虚拟用户运行5分钟目的是验证脚本在压测状态下能否稳定执行。第二轮基准测试50个虚拟用户运行15到20分钟观察系统在中等负载下的响应时间、错误率。第三轮压力测试逐步增加到200甚至500个虚拟用户观察系统在什么时候开始出现明显性能拐点。还有一个容易被忽略的选项是“Initialize Users”和“Ramp Up”时间设置。在场景设计里把虚拟用户设置为渐变加载比如每10秒加载10个用户比让所有用户同一秒启动温和得多。原因很简单瞬间涌入大量用户会把被测系统打懵也会让虚拟机的CPU瞬间打满结果可能既不是系统的真实极限还容易导致Controller自身卡死。我在虚拟机上就遇到过500个Vuser同时启动虚拟机直接假死最后只能强制恢复快照重来。运行期间Controller的仪表盘会实时展示活动用户数、响应时间、吞吐量、错误率等指标。务必跑完预定的完整时间段再停止不要手动点停否则Analysis里部分统计可能缺失影响结果完整性。5.3 Analysis报告解读别只会看平均响应时间压测结束后Controller会提示“View Results”跳转到Analysis工具。Analysis生成报告时新手最容易做的事情是只看Avg Response Time然后说“系统平均響應时间1.2秒性能不错”。这个结论往往是错误的因为平均响应时间掩盖了真实问题。正确的读图顺序是这样的先看Running Vusers曲线确认虚拟用户是否按照设定逐步加载、平稳运行、按计划退出。再看Transaction Summary这是事务成功率和响应时间的总表关注Failed事务数量确认有没有业务失败。然后看Average Transaction Response Time曲线响应时间随着用户数增加而上升是正常的重点关注它是否出现突然的陡升点这个拐点就是系统的性能瓶颈位置。最后看Throughput曲线和Hits per Second吞吐量在某个点停止增长了说明系统已到处理上限这时候即使响应时间还在可接受范围内也要警惕。我在实际操作中特别看重一条经验压测结果不能只看平均值要看90%用户的响应时间。Analysis报告里有个Percentile图可以看到90th percentile的响应时间这个值远比平均值能代表真实用户体验。如果一个系统的平均响应时间是1.2秒但90%用户响应时间是4.5秒说明有大量请求被某一个慢接口拖住了需要进一步拆分事务数据定位原因。虚拟机环境下跑出来的分析数据要记住它反映的是虚拟机的资源情况不是纯粹的被测系统性能。比如虚拟机本身CPU被打满压测结果必然失真。所以Analysis报告要结合虚拟机宿主的监控数据一起看这也是为什么我建议压测时在宿主上也打开任务管理器确认虚拟机的CPU、内存没有成为瓶颈。6. 虚拟机环境下最容易踩的坑LoadRunner在虚拟机上跑通不难但整个使用周期中有几个坑几乎是高频出现的有些是LoadRunner老版本的“历史遗留问题”有些是虚拟机和性能测试工具之间的“化学反应”。我把它们集中整理在下表方便你快速对照排查。6.1 常见问题速查表与排查路径现象可能原因排查思路与解决方案安装时提示缺少.NET Framework或VC组件Prerequisites未正常安装完成先单独运行一次Prerequisites安装确认依赖全绿后再装主程序启动VuGen时面板空白或组件报错系统补丁不全或安装时被安全软件干扰补装系统更新关闭Defender实时保护后修复安装LoadRunner录制时浏览器无法打开或无法生成脚本默认浏览器设置异常、IE被禁用或扩展冲突将IE设为默认关闭第三方浏览器扩展或改用Chrome加录制插件压测时大量虚拟用户报错但本机跑脚本正常脚本中关联未做token/session固定导致检查响应中动态参数用web_reg_save_param做关联Controller运行几十个用户后虚拟机变卡甚至无响应虚拟机内存/CPU分配不足或Ramp Up时间过短增加虚拟机资源将Vuser加载时间拉长不要瞬间涌入License状态异常或最大用户数突然变为不可用License密钥过期或试用期耗尽检查Help中的License信息重新申请试用许可证Analysis打开时卡在“读取数据”界面虚拟磁盘空间不足或结果目录中有损坏文件清理磁盘空间将结果输出目录换到空间充足的盘符虚拟机上次意外关机后启动报错虚拟机文件锁异常或强制断电导致启动时选择“我已移动该虚拟机”重新关联必要时删除.lck文件虚拟机网络适配器vmnet1出现感叹号VMware网络服务异常在Windows服务中重启VMware DHCP和NAT服务或重新安装VMware Tools这张表基本覆盖了我在虚拟机里用LoadRunner遇到的大部分问题。如果偶然遇到表里没有的怪现象通用排查思路很固定先看系统日志事件查看器→Windows日志→应用程序再看LoadRunner安装目录下的日志文件。老经验是LoadRunner的日志虽然长但真正有价值的错误信息往往就在弹出的对话框里别直接把对话框点掉先截图再关。6.2 关于虚拟化嵌套和性能损失的一点体会把LoadRunner放进虚拟机会有人担心性能损失影响压测结果。实测下来性能损失真实存在但没有想象中可怕。CPU密集型的脚本处理虚拟机比物理机慢10%到20%这是虚拟化层带来的损耗网络IO在桥接模式下基本可以忽略内存访问瓶颈则不明显。真正要注意的反而是两个容易忽略的问题。第一嵌套虚拟化必须开启。虚拟机里运行LoadRunner这种会调用CPU性能计数器的工具需要在VMware里勾选VT-x/EPT支持以及在虚拟机操作系统中把Hyper-V彻底关掉。如果你装了WSL、Docker Desktop这类依赖Hyper-V的组件它们会抢占虚拟化层导致VMware的嵌套虚拟化失效这种情况下LoadRunner的Controller运行场景时经常莫名其妙报“无法获取系统性能计数器”。第二不要在虚拟机里做极限容量测试。如果你的目标是测试系统能否扛住5000个并发用户不应该指望一台虚拟机里跑满5000个Vuser。大胆的估值是跑5000个Vuser大致需要多台客户机或一台高配置物理机作为负载生成器。虚拟机上跑三五百个Vuser用来练习、做日常回归、做中小规模压测没有问题但极限并发测试还是要把Agent拆到多台机器上这也是LoadRunner本身支持分布式Agent部署的原因。6.3 快照、备份与环境复用的实操心得这篇文章讲了系统搭建和测试流程最后想特别说一个贯穿始终的习惯——环境复用。每次装好环境、验证脚本能跑通、压测结果正常这三个节点我都建议各打一个快照。快照名称要清楚比如“装好系统”“装好LoadRunner”“初始干净环境”“压测前状态”不要全叫“快照1”“快照2”否则过两个月你就分不清哪个是哪个。具体使用场景举例我这周要做一次针对某内部系统的压测从“初始干净环境”快照恢复系统干干净净磁盘和内存都是最佳状态直接开始压测测完再恢复快照虚拟机文件夹大小和状态都回到初始。这样既避免了时间长了虚拟机磁盘膨胀也避免了上一次压测残留的日志和临时文件影响下一次结果。如果你需要把LoadRunner环境分享给同事直接在虚拟机软件里使用“管理→克隆”功能生成一个克隆副本。克隆时选“创建完整克隆”这样副本完全独立不会跟原虚拟机产生冲突。同事拿到克隆文件后在VMware里“打开虚拟机”选择“我已复制该虚拟机”等VMware Tools重新生成唯一标识后就能正常用。这个方法比让同事重新下载安装包、走一遍安装流程高效太多了。我在虚拟机里用LoadRunner的时间长了最大的感受是环境本身不是目的可靠可复现才是性能测试的底牌。每次压测结果出来如果环境状态都是干净、一致、可追溯的那么不管这个结果是好的还是坏的它都有说服力。这也是为什么我花了大量篇幅在环境搭建和管理上——性能测试这个领域数据和环境可信度往往比工具玩得花不花更决定项目成败。最后再分享一个小技巧虚拟机上跑压测脚本之前去Controller的“Tools→Options→Execution”里把虚拟用户启动的间隔时间稍微调宽一点比如默认可能是1秒你改成5秒几十个Vuser同时启动时虚拟机的磁盘IO和CPU负载会平滑很多。这个坑我踩过不止一次调整后再也没出现过压测开始时虚拟机假死的情况。