3

我正在尝试让 javascript 函数与 jMeter 测试计划一起使用。
它用于解码字符串。

function decode(str) {
    var strtodecrypt = str.split("-");
    var msglength = strtodecrypt.length;
    decrypted_message = "";
    for (var position = 0; position < msglength; position++) {
        ascii_num_byte_to_decrypt = strtodecrypt[position];
        ascii_num_byte_to_decrypt = ascii_num_byte_to_decrypt / 2;
        ascii_num_byte_to_decrypt = ascii_num_byte_to_decrypt - 5;
        decrypted_byte = String.fromCharCode(ascii_num_byte_to_decrypt);
        decrypted_message += decrypted_byte;
    }
    return decrypted_message;
}

我曾尝试使用 BSF 后处理器,但不知道我需要使用的确切语法是什么。我想使用此函数在其中一个 HTTP 请求中发布一个 jMeter 变量作为参数。

编辑: 我目前在 BSF 后处理器中使用以下脚本。userResponse不显示在调试采样器中。我需要添加任何参考使用String.fromCharCode(ascii_num_byte_to_decrypt)吗?

var str="142";
var strtodecrypt = str.split("-");
var msglength = strtodecrypt.length;
decrypted_message = "";

for (var position = 0; position < msglength; position++) {
    ascii_num_byte_to_decrypt = strtodecrypt[position];
    ascii_num_byte_to_decrypt = ascii_num_byte_to_decrypt / 2;
    ascii_num_byte_to_decrypt = ascii_num_byte_to_decrypt - 5;
    decrypted_byte = String.fromCharCode(ascii_num_byte_to_decrypt);
    decrypted_message += decrypted_byte;
}

vars.put("userResponse",decrypted_message);
4

3 回答 3

5

您也可以尝试使用脚本语言设置为 javascript ( )的JSR223 Sampler 。 它将处理您的脚本(第 2 版)、变量集并在调试采样器结果中可用。Language: JavaScript

于 2013-02-13T12:45:25.287 回答
0

您应该为此使用 WebDriver 插件。它可以配置为 IE/Firefox/Chrome 甚至 Selenium。

这里的文档

这是您配置IE Web 驱动程序的方式

于 2015-06-02T15:02:14.300 回答
0

对于多年后阅读的任何人:

可以从 BSF PostProcessor 调用 javascript 函数。

您需要在文件中比使用它的位置更高的位置定义您的函数。

这意味着这有效:

function decode(str) {
    (...... do stuff......)
    return something;
}

var bar = decode("foo");
vars.put("someVariableName", bar);

然而这不起作用:

var bar = decode("foo"); // <--- Compile error, undefined function 'decode'
vars.put("someVariableName", bar);

function decode(str) {
    (...... do stuff......)
    return something;
}
于 2017-02-24T13:50:56.747 回答