2012-05-20 41 views
6

我想用一個(自己)的omniauth提供程序來測試每秒鐘可以進行多少次登錄。我需要弄清楚這個omniauth/oauth請求的性能如何,並且這個認證是否可以擴展?如何使用omniauth/oauth測試每秒登錄次數? (ruby + rspec)

我走到這一步:

def performance_auth(user_count=10) 
     bm = Benchmark.realtime do 
     user_count.times do |n| 
      fork do 
      click_on 'Logout' 
      omniauth_config_mock(:provider => "foo", :uid => n, :email => "foo#{n}@example.net") 
      visit "/account/auth/foo/" 
      end 
     end 
     Process.waitall 
     end 
     puts "#{user_count} users Benchmark: #{bm}" 
     bm 
    end 

默認是誰通過OAuth的提供商富認證並行10位用戶。

結果:

only 2 users can authenticate parallel in 1 sec (is this possible?) 

10 users: 5.090777 sec 
20 users: 10.471208 sec 
50 users: 111.565979 sec ~ 2min!!!! 

我真的有不知道我在做什麼,如果這個代碼是正確的。

回答

0

雖然我沒有太多的OAuth/Omniauth經驗,但對於這種操作,當與整體Rails(我假設)渲染時間相結合時,〜500ms的渲染時間似乎並沒有太多的提取。國際海事組織,相信你的基準。