2011-02-15 8 views
2

새로운 Rails 3 앱에서 성능 기록/추적을 위해 AB와 함께 놀려고했습니다. 앱은 항상 로그인해야하므로 로그인하려면 POST 요청을해야했습니다. 다음과 같이 자격 증명을 텍스트 파일에 넣을 수 있었지만 AuthenticityToken이 문제를 제공하고 있습니다.ApacheBenchmark ab 문제 Rails3 authenticity_token

#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) 

문제가 통과하거나 AuthenticityToken ab을 사용 때 무시 어떻게? 동적으로 생성되기 때문에 어딘가에 저장할 수 있습니까? 아니면 다른 더 좋은 해결책이 있습니까?

답변

0

테스트 및 개발 이외의 환경을 설정할 수 있습니다. development.rb 환경의 사본을 넣고 benchmark.rb라는 이름을 붙일 수 있습니다.

또한 벤치 마크 환경의 database.yml에 항목을 추가하십시오. 이를 위해 개발 항목의 내용을 복사 할 수 있습니다.

그리고 환경이 벤치 마크 인 경우 인증 토큰의 유효성 검사를 건너 뛸 수 있습니다. 이제 rails -e 벤치 마크를 실행하고 해당 서버에 대한 벤치 마크를 수행하십시오.