我在运行Jmeter脚本时遇到了这个错误,4个API调用作为线程组的一部分。我开始看到这个错误,通常是10到15个请求触发,脚本执行不到20秒。这是随机出现的,有时5%的调用失败,有时高达75到80%。也将超时值设置为100000毫秒。
org.apache.http.NoHttpResponseException: 10.157.254.115:80 failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:939)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:650)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1301)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1290)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)
at java.lang.Thread.run(Unknown Source)
1条答案
按热度按时间jslywgbw1#
在JMeter端没有什么可以“解决”的。
根据NoHttpResponseException JavaDoc:
表示目标服务器无法以有效的HTTP响应进行响应。
因此您需要在服务器端“解决”此问题,可能的原因如下:
1.如果服务器配置不正确,当涉及到工作线程的最大数量时,请查阅您的应用服务器文档,可能的情况是,您还需要启动一个额外的示例,并在前面设置一个load balancer。
1.资源不足,确保应用服务器在CPU、RAM、网络插槽等方面有足够的运行空间。如果您没有监视工具链,则可以使用JMeter PerfMon Plugin
1.它也可能是由deadlock之类的底层数据库问题引起的,因此请检查数据库慢速查询日志中是否有任何可疑条目
1.最后但并非最不重要的一点是,它可能是代码中的一个bug,请在启用profiler tool telemetry的情况下重新运行测试,看看到底是什么导致了响应缓慢或错误