请求超时 - JMeter HTTP2 插件

Posted

技术标签:

【中文标题】请求超时 - JMeter HTTP2 插件【英文标题】:Request Timeout - JMeter HTTP2 Plugin 【发布时间】: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)

我几乎尝试了所有方法,还得到了这个*** question,关于新版本的码头不兼容性。

HTTP1 请求仍然有效,但 HTTP2 请求正在到达服务器,但从未处理任何事情。 我还测试了一些 JMeter 也无法访问的公共 HTTP2 站点。除此之外,通过 Curl 进行的简单 HTTP2 请求也有效。所以我的服务器没有问题。 HTTP2 JMeter 插件肯定有问题,我不知道为什么。

请帮忙 ._.

【问题讨论】:

你能在 github 中提供一个复制器吗?别忘了把你的 jmeter 测试场景也放在那里,我喜欢在我的本地运行测试:) 【参考方案1】:

尝试将 HEAP 大小增加到不小于 5Gb 并在 HTTP2 请求管理器中设置超时。完成以上所有操作后,我的异常就消失了。

【讨论】:

以上是关于请求超时 - JMeter HTTP2 插件的主要内容,如果未能解决你的问题,请参考以下文章

HTTP2 请求示例使用 Jmeter4 崩溃,Java 10 No Client ALPNProcessors

无法通过JMeter发送HTTP2请求

Jmeter性能测试请求超时:目前遇见有三种情况

JMeter Web性能测试增强版系列1

使用 JMeter 的 HTTP/2 请求因“nullSession”而失败 (jetty-alpn)

JMeter学习(二十九)使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建请求创建插件安装监听服务器资源等