Как измерить количество входов в секунду с помощью omniauth/oauth? (ruby+rspec)

Я хочу сравнить, сколько входов в систему в секунду возможно с помощью (собственного) провайдера omniauth. Мне нужно выяснить, какова производительность этих запросов omniauth/oauth, и является ли эта аутентификация масштабируемой?

что я получил на данный момент:

    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

по умолчанию 10 пользователей, которые проходят параллельную аутентификацию через провайдера oauth foo.

результаты:

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

Я действительно понятия не имею, что я делаю и правильный ли это код.

6
задан phoenix 9 November 2012 в 03:12
поделиться