请求超时 - 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 的 HTTP/2 请求因“nullSession”而失败 (jetty-alpn)
JMeter学习(二十九)使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建请求创建插件安装监听服务器资源等