运行并发测试Cucumber / Capybara

时间:2015-05-28 21:45:47

标签: ruby cucumber capybara

我正在寻找一些帮助,从哪里开始与Cucumber / Capybara一起运行并发测试。我需要在没有'parallel_tests'gem的情况下这样做。原因是我似乎无法让每个进程都有单独的用户登录。

我在想我可以拥有一个共享的用户池,很可能是在一个数组中,但是我不能在不同的进程中与gem共享这些数据。

我收到的一些反馈是使用IO.pipe,但目前还不了解它。

我有一个独立的Cucumber框架,没有Rails等。

1 个答案:

答案 0 :(得分:0)

以为我会发布我的解决方案,以防它帮助其他人。我最终将用户池与我的应用程序分开并使用Redis存储它们。

然后我有一个简单的方法,它将从Redis中的Set中选择一个随机用户,并在完成后将其放回去

def choose_redis_user
  @redis = Redis.new
  @randUser = @redis.spop("users")
  $user_username = @redis.hget(@randUser, "username")
  $user_password = @redis.hget(@randUser, "password")
end

def return_redis_user
  @redis.sadd("users", @randUser)
end

然后在我的测试中我可以运行

login_page.username.set($user_username)
login_page.password.set($user_password)

这适用于多个parallel_tests