获取MD5 hasmap进行比较

Getting MD5 hasmap for comparison

我正在尝试使用空手道获取字符串的 MD5 哈希值以进行比较。

我创建了一个 common.feature,内容如下:

我已经添加了:

import org.apache.commons.codec.digest.*; 

在 *test.java 文件中。

但是,我在执行时仍然遇到这个错误:

Scenario: trial and error Time elapsed: 0.019 sec <<< ERROR! java.lang.RuntimeException: javascript evaluation failed: getMDhash('my first attempt') at com.intuit.karate.ScriptBindings.eval(ScriptBindings.java:115) at com.intuit.karate.ScriptBindings.updateBindingsAndEval(ScriptBindings.java:103) at com.intuit.karate.ScriptBindings.evalInNashorn(ScriptBindings.java:88) at com.intuit.karate.Script.evalJsExpression(Script.java:362) at com.intuit.karate.Script.evalKarateExpression(Script.java:284) at com.intuit.karate.Script.evalKarateExpression(Script.java:170) at com.intuit.karate.Script.assign(Script.java:598) at com.intuit.karate.Script.assign(Script.java:524) at com.intuit.karate.StepDefs.def(StepDefs.java:305) at ?.* def final = getMDhash('my first attempt')(testSuite/users/dummy.feature:7) Caused by: javax.script.ScriptException: ReferenceError: "DigestUtils" is not defined in at line number 1 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) at com.intuit.karate.ScriptBindings.eval(ScriptBindings.java:108) at com.intuit.karate.ScriptBindings.updateBindingsAndEval(ScriptBindings.java:103) at com.intuit.karate.ScriptBindings.evalInNashorn(ScriptBindings.java:88) at com.intuit.karate.Script.evalJsExpression(Script.java:362) at com.intuit.karate.Script.evalKarateExpression(Script.java:284) at com.intuit.karate.Script.evalKarateExpression(Script.java:170)

您似乎缺少 DigestUtils 的负载。尝试:

* def getMDhash = function(pdfFile){ var DigestUtils = Java.type('replace.me.DigestUtils'); return DigestUtils.md5Hex(pdfFile).toUpperCase(); }

有关类似示例,请参阅文档的这一部分:https://github.com/intuit/karate#http-basic-authentication-example