web_reg_save_param函数主要是使用在关联中,而关联大部分时候loadrunner的自动关联不奏效的时候,才会使用。
而我要说的是这个函数两个不同的使用方法,当然可能有更好的办法,或许我说的也不全对,欢迎来纠正,嘿嘿~~~
第一种:设置检查点时,可以用来排查为什么检查点失败。
在性能测试测试中,我们必须要设置文本或是图片检查点,来提高我们测试脚本可信度。没有检查点怎么能确认我们的脚本这个请求是正确的呢~~你说是吧~?
但我们经常会有遇到,根据response设置了检查点,但是死活不能查找到内容的情况。
这个时候,就可以让web_reg_save_param上场了,
web_set_max_html_param_len("1024");
web_reg_save_param("test", "LB/IC=", "RB/IC=,", "NotFound=ERROR","Search=Body", LAST);
放在需要获取内容的请求前面,
再使用lr_output_message(lr_eval_string("{test}"));函数输出到log中,就可以排查,请求的返回内容纠结是不是需要的内容。
另外对 web_set_max_html_param_len("1024");说明下,这里可能需要设下设置大小,不然可能response内容太长而不能显示完整。
第二种:在某些测试场景下,需要获取某个ID或者其他值用于下一个请求提交的数据中
而我就遇到了情况,在一次测试中,有一个事件列表,而每一个事件有一个ID来标识,当需要处理事件时,请求中必须带上ID标识符。
查看了页面,找到了我需要获取值的HTML,如下:
<li style="cursor:pointer" id="event_li_200" class="event_list_liact"> <h3>测试数据1 #200</h3> <b class="event_listli_okay">中等</b> <p>地点:测试数据2</p> <p>时间:28天20小时前</p> </li>
id="event_li_200"其中200是我需要获取的值,在请求前加上
web_reg_save_param("event_id", "LB/IC=id="event_li_", "RB/IC="", "NotFound=ERROR", "Ord=1", "Search=Body", LAST);
有两个点说明下,一个是 “ 是需要加 转义的,另一个是Ord=1 根据查找条件会返回多个值,而ord就像数组的下标一样可以指定使用一个有序序列中的元素。
在这里再补充说明下另外一个问题,就是我在实际测试中遇到过异步请求的情况,直接使用web_reg_save_param函数获取不到需要的值。
这里有两种做法:
第一种,将我需要的请求独立出来,单独使用一个函数请求,在其之前写个web_reg_save_param就可以了。
第二种,在Loadrunner的编写脚本工具里面的tree视图,不知道各位有没有发现如果通过该视图建立关联的时候,使用的web_reg_save_param_ex函数,该函数是可以指定
从哪个请求获取的哦~~~碰到这个问题的同志们可以自己试一下
根据以上的方法获取到事件id,保存至event_id变量,之后在提交请求的函数替换对应ID就可以使用了。