2012-05-20 11 views
6

Tôi muốn đánh giá có bao nhiêu lần đăng nhập mỗi giây là có thể với nhà cung cấp omniauth (riêng). Tôi cần tìm hiểu hiệu suất của yêu cầu omniauth/oauth này như thế nào và liệu xác thực này có thể mở rộng không?Cách đăng nhập điểm chuẩn mỗi giây với omniauth/oauth? (ruby + rspec)

những gì tôi có cho đến nay:

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 

mặc định là 10 người dùng xác thực song song thông qua các nhà cung cấp foo oauth.

kết quả:

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!!!! 

Tôi có thực sự không có ý tưởng những gì tôi đang làm và nếu mã này là đúng.

Trả lời

0

Mặc dù tôi không có nhiều kinh nghiệm với OAuth/Omniauth, ~ 500ms hiển thị thời gian cho loại hành động này, khi được kết hợp với tổng thời gian hiển thị Rails (tôi giả định), dường như không được tìm nạp nhiều. IMO, tin tưởng điểm chuẩn của bạn.