You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter运行WebDriver Sampler时出现NoSuchMethodError错误求助

Guava版本冲突导致JMeter WebDriver测试报错的解决方案

错误原因

这个java.lang.NoSuchMethodError报错是Guava(Google Commons工具库)版本不兼容引发的:

  • 你使用的Selenium 4.9.1需要Guava支持ImmutableMap.of()方法的12参数重载,但JMeter默认自带的Guava版本过旧,没有该方法,导致调用失败。

修复步骤

  • 找到JMeter安装目录下的lib文件夹,删除其中旧版本的guava-xxx.jar文件(比如JMeter 5.6自带的是guava-30.1.1-jre.jar)。
  • 下载适配Selenium 4.9.1的Guava版本(推荐31.1-jre及以上版本),将下载的jar包放入JMeter的lib目录。
  • 重启JMeter,重新运行测试计划验证修复效果。

额外提示

  • WebDriver Sampler是模拟真实浏览器交互,不适合高并发性能测试场景,这类场景建议使用JMeter原生的HTTP请求采样器,效率更高。
  • 确保WebDriver插件版本与Selenium版本完全匹配,避免出现其他版本兼容问题。

用户问题原文

我正在为自己的网站做性能测试,用JMeter创建了测试计划(项目截图显示测试计划结构),但运行时持续出现以下错误,尝试多种方法仍无法解决:

错误日志

2023-07-04 19:32:06,010 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[Thread Group 1-1,6,main]
java.lang.NoSuchMethodError: 'com.google.common.collect.ImmutableMap com.google.common.collect.ImmutableMap.of(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'
    at org.openqa.selenium.chrome.AddHasCasting.getAdditionalCommands(AddHasCasting.java:38) ~[selenium-chrome-driver-4.9.1.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver$ChromeDriverCommandExecutor.getExtraCommands(ChromeDriver.java:116) ~[selenium-chrome-driver-4.9.1.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver$ChromeDriverCommandExecutor.<init>(ChromeDriver.java:111) ~[selenium-chrome-driver-4.9.1.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.generateExecutor(ChromeDriver.java:101) ~[selenium-chrome-driver-4.9.1.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) ~[selenium-chrome-driver-4.9.1.jar:?]
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:84) ~[selenium-chrome-driver-4.9.1.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:28) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:14) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:221) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:152) ~[jmeter-plugins-webdriver-4.9.1.0.jar:?]
    at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:802) ~[ApacheJMeter_core.jar:5.6]
    at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:1029) ~[jorphan.jar:5.6]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1012) ~[jorphan.jar:5.6]
    at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:770) ~[ApacheJMeter_core.jar:5.6]
    at org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:758) ~[ApacheJMeter_core.jar:5.6]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:264) ~[ApacheJMeter_core.jar:5.6]
    at java.lang.Thread.run(Thread.java:833) [?:?]
2023-07-04 19:32:06,010 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2023-07-04 19:32:06,011 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)

内容的提问来源于stack exchange,提问作者user3374671

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:42:03