4

我試圖用httperf加載測試我的Rails(3.2.13)應用程序。它對於不需要cookie的頁面非常有效。但是,我無法使它適用於需要cookie的頁面。我正在使用Gregg Pollack的httperf(https://github.com/Gregg/httperf_big_cookies),因爲官方版本不支持大餅乾。Rails使用httperf加載測試

這裏是我所使用的命令:

httperf --session-cookie --wsesslog=1,5,path.txt --rate=1 --timeout=15 --server=localhost --port=3000

而且,這是在文件path.txt:

/log_in 
    /sessions method=POST contents='utf8=✓&remember_me=1&commit=Login&[email protected]&password=password' 

cookies該方法總是返回nil內部控制器。

所以,請建議我如何克服這個問題或更好的工具(基於控制檯)來測試rails應用程序的負載。

回答

5

您可能在使用rails附帶的CSRF驗證時遇到麻煩。檢查你的日誌,如果你看到下面的行,那麼這就是原因:

WARNING: Can't verify CSRF token authenticity 

一種解決方法可以是建立一個「祕密/主」令牌使用您的測試由通過CSRF驗證,然後告訴您的應用程序接受它作爲一個有效的,例如,「protect_from_forgery」行之後添加以下行你的ApplicationController:

skip_before_filter :verify_authenticity_token, :if =>lambda{ params[:authenticity_token].present? && params[:authenticity_token] == 'YOUR_SECRET_TOKEN' } 

再上的httperf測試,你應該用PARAMS發送您的主代幣:& authenticity_token = YOUR_SECRET_TOKEN