繁体   English   中英

如何在Jmeter中的Beanshell中调用JavaScript函数

[英]How to call a javaScript function in Beanshell in Jmeter

我正在使用Jmeter进行测试,并且我必须编辑通过正则表达式提取的特定变量,并且尝试使用Beanshell中的javaScript编辑该变量。 首先,我想知道是否可以直接在Beanshell中公开javascript,然后我如何才能调用JavaScript函数。 例如下面的代码。

var passwd = "abcd@123";
        var newpasswd = "";
        var ranVal= "ABCDEF";
 function SaveClick(){
      print("BBBBB");   

                document.write("<h3>Final Encripted Password : </h3>", newpasswd);
            //document.write(newpasswd);
        }

您不能混合使用Beanshell和javascript。

但是要使用完整的javascript,请使用Jsr223元素并选择javascript。

请注意,您将需要内联函数代码,因为不可能在element之外调用函数。

无论如何,Javascript无法让您访问DOM,因此您尝试使用document.write进行的操作将不起作用。

您可以使用具有多种脚本语言的BSF后处理器,javascript是其中之一。

http://jmeter.apache.org/usermanual/component_reference.html#BSF_PostProcessor以下是我的一个测试计划中的示例javascript。 注意使用eval,putObject,put,log等。

log.info("processing image index response");
if ("" != prev.getResponseDataAsString()) {
    eval( 'var indexJSON = ' + prev.getResponseDataAsString() );
    vars.putObject("indexJSON", indexJSON);

    vars.put("currentThumb", "0");
    vars.put("currentSlide", "0");

    var next_slide_timestamp=indexJSON[0].timestamp;
    vars.put("next_slide_timestamp", "0");

    var maxSlides=indexJSON.length;
    vars.put("maxSlides", maxSlides);
} else {
    vars.put("currentThumb", "0");
    vars.put("currentSlide", "0");
    vars.put("next_slide_timestamp", "0");
    vars.put("maxSlides", "0");
    log.info("index time : empty response , setting defaults to zero");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM