【问题标题】:Request works fine in Postman but Gives an Error Apache-JMETER请求在 Postman 中运行良好,但出现错误 Apache-JMETER
【发布时间】:2020-05-21 16:15:17
【问题描述】:

我想触发如下的 GET 请求- http:{SomeServerName}/路径 在路径中我将变量传递为 - ${BaseURI}${SerialNumber}${ParamList} 我通过一个 CSV 文件传递​​了它

我使用的标题是: Content-Type、Authorization、Accept-Encoding、X-transactionId 和 X-siteId

在 Apache J Meter 中使用 1 个线程触发请求时,我收到此错误 - org.apache.http.NoHttpResponseException: xxx.tc.at.xxx.net:8443 响应失败 在 org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141) 在 org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) 在 org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) 在 org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) 在 org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) 在 org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) 在 org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) 在 org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) 在 org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) 在 org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) 在 org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 在 org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:850) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:561) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1282)

在 Postman 中,这工作得很好,但在 JMeter 中出现上述错误,有人可以帮忙吗? 另外,我在延迟 8 秒后得到响应

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    从堆栈跟踪看来,JMeter 无法解析 HTTP response header,如果没有看到响应详细信息,很难说出问题所在,您可以 increase JMeter logs verbosity 并查看日志,很可能您会在那里看到根本原因,将下一行添加到 log4j2.xml 文件(位于 JMeter 安装的“bin”文件夹下)

    <Logger name="org.apache.http" level="debug" />
    

    需要重新启动 JMeter 才能获取更改。下次启动请求时,您应该会在 jmeter.log 文件中看到有关请求和响应的完整详细信息。

    这很可能是您正在测试的应用程序中的一个错误,因为它返回格式错误的标头。


    您可以尝试通过更改 HTTP Request 采样器的“实现”来解决它,该采样器无法 Java

    如果您有超过 1 个 HTTP 请求采样器,如果您使用 HTTP Request Defaults,则可以在一处更改实现

    但请记住,即使它可以工作,它也将是一个解决方法,解决方案是了解哪个标头无法解析并在应用程序端修复它。

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 2020-02-17
      • 2020-07-08
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 2020-07-02
      相关资源
      最近更新 更多