【问题标题】:JMeter gives "The target server failed" ErrorJMeter 给出“目标服务器失败”错误
【发布时间】:2014-07-15 13:18:24
【问题描述】:

我们使用 Jmeter 进行性能测试。我给了 10 个线程(10 个用户),加速时间为 60 秒,10 个用户中有 4 个未能注销得到org.apache.http.NoHttpResponseException: The target server failed to respond

我们的脚本就是这样工作的。用户登录,访问列表页面并进行一次提交操作,访问提交的详细信息页面。每个用户执行 3 次并注销。当我只有一次而不是三次时效果很好,但是当我将脚本配置为三次时,我会遇到上述错误。

我真的不确定这是否与 Jmeter 设置或服务器设置有关?

【问题讨论】:

  • 您是否确保每个用户都是独一无二的(例如,使用查看结果树查看每个登录请求)?服务器是否显示任何错误?服务器访问日志是否显示此注销请求?那些总是相同的用户还是随机的?
  • 所有都是唯一用户,我在请求到达应用程序之前的 nginx 访问日志中看不到这些请求

标签: jmeter performance-testing


【解决方案1】:

禁用 KeepAlive。为我工作。

【讨论】:

  • HttpRequest 采样器有一个复选框
【解决方案2】:

禁用 KeepAlive 对我有用。打开 http 请求采样器,有一个复选框 KeepAlive,默认选中。

【讨论】:

    【解决方案3】:

    这个错误不是来自Jmeter端。

    以下其中一项可能存在问题:

    • 网络带宽(网卡、接口和交换机)
      监控您的环境
    • 超时或重试
      编辑 jmeter.properties 文件,设置 retries = 3 和 timeout = 120。

    你也可以参考下面的链接来调整你的 jmeter 脚本

    希望这会有所帮助。

    【讨论】:

    • 我已经设置了这些属性,因为我在其他一些论坛上读到了这个 httpclient.timeout=120 http.java.sampler.retries=3 但仍然没有运气
    • 每个用户执行 3 次后退出。当我只有一次而不是三次时效果很好,但是当我将脚本配置为三次时,我遇到了上述错误。请澄清上述问题,你的意思是当你出现问题时将 LOOP 设置为 3 ?
    • 不,我们没有在 Jmeter 中设置循环设置,而是使用脚本为每个用户执行三个提交。即使我给更多用户提交单次提交,我也会面临同样的错误
    • "org.apache.http.NoHttpResponseException: The target server failed to respond" 根据我的经验,这个错误可能令人困惑,因为您的请求可能已经在服务器上得到处理,只是 Jmeter 没有及时收到服务器的回复。我建议在测试执行时间范围内检查应用程序/服务器日志以查找任何错误。
    • 请将所有 HTTP/s 请求的 实现 更改为 JAVA 并再次运行。
    【解决方案4】:

    我正在运行多线程高负载测试并将超时值从 10 秒增加到 >1 分钟在这种情况下有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多