JMeter Selenium脚本语言下拉列表缺失JavaScript选项问题咨询
问题根因
Selenium WebDriver Sampler的脚本语言下拉列表,是直接读取JMeter运行时绑定的JDK里已注册的脚本引擎生成的,和你切换Selenium客户端版本没有任何关系,换3.0、3.3版本都不会有效果。
macOS Monterey系统下用户常用的JDK版本普遍为17及以上,从JDK 15版本开始,原本JDK内置的Nashorn JavaScript引擎被正式移除,所以下拉列表不会展示JavaScript选项。
解决方法
- 方案一:给JMeter指定JDK 11运行环境
JDK 11是最后一个内置Nashorn JavaScript引擎的LTS长期支持版本,配置后即可直接识别到JavaScript选项:- 安装JDK 11,Homebrew安装直接执行命令
brew install openjdk@11 - 进入JMeter安装目录的bin文件夹,找到或新建
setenv.sh配置文件,添加环境变量配置:- Intel芯片Mac添加:
export JAVA_HOME=/usr/local/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home - M系列芯片Mac添加:
export JAVA_HOME=/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home
- Intel芯片Mac添加:
- 给
setenv.sh加可执行权限后重启JMeter即可
- 安装JDK 11,Homebrew安装直接执行命令
- 方案二:高版本JDK手动补装Nashorn引擎
不想降级JDK的话,可以手动把Nashorn引擎及其依赖的asm相关jar包,放到JMeter安装目录下的lib文件夹中,重启JMeter后就能识别到JavaScript脚本引擎。 - 方案三:直接使用现有可选语言编写脚本
下拉列表里的Groovy是JMeter官方首推的脚本语言,执行性能远高于原来的Nashorn JavaScript引擎,WebDriver相关API的调用逻辑和JS下基本一致,只需要做少量语法适配就能正常使用,长期用稳定性更好。
排查提示:不用反复重装、切换Selenium插件版本,Selenium插件本身不携带任何脚本引擎实现,这类操作解决不了问题。
内容的提问来源于stack exchange,提问作者echodrome
相关产品推荐
相关产品推荐

