You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter 4/5端口设置方法及跨机测试端口差异与失败原因排查

嗨,我来帮你梳理这两个JMeter的问题,一步步给你拆解~

一、JMeter 4.x 和 5.x 设置端口的方法

不管是JMeter 4还是5,你日志里提到的这个端口是JMeter用来接收Shutdown、StopTestNow这类控制命令的RMI监听端口,设置方式主要有两种:

  • 启动时临时指定(适合单次测试)
    直接在启动测试的命令里加JVM参数就行,比如你用的4446、4445就是这么设置的,命令格式像这样:

    jmeter -n -t your_test_script.jmx -Dserver.rmi.localport=4446
    

    也可以用-Djmeter.rmi.port=XXXX参数,效果完全一样,都是指定JMeter监听控制命令的端口。

  • 修改配置文件永久生效
    找到JMeter安装目录下bin文件夹里的jmeter.properties文件,打开后找到下面这行配置:

    # server.rmi.localport=4000
    

    去掉开头的注释符#,改成你想要的端口号,比如:

    server.rmi.localport=4446
    

    保存文件后重启JMeter,之后每次启动测试都会默认用这个端口了。

二、两台机器测试结果差异的原因分析

先看你的日志:第一台有正常的请求采样数据(summary里的请求数、响应时间都正常),而第二台的summary显示0请求,说明测试根本没执行任何请求就结束了,端口4445和4446的差异不是直接原因,这个端口只是监听控制命令用的,和请求能不能跑起来没关系。重点排查这几个方向:

  1. 脚本或依赖文件不完整
    第一台的脚本路径是/home/ouitead/scriptsJmeter/TdC_15012019/all_tu.jmx,第二台是/scriptsJmeter/all_tu.jmx。要检查:

    • 脚本里有没有引用外部文件(比如CSV数据源、配置文件)?这些文件在第二台机器上是否存在,路径和脚本里写的是否一致?
    • 脚本里用了JMeter插件吗?比如自定义函数、第三方Sampler,如果第二台机器没装对应的插件,脚本可能没法正常初始化请求,自然没有采样结果。
  2. JMeter环境不匹配

    • 两台机器的JMeter版本是不是一样?如果第一台是4.x,第二台是5.x(反过来也一样),脚本里的某些组件可能存在兼容性问题,导致无法执行。
    • JDK版本是否符合要求?JMeter 4和5都需要JDK 8及以上版本,要是第二台机器的JDK版本太低或者损坏,会导致JMeter没法正常运行。
  3. 目标服务访问受限
    测试的目标服务器,第二台机器能正常连接吗?比如:

    • 两台机器的网络环境不同,第二台被防火墙挡住,没法访问目标服务的端口;
    • 目标服务的IP白名单没有包含第二台机器的IP,导致请求被拦截,自然没有请求结果。
  4. 测试启动参数差异
    第一台启动时用了-e -o /report/TU_27_02来生成测试报告,第二台的日志里没看到这些参数,是不是启动命令里的其他配置不一样?比如线程组的线程数、运行时长设置,会不会第二台的配置根本没触发请求执行?

如果还找不到问题,建议在第二台机器上用GUI模式打开脚本,看看有没有报错提示,这样更容易定位问题~

内容的提问来源于stack exchange,提问作者Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:58:05