【发布时间】:2020-11-20 13:14:28
【问题描述】:
我使用的是 Blazemeter 的 HTTP2 Sampler,它由 JMeter Plugin Manager 官方提供。
在他们的仓库中,有一些步骤:https://github.com/Blazemeter/jmeter-http2-plugin
我在我的 Mac 上应用了所有必需的步骤(我还注意了 Mac 特定的细节)。 成功集成后,我尝试对本地 HTTP2 REST 服务进行 HTTP2 调用。 在尝试之后,它保持在循环中并且没有任何反应。没有错误,没有警告,只是我停止请求后的超时错误。
这是我的采样器结果:
Thread Name:Thread Group 1-1
Sample Start:2020-07-30 20:03:53 CEST
Load time:0
Connect Time:110
Latency:0
Size in bytes:928
Sent bytes:0
Headers size in bytes:0
Body size in bytes:928
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:java.util.concurrent.TimeoutException
Response message:null
HTTP2SampleResult fields:
ContentType:
DataEncoding: ISO-8859-1
这是停止请求后的响应:
java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1957)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2092)
at com.blazemeter.jmeter.http2.sampler.HTTP2Connection.awaitResponses(HTTP2Connection.java:171)
at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:221)
at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:145)
at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:121)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:630)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.base/java.lang.Thread.run(Thread.java:830)
我几乎尝试了所有方法,还得到了这个Stackoverflow question,关于新版本的码头不兼容性。
HTTP1 请求仍然有效,但 HTTP2 请求正在到达服务器,但从未处理任何事情。 我还测试了一些 JMeter 也无法访问的公共 HTTP2 站点。除此之外,通过 Curl 进行的简单 HTTP2 请求也有效。所以我的服务器没有问题。 HTTP2 JMeter 插件肯定有问题,我不知道为什么。
请帮忙 ._.
【问题讨论】:
-
你能在 github 中提供一个复制器吗?别忘了把你的 jmeter 测试场景也放在那里,我喜欢在我的本地运行测试:)
标签: java jmeter jetty http2 blazemeter