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 的设计方式。
我正在使用 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 的设计方式。