是否可以将 2 个 WDS 用于 1 个 JMeter 线程组中的 2 个不同用户角色?

问题描述

Application 中有 2 个用户角色。

在 1 个浏览器中依次运行 2 个用户角色(登录 1 - 动作 1 - 注销 1,登录 2 - 动作 2 - 注销 2)时,会出现用户身份/页面可见性和失败的问题。

是否可以为 1 个 JMeter 线程组中的每个用户角色使用 1 个专用浏览器窗口?

或者有什么解决方案可以将 2 个用户拆分为 2 个单独的浏览器并将它们作为 1 个按顺序执行的组进行管理,先执行角色 1 操作,然后执行角色 2 操作?

解决方法

“发生用户身份/页面可见性和失败的一系列问题” - 给出良好的脚本不应该是这种情况,以防万一尝试在“注销”后执行以下行

WDS.browser.manage().deleteAllCookies()

更多信息:WebDriver.Options.deleteAllCookies()

另一种选择是将条件放入脚本中,例如:

if (WDS.ctx.getThreadNum() == 0) {
    // code specific for user 1
}


if (WDS.ctx.getThreadNum() == 1) {
    // code specific for user 2
}

其中 WDS.ctx 代表 JMeterContext

最后但并非最不重要的一点,您可以将您的用户放入不同的线程组,只需在 Test Plan 级别勾选 Run Thread Groups consecutively 框:

enter image description here

更多信息:The WebDriver Sampler: Your Top 10 Questions Answered