【问题标题】:JMeter thread queue on Sampler Error采样器错误上的 JMeter 线程队列
【发布时间】:2013-01-14 10:27:06
【问题描述】:

我有一个测试计划如下:

我的线程组包含三个请求,一个 POST 和两个 GET 应该一个接一个地执行。 POST Suggestions 返回一个由GET Progress 使用的令牌,该令牌一直执行到完成为止,完成后,我就准备好了GET Suggestions

问题是服务器被配置为一次只处理 5 个线程,如果我生成 6 个线程,它会处理 5 个线程,而第 6 个线程则简单地死掉(停止线程),因为服务器以503 Service Unavailable 回答。我想找到这样一个解决方案,将第六个、第七个等 POST 请求留在某个队列中,直到前五个线程之一完成,即池中有一个位置。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    您尝试做的事情是错误的,因为这意味着测试的应用程序中存在问题(JMeter 显示),正确的方法是解决此问题,以便服务器可以处理更多请求而不是尝试查找一种让 JMeter 解决此问题的方法。

    被测试应用程序的客户端将面临您发现的问题,而不是尝试解决方法。

    但如果这是自愿的:

    【讨论】:

    • 此服务器限制是人为创建的,因为我们发送到其他系统的查询量太大。如果服务器在将使用我们编写的 API 的实际应用程序中以 503 响应,则重试几次是没有问题的,但在 jmeter 中似乎是不可能的:(
    • 我已经使用这种方法来获取进度。如果不必运行已完成的线程,我无法为 POST 请求实现相同的逻辑,但我仍在尝试……
    • 对不起,这对我来说不清楚=>“无需运行已完成的线程”。
    • 我使用CSV Data Config为线程组中的每个线程配置id。当我启动该组时,JMeter 创建了 6 个线程,每个线程在 url 中使用一个唯一的 id。当前 5 个 POST(继续获取进度和需要时间的建议)完成时,JMeter 尝试运行没有位置的第 6 个 POST 并返回 503。我想继续尝试准确地运行线程从发出 POST 请求的位置返回 503。
    【解决方案2】:

    我用上面的测试计划解决了这个问题。

    【讨论】:

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