将javascript函数添加到jMeter

时间:2013-02-13 11:32:20

标签: javascript jmeter

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

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 Post处理器,但不知道我需要使用的确切语法是什么。我想使用此函数将jMeter变量作为参数发布到其中一个HTTP请求中。

编辑:我目前在BSF后期处理器中使用以下脚本。 debub采样器中未显示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);

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

文档here

这是您配置IE web driver

的方式

答案 2 :(得分: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;
}