运行并发测试 Cucumber/Capybara

问题描述 投票:0回答:1

我正在寻求一些关于从哪里开始使用 Cucumber/Capybara 运行并发测试的帮助。我需要在没有“parallel_tests”gem 的情况下执行此操作。原因是我似乎无法让每个进程都有单独的用户登录。

我认为我可以拥有一个共享用户池,很可能在一个数组中,但我无法与 gem 跨单独的进程共享这些数据。

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

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

ruby cucumber capybara
1个回答
0
投票

我想我会发布我的解决方案。我最终将用户池与我的应用程序分开,并使用 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)

这对于多个并行测试非常有效。

© www.soinside.com 2019 - 2024. All rights reserved.