【问题标题】:JMeter: How to know the reason of java.net.SocketTimeoutException?JMeter:如何知道 java.net.SocketTimeoutException 的原因?
【发布时间】:2014-07-06 19:03:33
【问题描述】:

我正在为我的 Web 应用程序进行负载测试,我将连接超时和响应超时设置为 20 秒,有时我会遇到以下异常:

Non HTTP response code: java.net.SocketTimeoutException: Non HTTP response message: Read timed out

我在 JMeter 测试结果中得到了上述异常,我的应用程序中没有抛出任何错误,也没有可用于跟踪异常的堆栈跟踪。

我想知道消息的原因是什么:应用程序正在等待处理某些东西或慢速 SQL 或挂起线程或应用程序拒绝连接,因为已达到极限?

请告知我如何知道此异常的原因以及如何修复它。

【问题讨论】:

  • @Raedwald,在 JMeter 测试结果中,没有可用于跟踪应用程序的堆栈跟踪,而且我的应用程序也不会抛出异常来跟踪,所以请投赞成票。
  • @Raedwald 如果您有使用 JMeter 的经验,您就会知道我在说什么,请不要太小看我,这个答案对我的经验来说是一种耻辱 :( :(
  • 它发生在 1 个线程上吗?如果它在您增加用户时发生 - 这可能是您的应用程序问题。如果没有,您是否为 JMeter 设置了足够的堆?
  • 有什么奥秘?只有一个原因。读取超时。服务器在超时期限内没有发送任何内容。

标签: java testing jmeter load-testing socket-timeout-exception


【解决方案1】:

我建议您通过以下方式改进调试活动(在 jMeter 中):

  • 尝试将调试后处理器添加到您的 http 采样器

  • 启动日志查看器(jMeter 日志查看器在任何 http 采样器(-s)/脚本(-s)执行

这可能会帮助您弄清楚为什么会遇到套接字超时。 希望对您有所帮助。

【讨论】:

  • 我正在使用 blazemeter 运行我的测试脚本,有什么想法可以调试吗?
  • 如何使用此按钮在 jMeter 中导出 blazemeter 脚本:gyazo.com/249f1a3de843aef963981ae068327385,并尝试在 jMeter 中执行脚本,考虑到我上面提到的内容?
  • 顺便说一句,我注意到响应看起来像 "Non HTTP response code:" 。您确定使用应用程序的正确端点(webApi 端点)来执行 HTTP 请求吗?
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 2015-07-30
  • 2016-11-22
  • 2016-11-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 2021-09-11
相关资源
最近更新 更多