我试图在新的Rails 3应用程序中使用AB来进行性能记录/跟踪。 由于应用程序始终需要登录,因此我必须执行POST请求才能登录。 我能够将凭证放在一些文本文件中,如下所示,但AuthenticityToken正在解决问题。
#login_data.txt
user_account%5Busername%5D=admin&user_account%5Bpassword%5D=adminhr
#AB command
ab -v4 -n100 -t5 -T 'application/x-www-form-urlencoded' -p login_data.txt http://nhc.lvh.me:3000/
#The log
Started POST "/" for 127.0.0.1 at 2011-02-15 11:13:37 +0545
Processing by CompaniesController#index as */*
Parameters: {"user_account"=>{"username"=>"admin", "password"=>"[FILTERED]"}}
Completed in 1ms
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
Rendered /Users/millisami/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms)
Rendered /Users/millisami/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1194.0ms)
Rendered /Users/millisami/.rvm/gems/ruby-1.9.2-p136/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (1291.3ms)
问题是如何在使用ab
时传递或忽略AuthenticityToken?
由于它是动态生成的,我可以在某处存储还是有其他更好的解决方案?
答案 0 :(得分:0)
您可以做的是建立一个除测试和开发之外的环境。您可以放置development.rb环境的副本并将其命名为benchmark.rb。
还在database.yml上为基准环境添加了一个条目。您可以复制开发条目的内容。
然后在您的代码中,如果环境是基准测试,您可以跳过验证真实性令牌。现在启动rails s -e benchmark并针对该服务器执行基准测试。