JMeter替换Selenium JAR为3.9.1版本后抛出ConversionException
哥们,我之前折腾JMeter+Selenium的时候也碰到过类似的版本兼容坑,给你梳理几个关键的排查和解决步骤:
彻底清理旧依赖,避免版本冲突
首先得把JMeter的lib和lib/ext文件夹里所有旧的Selenium 2.52.0相关JAR(包括guava、gson、commons系列这些依赖)全部删除干净。新旧版本的类文件混在一起,很容易导致类加载混乱,触发序列化/反序列化的ConversionException。确保WebDriver Sampler插件和Selenium版本匹配
旧版本的WebDriver Sampler插件可能只支持Selenium 2.x,你升级到Selenium 3.9.1后,得同步把WebDriver Sampler插件也升级到支持Selenium 3.x的版本。打开JMeter的插件管理器,找到WebDriver Sampler,检查并安装最新兼容的版本。验证Selenium 3.9.1依赖的完整性和一致性
不要随便混合不同版本的依赖JAR,比如你通过Maven拉取的Selenium 3.9.1配套的guava、gson等版本,要和Selenium官方依赖的版本完全一致。如果自己手动替换了某个依赖的版本,很可能会因为类结构不匹配导致转换错误。重新创建测试元素,规避旧配置的序列化问题
如果上面几步都做完还是报错,大概率是旧jmx文件里的WebDriver Sampler和驱动配置的序列化数据,和新版本Selenium的类结构不兼容。这时候可以尝试新建一个空白的测试计划,重新添加WebDriver Sampler和驱动配置,把旧脚本里的逻辑复制过去,不要直接打开旧的jmx文件。检查JMeter核心版本的兼容性
有些较旧的JMeter版本(比如2.x系列)对Selenium 3.x的支持不好,建议把JMeter升级到3.3及以上的版本,确保核心框架和Selenium 3.9.1能正常协作。
内容的提问来源于stack exchange,提问作者Bala

