Gatling.io 在虚拟用户之间共享数据

Gatling.io share data between virtual users

我正在使用 Gatling.io 来测试网站。我有多个虚拟用户的场景。

val users = scenario("Users").exec(Session.browse)
val admins = scenario("Admins").exec(Session.create)

我希望管理员用户在我正在测试的网站上创建一个 "session",从网站返回的结果中保存会话名称,并让其他用户访问之前创建的会话从用户管理员那里获取会话名称。

如何在用户之间共享会话名称?

我认为 Gatling 对此的默认答案是创建会话并将其保存在某种文件中,然后在新的模拟中读取该值并让用户选择它。 'Fanning out' 并不是 Gatling 在单个模拟中支持的场景。

也就是说,如果您真的想要,您可以捏造它 - 特别是如果您只需要管理员用户快速执行一次,并且您准备好在模拟文件中定义您的场景。

class simulation extends Simulation {
  private var mySession = "NOT_SET"

val users = scenario("Users").exec(Session.browse)  
val admins = scenario("Admins").exec(Session.create) 
}

作为 'Admins' 场景的一部分,将您的会话值保存到 'mySession' var

作为用户场景的一部分,从 'mySession' var

设置一个会话变量

然后 运行 你的模拟类似于...

setUp(
admins.inject(
  atOnceUsers(1)
),
users.inject(
  nothingFor(1 minutes), //enough time for admins to complete
  atOnceUsers(10) //or however many you need
)

它适用于快速和肮脏的数据播种,但你确实违背了 Gatling 的设计方式。