无法通过JMeter发送HTTP2请求

无法通过JMeter发送HTTP2请求,jmeter,http2,Jmeter,Http2,我正试图通过JMeter发送HTTP2请求。 我已经根据我的java版本下载了alpn引导文件:java版本“1.8.0_151”->alpn版本是8.1.11.v20170118(根据)。此外,我还将alpn引导文件的路径添加到jmeter.bat中: set JVM_ARGS= -Xbootclasspath/p:D:\apache-jmeter-5.1\apache-jmeter-5.1\lib\alpn-boot-8.1.11.v20170118.jar @echo off rem

我正试图通过JMeter发送HTTP2请求。

我已经根据我的java版本下载了alpn引导文件:java版本“1.8.0_151”->alpn版本是8.1.11.v20170118(根据)。此外,我还将alpn引导文件的路径添加到jmeter.bat中:

set JVM_ARGS= -Xbootclasspath/p:D:\apache-jmeter-5.1\apache-jmeter-5.1\lib\alpn-boot-8.1.11.v20170118.jar
@echo off

rem   Licensed to the Apache Software Foundation (ASF) under one or more
rem   contributor license agreements.  See the NOTICE file distributed with
...
但我在JMeter中收到一条错误消息:

java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No Client ALPNProcessors!
    at org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:138)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Connection.connect(HTTP2Connection.java:69)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.setConnection(HTTP2Request.java:280)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:140)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:117)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: No Client ALPNProcessors!
    at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.<init>(ALPNClientConnectionFactory.java:57)
    at org.eclipse.jetty.http2.client.HTTP2Client.lambda$doStart$1(HTTP2Client.java:155)
    at org.eclipse.jetty.http2.client.HTTP2Client$ClientSelectorManager.newConnection(HTTP2Client.java:438)
    at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:222)
    at org.eclipse.jetty.io.ManagedSelector.access$1500(ManagedSelector.java:60)
    at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:825)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:754)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:672)
    ... 1 more
    Suppressed: java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/ALPN
        at org.eclipse.jetty.alpn.java.client.OpenJDK8ClientALPNProcessor.init(OpenJDK8ClientALPNProcessor.java:42)
        at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.<init>(ALPNClientConnectionFactory.java:77)
        ... 8 more
    Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.alpn.ALPN
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 10 more
java.util.concurrent.ExecutionException:java.lang.IllegalStateException:没有客户端alpnProcessor!
位于org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:138)
位于com.blazemeter.jmeter.http2.sampler.HTTP2Connection.connect(HTTP2Connection.java:69)
位于com.blazemeter.jmeter.http2.sampler.HTTP2Request.setConnection(HTTP2Request.java:280)
位于com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:140)
位于com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:117)
位于org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
位于org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
位于org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)
位于java.lang.Thread.run(未知源)
原因:java.lang.IllegalStateException:没有客户端ALPNProcessor!
位于org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory(ALPNClientConnectionFactory.java:57)
位于org.eclipse.jetty.http2.client.HTTP2Client.lambda$doStart$1(HTTP2Client.java:155)
位于org.eclipse.jetty.http2.client.HTTP2Client$ClientSelectorManager.newConnection(HTTP2Client.java:438)
位于org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:222)
org.eclipse.jetty.io.ManagedSelector.access$1500(ManagedSelector.java:60)
位于org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:825)
位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:754)
位于org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:672)
... 还有一个
抑制:java.lang.NoClassDefFoundError:org/eclipse/jetty/alpn/alpn
位于org.eclipse.jetty.alpn.java.client.OpenJDK8ClientALPNProcessor.init(OpenJDK8ClientALPNProcessor.java:42)
位于org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory(ALPNClientConnectionFactory.java:77)
... 8个以上
原因:java.lang.ClassNotFoundException:org.eclipse.jetty.alpn.alpn
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 10多
我猜这个问题与jmeter.bat文件中的alpn路径有关,但是如何纠正它呢

  • 首先,确保JMeter正在使用Java 1.8.0_151并使用
    -Xbootclasspath
    参数,您可以通过添加并使用以下代码来实现这一点:

    您应该得到如下输出:

  • 检查
    alpn引导
    文件是否确实在那里:

  • 清理输入,即删除空白,在末尾添加分号,并用引号将值括起来:

    set JVM_ARGS="-Xbootclasspath/p:D:\apache-jmeter-5.1\apache-jmeter-5.1\lib\alpn-boot-8.1.11.v20170118.jar;"
    
  • 如果一切顺利,您应该能够成功执行HTTP2请求:

  • 更多信息:

  • 首先,确保JMeter正在使用Java 1.8.0_151并使用
    -Xbootclasspath
    参数,您可以通过添加并使用以下代码来实现这一点:

    您应该得到如下输出:

  • 检查
    alpn引导
    文件是否确实在那里:

  • 清理输入,即删除空白,在末尾添加分号,并用引号将值括起来:

    set JVM_ARGS="-Xbootclasspath/p:D:\apache-jmeter-5.1\apache-jmeter-5.1\lib\alpn-boot-8.1.11.v20170118.jar;"
    
  • 如果一切顺利,您应该能够成功执行HTTP2请求:


  • 更多信息:

    谢谢您的回复。我遵循了您提供的步骤,结果如下:JMeterJava版本与我使用控制台获得的版本匹配。但是JMeter不接受-Xbootclasspath参数,除非alpn启动文件确实存在,否则Http2请求仍然无法发送谢谢您的回复。我遵循了您提供的步骤,结果如下:JMeterJava版本与我使用控制台获得的版本匹配。但是JMeter不接受-Xbootclasspath参数,除非alpn启动文件确实存在,否则仍然无法发送HTTP2请求