我正在尝试在Jmeter中执行Junit Jar。在脚本中,启动chrome浏览器,并显示我的网站的登录屏幕,其中输入了用户名和密码,并单击了登录按钮。因此,当施加2个用户负载时,将根据脚本启动2个chrome浏览器。但是,假设要在第二个浏览器中输入的凭据是覆盖第一个浏览器的凭据字段。因此,第二个浏览器的脚本失败了,因为在登录屏幕中没有输入任何内容。
脚本在Eclipse上成功运行。
无头浏览器。我在脚本中添加了无头浏览器代码。现在没有启动浏览器,一切都在后台运行,这应该已经解决了问题。但是当放置2个用户的负载时,问题仍然存在。
答案 0 :(得分:0)
问题很可能与您的代码有关,即根据WebDriver FAQ
WebDriver不是线程安全的。话虽如此,如果您可以序列化对底层驱动程序实例的访问,则可以在多个线程中共享一个引用。不建议这样做。另一方面,您可以为每个线程实例化一个WebDriver实例。
因此,我建议您再次检查正在使用的Java代码,并确保没有static函数或字段并将WebDriver实例放入ThreadLocal
一种适用于WebDriver Sampler的更简单的解决方案,它与JMeter线程模型兼容,因此应该没有race conditions。
安装WebDriver Sampler