我正在尝试使用 Web 驱动程序采样器和 JMeter 来自动化我的一个应用程序,但出现错误(请检查下面)。尝试使用 Chrome、Chromium 和 Gecko 驱动程序。
工具版本:
- 杰米特:5.3
- Java版本:java版本“17.0.6”2023-01-17 LTS
- Chrome驱动程序:120,因为系统的chrome版本是120.0(驱动程序目录: https: //googlechromelabs.github.io/chrome-for-testing/#stable)
- 网络驱动程序版本:4.13.0
使用脚本语言的 Web 驱动程序采样器内的示例代码(beanshell 尽管尝试使用 JAVA 和 Groovy,但观察到相同的错误):
var driverHandler = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui);
var sleepSynchronizer = new driverHandler.WebDriverWait(WDS.browser, 5000);
driverHandler.sampleResult.sampleStart();
//Render the home Page
WDS.browser.get('<application URL>');
sleepSynchronizer.until(driverHandler.ExpectedConditions.elementToBeClickable(sleepSynchronizer.By.id('details-button')));
//Handling Cookies
var sessionCOOKIES = WDS.browser.manage().getCookies();
WDS.vars.putObject('cookies', sessionCOOKIES)
java.lang.Thread.sleep(6000);
使用 Chrome 驱动程序时出错:
2024-01-13 19:55:24,522 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[Thread Group 1-1,6,main]
java.lang.NoClassDefFoundError: Could not initialize class org.openqa.selenium.remote.http.netty.NettyClient
at org.openqa.selenium.remote.http.netty.NettyClient$Factory.createClient(NettyClient.java:124) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:115) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:92) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(DriverCommandExecutor.java:89) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.chromium.ChromiumDriverCommandExecutor.<init>(ChromiumDriverCommandExecutor.java:43) ~[selenium-chromium-driver-4.13.0.jar:?]
使用 Firefox(Gecko) 驱动程序时出错:
2024-01-13 19:37:27,069 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[Thread Group 1-1,6,main]
java.lang.NoClassDefFoundError: Could not initialize class org.openqa.selenium.remote.http.netty.NettyClient
at org.openqa.selenium.remote.http.netty.NettyClient$Factory.createClient(NettyClient.java:124) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:115) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:92) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(DriverCommandExecutor.java:89) ~[selenium-remote-driver-4.13.0.jar:?]
at org.openqa.selenium.firefox.FirefoxDriver$FirefoxDriverCommandExecutor.<init>(FirefoxDriver.java:415) ~[selenium-firefox-driver-4.13.0.jar:?]
at org.openqa.selenium.firefox.FirefoxDriver.generateExecutor(FirefoxDriver.java:147) ~[selenium-firefox-driver-4.13.0.jar:?]
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:132) ~[selenium-firefox-driver-4.13.0.jar:?]
使用 Chromium 驱动程序时出错:
注意:在 chromium 中,浏览器启动时出现以下错误:
2024-01-13 19:38:16,709 ERROR o.a.j.t.JMeterThread: Error calling threadStarted
org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '4.13.0', revision: 'ba948ece5b*'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.6'
Driver info: driver.version: unknown
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:248) ~[selenium-remote-driver-4.13.0.jar:?]
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.getThreadService(ChromeDriverConfig.java:47) ~[jmeter-plugins-webdriver-4.13.0.0.jar:?]
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:26) ~[jmeter-plugins-webdriver-4.13.0.0.jar:?]
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:14) ~[jmeter-plugins-webdriver-4.13.0.0.jar:?]
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:221) ~[jmeter-plugins-webdriver-4.13.0.0.jar:?]
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:152) ~[jmeter-plugins-webdriver-4.13.0.0.jar:?]
at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:769) [ApacheJMeter_core.jar:5.3]
有什么办法可以解决这个问题吗?