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

JMeter JSR223预处理器运行crypto-js报错求助

问题排查:JMeter JSR223预处理器中Crypto-JS语法错误

问题现象

在JMeter的JSR223预处理器中加载Crypto-JS文件后运行,触发语法错误,核心报错信息如下:

javax.script.ScriptException: SyntaxError: crypto-js.js:1424:48 Expected , but found =
stringify: function (wordArray, urlSafe=true) {
^ in at line number 1

原因分析

报错位置的urlSafe=true是ES6(ECMAScript 2015)新增的函数默认参数语法,而当前环境中JMeter 5.5搭配的Java 8内置Nashorn脚本引擎仅支持ES5标准,无法识别该ES6语法,导致解析失败。

解决方案

方案1:使用ES5兼容的Crypto-JS版本

  • 选用Crypto-JS 3.x系列版本(如3.3.0),该版本基于ES5语法开发,可直接被Nashorn引擎解析
  • 替换当前使用的Crypto-JS文件为对应版本即可

方案2:修改Crypto-JS源码适配ES5

找到报错的stringify函数定义,将ES6默认参数写法改为ES5兼容形式:
原代码片段:

stringify: function (wordArray, urlSafe=true) {

修改后:

stringify: function (wordArray, urlSafe) {
    urlSafe = typeof urlSafe !== 'undefined' ? urlSafe : true;
    // 原函数其余逻辑保持不变

方案3:升级Java并切换脚本引擎

  • 升级Java版本至11及以上,JMeter 5.4+支持GraalVM JavaScript引擎(完全兼容ES6+语法)
  • 在JMeter安装目录下的jmeter.properties文件中添加配置:jsr223.engine=graal.js,重启JMeter后即可使用新版引擎运行ES6语法的Crypto-JS

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:20:21