我正在使用 Gatling.io 来测试一个网站。我有一个有多个虚拟用户的场景。
val users = scenario("Users").exec(Session.browse)
val admins = scenario("Admins").exec(Session.create)
我希望管理员用户在我正在测试的网站上创建一个“会话”,从网站返回的结果中保存会话名称,并让其他用户通过从用户那里获取会话名称来访问先前创建的会话行政。
如何在用户之间共享会话名称?
我正在使用 Gatling.io 来测试一个网站。我有一个有多个虚拟用户的场景。
val users = scenario("Users").exec(Session.browse)
val admins = scenario("Admins").exec(Session.create)
我希望管理员用户在我正在测试的网站上创建一个“会话”,从网站返回的结果中保存会话名称,并让其他用户通过从用户那里获取会话名称来访问先前创建的会话行政。
如何在用户之间共享会话名称?
我认为 Gatling 的默认答案是创建会话并将其保存在某种文件中,并在新的模拟中读取该值并让用户选择它。“扇出”并不是 Gatling 在单个模拟中真正支持的场景。
也就是说,如果你真的想要,你可以捏造它——特别是如果你只需要管理员用户快速执行一次,并且你准备在你的模拟文件中定义你的场景。
class simulation extends Simulation {
private var mySession = "NOT_SET"
val users = scenario("Users").exec(Session.browse)
val admins = scenario("Admins").exec(Session.create)
}
作为“管理员”场景的一部分,将会话的值保存到“mySession”变量中
作为用户场景的一部分,从“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 的设计方式。