如何使用omniauth/oauth每秒对登录进行基准测试?(红宝石+ rspec的)

Bet*_* St 6 ruby benchmarking scalability oauth omniauth

我想基准(自己的)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
Run Code Online (Sandbox Code Playgroud)

默认值为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!!!!
Run Code Online (Sandbox Code Playgroud)

我真的不知道我在做什么,如果这个代码是对的.

jme*_*ine 0

虽然我对 OAuth/Omniauth 没有太多经验,但这种操作的渲染时间约为 500 毫秒,与整个 Rails(我假设)渲染时间结合起来,似乎并不那么牵强。IMO,相信你的基准。