在LoadRunner中运行JMeter测试,主要是利用LoadRunner的场景控制、资源监控和报告生成能力来执行已有的JMeter脚本。
提示:以下信息综合了官方文档及技术社区的经验。LoadRunner 对JMeter的支持程度可能因版本而异(例如,有资料提及LoadRunner12.56 版在报告和远程测试支持上会优于 12.55 版),实际操作时请务必以你使用版本的官方文档为准。
主要前提和限制
在开始之前,有几项重要的前提条件和限制需要你特别注意:
环境要求:
保证LoadRunner的 负载生成器(Load Generator) 上已安装 32位或64位的 JRE 8 或 JRE 11。
对于 Linux 负载生成器,建议设置好 JAVA_HOME 环境变量。
JMeter 脚本限制:
如果JMeter脚本包含多个线程组,LoadRunner 会提示你将它们拆分为多个脚本,每个脚本仅包含一个线程组。
事务名称中不包含线程组名称,因此应避免在不同线程组中定义相同名称的事务。
只有JMeter的 TransactionController 下定义的事务名称才会在结果中显示,且事务名称不能包含点号.。
负载控制:在LoadRunner场景中运行时,JMeter 脚本内定义的线程属性(如线程数、 ramp-up period 和循环次数)会被忽略,转由LoadRunner的 Vuser 和场景设置来控制。
运行JMeter测试的步骤
在LoadRunner中运行JMeter测试,主要涉及场景配置和脚本准备。
创建场景和添加脚本
在 Controller 中点击 "新建场景"。
在 "新建场景" 对话框中,选择 "添加脚本"。
从 "脚本类型" 下拉列表中选择 "JMeter 脚本",然后浏览并选择你的JMeter脚本文件(.jmx)。
配置JMeter运行时设置
在场景中右键单击脚本名称,选择 "运行时设置"。
在 "JMeter 设置" 部分,你可以指定自定义的JRE路径,或在 "其他参数" 框中添加Java虚拟机参数(例如,-Xms512m 设置初始堆内存)。
你还可以在 "节奏" 部分设置迭代节奏。
规划场景
像配置其他LoadRunner协议脚本一样,为JMeterVuser 指定负载计划。
执行场景
切换到 "运行" 选项卡,点击开始场景按钮运行测试。
在场景运行期间,你还可以动态添加或停止 Vuser。
脚本和依赖处理
如果你的JMeter脚本使用了外部文件,需要按以下方式放置,Controller 才能将其分发到负载生成器:
数据文件:保证JMeter脚本引用的 .csv 等参数文件和 .jmx 脚本位于同一目录(不应在子文件夹中),且脚本中的引用路径正确。
JAR文件:
对于包含用户添加的类的 .jar 文件,必须放在 .jmx 文件所在目录下的 lib 文件夹中。
对于JMeter插件的 .jar 文件,则必须放在 lib/ext 子文件夹中。
查看测试结果
在LoadRunner中,可以通过标准的 Controller 图表监控JMeter测试的执行情况,例:
正在运行的 Vuser
事务响应时间
每秒通过的事务数
吞吐量
常见问题排查
若遇到问题,可以从以下几方面排查:
保证JMeter脚本可独立运行:在负载生成器上,检查JMeter脚本能否和JMeter安装程序一起正常运行。
检查插件和依赖:如果JMeter脚本使用了插件,保证将这些插件的 .jar 文件添加到LoadRunner嵌入式JMeter安装目录的 lib/ext 文件夹中(通常位于 <LR安装目录>\bin\jmeter\lib\ext),或按照前述的 lib/ext 目录结构放置。
使用专用负载生成器:建议使用专用的负载生成器计算机来运行JMeter测试脚本。使用 localhost 负载生成器从 Controller 运行测试可能导致不稳定。
一些建议
版本兼容性:不同版本的LoadRunner对JMeter的支持程度可能不同(例如,有资料提及LoadRunner12.56 版在报告和远程测试支持上会优于 12.55 版),请留意你所使用版本的特性。
脚本优化:在LoadRunner中运行JMeter脚本前,最好先在JMeter中完成充分的调试和验证,保证其逻辑正确且符合预期。