51Testing丛书:性能测试进阶指南—LoadRunner 11实战(7)

发表于:2012-5-14 11:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁    来源:51Testing软件测试网原创

  8.Ordinal

  这个关键字在很多函数里面都有应用,在这里可以填写任意一个整数,也可以填All。如果填写数字,那么说明从返回的记录中取出对应顺序的值,而填写All的话将会返回所有的内容。

  当使用Ordinal =All时,关联函数会把所有匹配过滤策略的记录都抓出来,由于参数只能存放一条记录,所以关联函数会生成一个参数数组。被关联的记录会以{关联参数名_关联id}的形式生成参数列表,并且在最后会有一个{关联参数名_count}的参数来存放被关联到的记录条数。

  例如,上面写过的一个关联热搜关键字的例子,代码如下所示:

web_reg_save_param_ex(

"ParamName=hotsearch",

"LB=<a href=\"searcher.php?keyword=",

"RB=&type=thread\">",

SEARCH_FILTERS,

LAST);

  当Instance设置为All时,代码变为:

web_reg_save_param_ex(

"ParamName=hotsearch",

"LB=<a href=\"searcher.php?keyword=",

"RB=&type=thread\">",

"Ordinal=ALL",

SEARCH_FILTERS,

LAST);

  运行代码后,关联将会返回所有匹配左右边界的内容,结果如下:

Action.c(20): Notify: Saving Parameter "hotsearch_1 = 结婚".
Action.c(20): Notify: Saving Parameter "hotsearch_2 = 母婴".
Action.c(20): Notify: Saving Parameter "hotsearch_3 = phpwind".
Action.c(20): Notify: Saving Parameter "hotsearch_4 = testing001".
Action.c(20): Notify: Saving Parameter "hotsearch_5 = 结婚".
Action.c(20): Notify: Saving Parameter "hotsearch_count = 5".

  在使用ALL返回关联时,当关联的返回对象很长,就有可能导致参数长度溢出的问题。例如,我们关联一个板块中每一个帖子所在行的大多数信息,这里要关联的内容为:

<td class="subject" id="td_1882">

<a href="read.php?tid=1882" name="readlink"  id="a_ajax_1882" class="subject_t f14">testewt</a>&nbsp;  
            </td>
            <td class="author"><a href="u.php?uid=1">admin</a><p>2011-10-04</p></td>
            <td class="num"><em>0</em>/1</td>
            <td class="author"><a href="u.php?username=admin">admin</a><p><a href="read.php?tid=1882&page=e#a" title="2011-10-04 15:32">10-04 <span>&raquo;</span></a></p></td>

  这一段数据相对以前关联的内容要长很多,而且由于一个板块会有20个帖子,如果使用ALL关键字会返回20次这样长度的内容,代码如下:

web_reg_save_param_ex(
  "ParamName=test",
  "LB=<td class=\"subject\"",
  "RB=</a></p></td>",
  "Ordinal=ALL",
  SEARCH_FILTERS,
  LAST);
web_url("forum","URL=http://localhost:8000/phpwind85/thread.php?fid=5",LAST);

  当我们运行这样的关联时,会出现关联失败的情况。这个错误不是前面说到的关联边界设置导致关联失败错误,而是关联数据太长导致参数溢出而出现的关联失败错误。在这种情况下,我们就需要在关联前添加参数长度定义函数web_set_max_html_ param_len("999999")来避免参数长度不够,无法将关联的结果保存,导致最终关联失败的情况。

  9.Save Offset

  设置关联的内容偏移量,从第几位开始进行关联操作。回到最开始的例子,我们抓取的是You have successfully installed XAMPP on this system!,如果需要获得successfully installed XAMPP on this system!这个字符串,则不用改变左边界,只需要设置Save Offset为9即可,代码为:

web_reg_save_param_ex(
        "ParamName=temp",
        "LB=Congratulations:<br>",
        "RB=</b><p>",
        "Ordinal=1",
        "SaveOffset=9",
        SEARCH_FILTERS,
        "ContentType=text/html",
LAST);

  对于一些定长度但是左边界比较难写的数据段用Save Offset可以很方便处理,不过在LR11中有了正则表达式这也不是什么问题了。

63/6<123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号