【问题标题】:Error 422 when load testing Rails 3.1 application with JMeter使用 JMeter 对 Rails 3.1 应用程序进行负载测试时出现错误 422
【发布时间】:2011-11-26 08:53:27
【问题描述】:

我有一个 Rails 3.1 应用程序,我正在尝试使用 JMeter 进行负载测试。
我们的网站旨在收集信息,以便用户注册,然后通过问答工作流程,在回答几个问题后,他们会获得一些有用的信息。
我的 JMeter 测试配置为先完成注册,然后是完整的问答工作流程。

环境详情:

RedHat Enterprise 6
Rails 3.1
Ruby 1.9.2p290
DB: Postgres 9

我已经使用 20 和 100 个并发线程以及每秒 1 个线程的加速时间运行测试,结果还可以。但是,一旦我增加加速时间,从而在一秒钟内产生多个线程(甚至每秒只有 2 个线程),大约一半的注册调用会失败并出现错误 422。一旦发生这种情况,对于那些相同的线程,问答工作流程中断,因为我们假设有一个有效的用户回答问题。

我正在尝试确定应用程序代码、服务器配置或 JMeter 设置是否存在问题。

任何关于如何进一步解决此问题的想法或建议将不胜感激。

【问题讨论】:

    标签: ruby-on-rails-3.1 jmeter load-testing


    【解决方案1】:

    这可能是 JMeter 端的 cookie 问题,其中非唯一 cookie 被分配给多个线程。

    http://rfc-ref.org/RFC-TEXTS/4028/chapter6.html#d4e441904

    此扩展引入了 422(会话间隔太小)
    响应代码。它由 UAS 或代理在请求时生成
    包含一个 Session-Expires 标头字段,其持续时间低于
    服务器的最小计时器。 422 响应必须包含 Min-SE 具有该服务器最小计时器的标头字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2019-03-10
      相关资源
      最近更新 更多