简体   繁体   English

Unbale 在 jmetter 中运行 crypto-js

[英]Unbale to run crypto-js in jmetter

I'm trying to run crypto-js in PreProcessor JSR223 but i have an error (see below. I don't found a solution to resolve it, can you check please?我正在尝试在 PreProcessor JSR223 中运行 crypto-js 但我有一个错误(见下文。我没有找到解决它的方法,你能检查一下吗?

javax.script.ScriptException: SyntaxError: crypto-js.js:1424:48 Expected , but found =
            stringify: function (wordArray, urlSafe=true) {
                                                   ^ in <eval> at line number 1
    at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) ~[nashorn.jar:?]
    at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) ~[nashorn.jar:?]
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) ~[?:1.8.0_202]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:219) ~[ApacheJMeter_core.jar:5.5]
    at org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:45) ~[ApacheJMeter_components.jar:5.5]
    at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:978) ~[ApacheJMeter_core.jar:5.5]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:561) ~[ApacheJMeter_core.jar:5.5]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) ~[ApacheJMeter_core.jar:5.5]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) ~[ApacheJMeter_core.jar:5.5]
    at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_202]
Caused by: jdk.nashorn.internal.runtime.ECMAException: SyntaxError: crypto-js.js:1424:48 Expected , but found =
            stringify: function (wordArray, urlSafe=true) {

Load cryptoJs.js with success成功加载 cryptoJs.js

Nashorn is a Java implementation which supports ECMAScript 5.1 Nashorn是一个支持ECMAScript 5.1的 Java 实现

ECMAScript 5.1 was released in 2011 and now it's 2023 that's why it cannot support ECMAScript 6 or higher, that's why you're getting the error. ECMAScript 5.1 于 2011 年发布,现在是 2023 年,这就是它不能支持 ECMAScript 6 或更高版本的原因,这就是您收到错误的原因。

You could try looking for an archive version of crypto-js which is ECMAScript 5.1 compatible but I don't think it's something you should be doing because Nashorn itself was removed in OpenJDK 15您可以尝试寻找与 ECMAScript 5.1 兼容的 crypto-js 存档版本,但我认为您不应该这样做,因为Nashorn 本身已在 OpenJDK 15 中删除

So I would recommend re-implementing your cryptography logic in Groovy language, moreover it's t he most performing scripting engine andit's recommended for using by JMeter authors .所以我建议用 Groovy 语言重新实现你的密码学逻辑,而且它是性能最好的 脚本引擎推荐给 JMeter 作者使用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM