如何在Jmeter中加载外部js库?

时间:2016-03-29 19:48:33

标签: javascript jmeter aws-sdk hmac jsr223

我在jsr223采样器中有以下代码:

var key = "key";
var dateStamp = "20160329T134359Z";
var regionName = "us-east-1";
var serviceName = "execute-api";

   var kDate= Crypto.HMAC(Crypto.SHA256, dateStamp, "AWS4" + key, { asBytes: true})
   var kRegion= Crypto.HMAC(Crypto.SHA256, regionName, kDate, { asBytes: true });
   var kService=Crypto.HMAC(Crypto.SHA256, serviceName, kRegion, { asBytes: true });
   var kSigning= Crypto.HMAC(Crypto.SHA256, "aws4_request", kService, { asBytes: true });
   vars.put("AWSKey", kSigning);

现在,当我运行它时,我收到此错误: 回复代码:500 响应消息:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:未定义“加密”。 (#6)在第6行

显然我没有加密库。但是我对如何装载它们感到茫然。我下载了所有的相关js并将它们放在/ lib文件夹中,但仍然没有。 我下载了这个文件:https://github.com/Boussetta/CryptoJS-v3.1.2 它处理上面代码中的功能,但对于我的生活,我不知道如何导入它。

TIA

1 个答案:

答案 0 :(得分:2)

如果您想使用JavaScript,则有两种选择:

  1. 使用Rhino load()方法,如:

    load("crypto.js")

  2. 使用来自JavaScript的HmacUtils中的Apache Commons Codec

    var rawhmac = org.apache.commons.codec.digest.HmacUtils.hmacSha1(key,data)
    var encoded = org.apache.commons.codec.binary.Base64.encodeBase64String(rawhmac)
    
  3. 但是我会建议选择3 - 切换到“groovy”语言而不是JavaScript,这样你就可以: