我有以下情况:
有一些Jmeter测试。我从不同的地方运行它。对于某些请求,我得到以下错误。
org.apache.http.NoHttpResponseException','非HTTP响应消息: 目标服务器无法响应'
错误不是永久性的,它会不时发生。 这里奇怪的是,对于某些位置,这个错误发生了,有些则没有。
Jmeter配置(jmeter.properties)对于所有位置都是相同的,但是只提到了其中一些位置的错误。
我搜索过该错误并找到一篇关于HttpClient4问题的帖子(这是HttpSampler实现的默认设置)。 当我将实现改为'Java'时 - 问题就消失了。
但是我无法理解为什么测试从一个位置起作用而另一个位置失败。有人对此有什么想法吗?我唯一的想法是某种防火墙,它具有某些特定地址的连接限制。
P.S。所有URL都无法通过浏览器从所有位置访问(如果有)。
答案 0 :(得分:1)
阅读本文:
它解释了为什么HTTP Client会出现问题。
默认情况下,浏览器会进行陈旧检查和重试,这可以解释为什么你不能在浏览器中重现。
答案 1 :(得分:0)
我在尝试从WSO2获取令牌时遇到了同样的问题
org.apache.http.NoHttpResponseException: The target server failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:95)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:481)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:298)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Unknown Source)
将协议更改为https对我有用。