美文网首页
web_js_run

web_js_run

作者: _Irving | 来源:发表于2021-11-24 14:37 被阅读0次

    web_js_run(
    //        "Code=encrypt("04319b0bc1cfc5f8b85d6f0fa6d33c7116d80d4fe74544af65e7fd2de53047777578b51352020464dd8523b1a73e609200258b50bf279b9373e494a9","1")",
    "Code=decrypt(LR.getParam('param'),LR.getParam('ct'))",
    "ResultParam=res",
    SOURCES,
    "File=Crypto-js.js",
    ENDITEM,
    LAST);

    LR配置:开启了允许JavaScript运行:Replay→RunTime Settings→Preferences→Javascript→勾选“Enabe running JavaScript code”

    1、【测试2】-----执行JavaScript自带对象的方法,并获取返回值。
    web_js_run(
            "Code=new Date().getTime();",
            "ResultParam=timestamp",
            LAST);
     lr_output_message(lr_eval_string("{timestamp}"));

    2、测试3】-----执行外部js文件中的无参函数,并获取返回值。
    web_js_run(
    "Code=getString()",
    "ResultParam=string1",
    SOURCES,}
    "File=000.js",
    ENDITEM,
    LAST);
    lr_output_message(lr_eval_string("{string1}"));

    备注:①File参数中的js文件放在工作目录下即可使用相对路径;②计算机-组织-文件夹和搜索选项-取消“隐藏已知文件的扩展名”,否则可能会出现找不到文件的错误,测试使用的文件属性如下;

    3、【测试5】执行外部js文件中的有参函数且参数需要动态关联,并获取返回值。

    web_js_run(
    "Code=getSum(LR.getParam('Param'),LR.getParam('Param'))",
    "ResultParam=sum2",
    SOURCES,
    "File=000.js",
    ENDITEM,
    LAST);
    lr_output_message(lr_eval_string("{sum2}"));

    备注:①使用LR.getParam()函数,作用是将LoadRunner的参数值提取出来,用为web_js_run函数运行时Code中的函数参数,传递给本地js文件,类似于LoadRunner的lr_eval_string();

    4、【测试7】函数一次定义多次使用
    web_js_run(
    "Code=myFunc(1, 2);",
    "ResultParam=sum4",
    SOURCES,
    "Code=var myFunc=function(x,y) { return x*1+y*1; }",
    ENDITEM,
    LAST);
    lr_output_message(lr_eval_string("{sum4}"));

    web_js_run("Code=myFunc(3, 4);",
    "ResultParam=sum5",
    LAST);

    lr_output_message(lr_eval_string("{sum5}"));

    在这个例子中,myFunc()一次定义,多次使用,那么我们就会问该函数的生命周期是什么呢?多次迭代会生成多个该函数吗?如果是,那么重复定义造成的资源浪费怎么处理呢?其实:LoadRunner在设计时已经考虑了这些,为此有一个函数web_js_reset,如下。

    【扩展:web_js_reset】

      作用:①清理web_js_run执行后,生成的“变量、函数”等内容,释放其所在内存,否则之前定义过的函数和保存的变量会一直存在,会消耗本地资源的内存;

    备注:如果在“Replay→RunTime Settings→Browser→Browser Emulation”中勾选了“simulate a new user on each iteration”,在开始新一次的迭代时,LoadRunner会自动执行web_js_reset。

    相关文章

      网友评论

          本文标题:web_js_run

          本文链接:https://www.haomeiwen.com/subject/bulltrtx.html