我正在寻求一些关于从哪里开始使用 Cucumber/Capybara 运行并发测试的帮助。我需要在没有“parallel_tests”gem 的情况下执行此操作。原因是我似乎无法让每个进程都有单独的用户登录。
我认为我可以拥有一个共享用户池,很可能在一个数组中,但我无法与 gem 跨单独的进程共享这些数据。
我收到的一些反馈是使用 IO.pipe,但目前对它还不够了解。
我有一个独立的 Cucumber 框架,没有 Rails 等。
我想我会发布我的解决方案。我最终将用户池与我的应用程序分开,并使用 Redis 存储它们。
然后我有一个简单的方法,可以从 Redis 中的集合中随机选择一个用户,并在完成后将其放回原处:
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)
这对于多个并行测试非常有效。