问题描述
在 these steps 之后,我已经能够运行脚本来登录我正在 Microsoft Edge 上测试的 Web 应用程序,在 JMeter 的 JSR223 采样器中使用 Groovy。我的脚本单击“登录”按钮,然后自动登录(大概是通过我用于登录计算机的凭据*)。但是,此测试用例应该能够以多个用户身份登录,因此让我使用凭据自动登录并不是预期的用例。通过一些反复试验,我发现在 Edge 中使用 Web 应用程序时,无论是 (a) 使用 inPrivate 模式还是 (b) 使用来宾帐户,我都不会自动登录。使用这些方法中的任何一种似乎是解决此问题的最直观的方法,但我不确定在 JMeter 中是否有一种方法(或两者)。
解决方法
如果您足够聪明,可以实例化并启动 EdgeDriver,那么您也应该能够对其进行配置。
Capabilities and EdgeOptions 文章显示了可用参数。
对于特定的情况,它会是这样的:
def options = new EdgeOptions()
options.setCapability("InPrivate",true)
或者如果您希望复制和粘贴完整的代码:
System.setProperty("webdriver.edge.driver","../lib/MicrosoftWebDriver.exe")
def options = new EdgeOptions()
options.setCapability("InPrivate",true)
def driver = new org.openqa.selenium.edge.EdgeDriver(options)
driver.get("http://jmeter.apache.org")
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It
但是,总的来说,我更愿意研究通过 SSO 模拟不同域用户的方式,即使用能够通过 WebDriver 向浏览器控制器添加相关标头的 MITM 代理