【问题标题】:jMeter showing response code: Non HTTP response code: org.apache.http.ConnectionClosedExceptionjMeter 显示响应代码:非 HTTP 响应代码:org.apache.http.ConnectionClosedException
【发布时间】:2020-01-15 04:14:31
【问题描述】:

我在 jMeter 中使用两个线程组执行负载测试,两个线程组都有 50 个用户,加速周期为 60 秒。我使用 Blazemeter 记录了填写和提交表单的过程,然后对其进行了轻微修改。一组是使用 POST 方法登录然后提交表单,另一组是匿名用户。当我运行测试时,我得到了错误:

响应代码:非 HTTP 响应代码:org.apache.http.ConnectionClosedException 响应消息:非 HTTP 响应消息:块编码消息体过早结束:预期关闭块

仅适用于登录组。

This is how my test looks like

我之前在同一台服务器上使用了相同的测试配置,但形式不同,没有报错。

【问题讨论】:

    标签: performance jmeter


    【解决方案1】:

    根据chunked directive description,您很可能从服务器收到不完整的响应

    数据以一系列块的形式发送。在这种情况下,Content-Length 标头被省略,在每个块的开头,您需要以十六进制格式添加当前块的长度,然后是 '\r\n',然后是块本身,然后是另一个 '\ r\n'。 终止块是一个常规块,除了它的长度为零。它后面是尾部,它由一个(可能为空的)实体标题字段序列组成。

    根据错误,您正在测试的应用程序无法提供终止块。

    1. 检查您的应用程序日志
    2. 确保应用程序没有过载,即使用 JMeter PerfMon Plugin 监控其基线操作系统运行状况指标,因为这可能是由于 CPU 或 RAM 等资源不足
    3. 尝试通过在Thread Group 中使用更长的启动时间逐渐增加负载,这样您就可以知道问题的确切发生时间。

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      相关资源
      最近更新 更多