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

JMeter 4.0 Java请求采样器执行报错求助

排查JMeter Java请求执行时的SSL握手错误

先给你拆解下这个错误的核心:你看到的这个WARN日志其实是JMeter的插件管理器在尝试连接官方服务器获取插件更新信息时触发的,本质是JVM不信任目标服务器的SSL证书,导致PKIX路径构建失败。不过这里要先区分两种情况来处理:

一、如果只是日志出现警告,Java请求实际能正常运行

这种情况下这个警告不影响你的业务采样,只是插件管理器的自动更新检查出了问题,可选择性解决:

  • 方法1:导入JMeter插件服务器的证书到JVM信任库
    1. 用浏览器打开JMeter插件官网,导出网站的根证书(操作步骤:点击浏览器地址栏的锁图标 -> 查看证书 -> 导出为.crt格式文件)
    2. 用JDK自带的keytool命令导入证书到JVM的信任库,命令如下(替换路径和证书名):
      keytool -import -alias jmeter-plugins -keystore $JAVA_HOME/jre/lib/security/cacerts -file /你保存证书的路径/jmeter-plugins.crt
      
      注意:默认信任库密码是changeit
  • 方法2:临时禁用SSL证书检查(仅测试环境用,不推荐生产)
    修改JMeter启动脚本(Windows是jmeter.bat,Linux是jmeter.sh),添加JVM参数:
    -Djavax.net.ssl.trustStoreType=JKS -Dcom.sun.net.ssl.checkRevocation=false
    

二、如果Java请求本身执行失败(确实和SSL相关)

如果你的Java请求采样器是在调用HTTPS接口,那这个证书问题就会直接影响业务执行,解决方式如下:

  • 方法1:导入目标服务器证书到JVM信任库
    和上面导入插件证书的步骤一样,把你请求的HTTPS服务器的根证书导入到JMeter使用的JVM的cacerts信任库中即可
  • 方法2:在Java请求代码中忽略SSL验证(仅测试用)
    可以在你的采样器代码里添加一段忽略证书验证的逻辑,示例代码如下:
    private void disableSSLCertCheck() {
        try {
            // 创建信任所有证书的TrustManager
            TrustManager[] trustAllCerts = new TrustManager[]{
                new X509TrustManager() {
                    public X509Certificate[] getAcceptedIssuers() { return null; }
                    public void checkClientTrusted(X509Certificate[] certs, String authType) {}
                    public void checkServerTrusted(X509Certificate[] certs, String authType) {}
                }
            };
            // 初始化SSL上下文
            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            // 设置默认的SSLSocketFactory和HostnameVerifier
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
            HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    在你的采样器runTest方法的开头调用这个方法即可。

额外需要排查的点

  • 确认JMeter使用的JDK版本和你打包Java请求时用的JDK版本一致,避免版本不兼容问题
  • 检查你的Jar包是否包含了所有依赖,如果采样器依赖其他第三方库,要把这些依赖Jar也放到JMeter的lib或lib/ext目录下(注意不要和JMeter自带的Jar冲突)
  • 仔细查看jmeter.log的完整日志,确认是否有其他和Java请求执行相关的异常,别只盯着这个插件管理器的警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:28:11