Как загрузить внешнюю библиотеку JS в Jmeter?

У меня есть следующий код в сэмплере 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: "Crypto" не определено. (№ 6) в строке № 6

Очевидно, у меня нет крипто-библиотек. Однако я не знаю, как их загрузить. Я загрузил все соответствующие js и поместил их в папку /lib, но ничего не вышло. Я скачал этот файл: https://github.com/Boussetta/CryptoJS-v3.1.2 который обрабатывает функции, описанные в приведенном выше коде, но я не представляю, как его импортировать.

ТИА

1 ответ

Если вы хотите перейти на JavaScript - есть 2 варианта:

  1. Используйте Rhino load() метод как:

    load("crypto.js")

  2. Используйте класс HmacUtils из кодека Apache Commons из JavaScript

    var rawhmac = org.apache.commons.codec.digest.HmacUtils.hmacSha1(key,data)
    var encoded = org.apache.commons.codec.binary.Base64.encodeBase64String(rawhmac)
    

Однако я бы порекомендовал перейти к варианту 3 - переключиться на "отличный" язык вместо JavaScript, чтобы вы могли:

Другие вопросы по тегам