【问题标题】:The target server failed to respond for multiple iterations in Jmeter目标服务器未能响应 Jmeter 中的多次迭代
【发布时间】:2016-12-06 09:43:55
【问题描述】:

在我的 Jmeter 脚本中,第二次迭代出现错误。 对于单次迭代的多个用户,未观察到错误,但多次迭代时出现错误并显示以下消息

响应代码:非 HTTP 响应代码:org.apache.http.NoHttpResponseException
响应消息:非 HTTP 响应消息:目标服务器响应失败

响应数据是目标服务器响应失败

Error Snapshot

您能否建议我这个错误背后的原因

提前致谢

【问题讨论】:

    标签: server jmeter target


    【解决方案1】:

    您的服务器很可能会过载。关于可能的原因,我的期望是单次迭代不能提供完全的并发性,因为 JMeter 的行为如下:

    • JMeter 在指定的加速期内启动所有虚拟用户
    • 每个虚拟用户都开始执行采样器
    • 当没有更多的采样器可以执行并且没有循环可以迭代时 - 线程正在关闭

    因此,在 1 次迭代中,您可能会遇到一些线程已经完成其工作而其他线程尚未启动的情况。当您添加更多迭代时,“旧”线程重新开始并且“新”线程到达。这种情况在JMeter Test Results: Why the Actual Users Number is Lower than Expected 文章中进行了解释,您可以使用HTML Reporting DashboardActive Threads Over Time ListenerActive Threads Over Time 图表监控实际交付的负载,该图表可通过JMeter Plugins 获得

    要了解故障的根源,我建议检查以下内容:

    • 被测应用程序端的组件日志(应用程序日志、应用程序/Web 服务器日志、数据库日志)
    • 被测应用程序基线运行状况指标(CPU、RAM、磁盘等)。您可以使用JMeter PerfMon Plugin,这样您就可以将增加的负载与资源消耗关联起来

    【讨论】:

    • 感谢@Dmitri,但我的情况是 1 个用户 1 次迭代工作正常
    • 但我的情况是 1 个用户 1 次迭代工作正常,1 个用户 2 次迭代也因同样的错误而失败
    • 使用View Results Tree Listener检查第一次和第二次迭代发送的请求,这可能是参数化工作不正确或类似的情况。请参阅How to Debug your Apache JMeter Script 文章以熟悉故障排除技术
    • 我已经解决了这个问题。默认情况下没有选择任何实现类型,我尝试将实现类型指定为“JAVA”。它开始适用于所有迭代和所有用户
    • 请问HTTP Sampler中实现类型的意义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多