2011-09-27 81 views
0

我有一个Rails 3.1应用程序,我试图使用JMeter加载测试。
我们的网站的目标是收集信息,以便用户注册,然后遍历问题解答工作流程,回答几个问题后,他们会获得一些有用的信息。
我的JMeter测试配置为逐步完成注册,然后完成工作流程。错误422当负载测试Rails 3.1应用程序与JMeter

环境细节:用20个100并发线程

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

我已经运行测试和每秒1个线程的斜坡上升时间,结果是OK。但是,一旦我增加了加速时间,以便在一秒钟内产生多个线程(即使每秒只有2个),大约一半的注册调用失败并出现错误422.一旦发生这种情况,对于那些相同的线程, Q &由于我们假设有一个有效的用户回答问题,因此工作流程中断。

我想弄清楚应用程序代码,服务器配置或JMeter设置是否存在问题。

有关如何解决这一问题的任何想法或建议将不胜感激。

回答

0

它可能是JMeter方面的一个cookie问题,其中非独特的cookie被分配给多个线程。

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

此扩展引入了422(会话间隔太小)
响应代码。当请求
包含持续时间低于服务器的最小定时器的会话过期报头字段时,由UAS或代理生成。 422响应必须包含一个Min-SE 标题字段,并且该服务器的最小定时器。