0

我正在尝试使用 JSR223 使 javascript 函数与 jMeter 测试计划一起使用。它用于解码字符串。我有以下两个需要在 jmeter 中实现的功能:

function AESEncryption(text, passphase, bytessize) {

var key = CryptoJS.enc.Utf8.parse('ABCDEFGHIJKL1234567891234');
var iv = CryptoJS.enc.Utf8.parse('1234567890123456');
var blocksize = bytessize / 2;
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), passphase, key,
{
    keySize: bytessize,
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
});
var dta = String(encrypted);
return dta;}


function AESDecryption(text, key, bytessize) {
try {
    //alert(text + ":" + key + ":" + bytessize);
    var e = CryptoJS.AES.decrypt(text, key, bytessize);
    //alert("Ec:" + e);
    return CryptoJS.AES.decrypt(text, key, bytessize).toString(CryptoJS.enc.Utf8);
}
catch (Error) {
    return "";}}
4

1 回答 1

3

load您可以使用指令将外部 JavaScript 导入 JSR223 Sampler 。

  1. 从https://github.com/brix/crypto-js/releases下载最新版本的 crypto-js (我使用的是 3.1.9)并将其解压到 JMeter 的“bin”文件夹中
  2. 将下一行添加到 JSR223 脚本的开头:

    load('crypto-js-3.1.9/crypto-js.js');
    
  3. 您应该能够直接在 JSR223 采样器中访问您的 JavaScript 函数

    JSR223 JavaScript


请注意,通过 Rhino/Nashorn 解释的 JavaScript 具有严重的性能缺陷,因此如果您计划通过多个线程调用此函数,则在Groovy中重写您的函数更有意义。

于 2017-01-18T14:20:26.520 回答