我正在尝试计算 Groovy 版本 2.4.16 中的 sha256 哈希值。这是 jmeter 测试的一部分,这是它支持的 Groovy 版本,我认为我无法更改它。我知道在 Groovy 2.5 中你可以使用这样的代码 https://mrhaki.blogspot.com/2018/06/groovy-goodness-calculate-md5-and-sha.html:
def challenge = verifier.digest('SHA-256');
log.info 'challenge' + challenge
但这在 2.4 中不起作用/不存在。我怎样才能在 Groovy 2.4 中做到这一点?
我用上面的代码得到的错误是:
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.digest() is applicable for argument types: (java.lang.String) values: [SHA-256]
Possible solutions: getAt(java.lang.String), next(), size(), toSet(), size(), toList()
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72) ~[groovy-all-2.4.16.jar:2.4.16]
at javax.script.CompiledScript.eval(Unknown Source) ~[?:1.8.0_221]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:223) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:44) [ApacheJMeter_components.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:935) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:537) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.1.1 r1855137]
...
您可以使用摘要实用程序 https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html一般加密的类函数,特别是对于您的情况,它将是DigestUtils.sha256Hex() https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html#sha256Hex-java.lang.String-
以下声明:
vars.put('foo', org.apache.commons.codec.digest.DigestUtils.sha256Hex('bar'))
将存储 SHA-256 编码的哈希值bar
线入foo
JMeter 变量,您将能够访问它${foo}
如有需要
vars
代表JMeter变量 https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html类实例,它提供对当前线程上下文中所有 JMeter 变量的读/写访问。查看您应该与 Groovy 一起使用的前 8 个 JMeter Java 类 https://www.blazemeter.com/blog/top-8-jmeter-java-classes-you-should-be-using-with-groovy/阅读本文以了解有关此内容以及可用于 Groovy 脚本的其他 JMeter API 简写的更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)