JSR223脚本中的问题JSR223 Sampler:javax.script.ScriptException:groovy.lang.MissingMethodException:没有方法签名:

问题描述 投票:0回答:1

我有一个 encrypt.js 脚本,用于加密和解密用户输入的密码。它嵌入在应用程序网页中。

我尝试使用此代码在 jmeter 中加载相同的脚本

load ('/apache-jmeter-5.6.3/scripts/encrypt.js');

运行它时,我收到此错误。

2024-02-27 09:55:47,729错误o.a.j.p.j.s.JSR223Sampler:JSR223脚本JSR223采样器中出现问题,消息:javax.script.ScriptException:groovy.lang.MissingMethodException:没有方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl .load() 适用于参数类型:(字符串)值:[/apache-jmeter-5.6.3/scripts/encrypt.js]

在语言中,我使用了groovy,因为下拉列表中没有javascript。如何在jmeter中成功导入javascript?

jmeter jsr223 sampler

尝试加载并加密开发者提供的js以成功登录应用程序

javascript groovy jmeter password-encryption jsr223
1个回答
0
投票

如果您尝试使用 Mozilla Rhino 中的 Global.load() 函数加载外部 JavaScript 文件 - 您将无法使用 Groovy 语言执行此操作。您需要切换到

javascript

例如,如果您的“encrypt.js”文件具有以下功能:

function myFunction(name) {
  return 'Hello, ' + name + '!'
}

您可以加载它并在 JMeter 中调用它,如下所示:

但是请注意,使用 JavaScript 是:

  1. 一般不推荐,因为 Nashorn 引擎已从 JDK15 中删除,并且在较新的 Java 版本上运行测试时会遇到麻烦
  2. 这是一种性能反模式,从 JMeter 3.1 开始,您应该使用 Groovy 语言 进行脚本编写,尤其是加密操作,因此我宁愿建议在 Groovy 中实现加密逻辑,而不是尝试从 Java 调用 JavaScript。有关更多详细信息,请参阅Apache Groovy:Groovy 有何用途?使用 Groovy 进行加密和解密
© www.soinside.com 2019 - 2024. All rights reserved.