一边录制一边关联—性能测试进阶指南 LoadRunner 11实战(第二版)

发表于:2015-1-20 10:48

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

 作者:陈霁、李锋、王臣钧    来源:51Testing软件测试网原创

(51Testing软件测试网获得作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  得到以下脚本:
  web_set_max_html_param_len("9999999");
  通过这个函数可以确保不会出现参数内容过长而无法存放的错误,不过这是以开销系统资源为代价的。
  接着来看看web_reg_save_param_ex函数的选项,由于关联出来的内容存放在参数中,所以还是建议打开日志中的Parameter substitution选项,以方便调试跟踪。
  打开Add Step添加步骤,选择web_reg_save_param_ex函数,打开关联函数设置窗口,如图A.126所示。
  
图A.126  web_reg_save_param_ex函数设置窗口
  1.Parameter Name
  此处设置存放参数的名称,关联出来的内容将会存放在该参数中。这里受到Ordinal选项的影响。
  例如:
  设置Parameter Name为temp,当对应的Ordinal选项是任意一个数字的时候,只会关联一个匹配的记录,关联值将会存放在temp这个参数中。当Ordinal是All的时候,关联成功后的值将会依次存放在"temp_数字"这样的参数数组中,并且还会添加一个temp_count的参数存放关联出来的记录条数。
  2.Left Boundary
  此处设置左边界,这里是用来填写关联对于数据处理的左匹配内容规则。在左边界中存放的是一个字符串,例如,填写的内容为"左边界"会被转换成以下形式:
  web_reg_save_param_ex(
  "ParamName=test",
  "LB=左边界",
  "RB=",
  SEARCH_FILTERS,
  LAST);
  如果输入的内容里面有双引号,那么需要通过转义符\来进行处理,例如:
  web_reg_save_param_ex(
  "ParamName=test",
  "LB=\"左边界",
  "RB=",
  SEARCH_FILTERS,
  LAST);
  3.Match case
  默认情况下边界是Match case的,也就是检查大小写的,可以取消下面的选项来忽略大小写检查,会看到函数变为以下形式:
  web_reg_save_param_ex(
  "ParamName=test",
  "LB/IC=左边界",
  "RB=",
  SEARCH_FILTERS,
  LAST);
  4.Binary data
  如果需要关联的内容是非ASCII字符的,那么需要使用该选项。选中该选项后可以看到函数变为以下形式:
  web_reg_save_param_ex(
  "ParamName=test",
  "LB/BIN=\\x3F\\xDD",
  "RB=",
  SEARCH_FILTERS,
  LAST);
  5.Regular expression
  在LR11中关联函数提供了使用正则表达式的功能,但是在LR11 Patch3中取消了web_reg_save_param_ex函数对该功能的支持,而该功能由函数web_reg_save_param_regexp实现。
  6.Right Boundary
  此处设置右边界,这里是用来填写关联时对于数据处理的右匹配内容规则,选项同左边界。
  7.DFEs
  在录制选项和回放选项中我们提到过DFE的功能,在关联这里也支持DFE的数据处理,我们先回到录制选项中的那个例子中,为其写一个普通关联看看返回(为了让返回结果看得更清楚,这里提前使用了Scope=BODY规则,该规则作用参考后面的Scope属性介绍)。
  web_reg_save_param_ex(
  "ParamName=test",
  "LB=",
  "RB=",
  SEARCH_FILTERS,
  "Scope=BODY",
  LAST);
  web_url("json.php",
  "URL=http://localhost:8000/phpwind85/json.php",
  LAST);
  该代码运行后我们看到的返回结果是JSON数据:
  Action.c(47): Notify: Saving Parameter "test = {"name":"Tom","age":18,"hobby": "basketball"}".
  接着我们使用关联的DFE功能,在这里设置关联的DFEs格式为JsonXml(这里的格式是指系统自带的DFE模块的Tag名,参考图A.35),然后还要确保Run-time settings中的DFE功能启用,代码变为:
  web_reg_save_param_ex(
  "ParamName=jsonresponse",
  "LB=",
  "RB=",
  "DFEs=JsonXml",
  "Ordinal=1",
  SEARCH_FILTERS,
  LAST);
  web_url("json.php",
  "URL=http://localhost:8000/phpwind85/json.php",
  LAST);
  代码运行后,查看日志会发现JSON的数据格式变成了XML的数据格式:
  Action.c(47): Notify: Saving Parameter "jsonresponse = <HP_EXTENSION name= "JsonXml"><object><pair name="name" type="str">Tom</pair><pair name="age" type= "num">18</pair><pair name="hobby" type="str">basketball</pair></object></HP_
  EXTENSION>".
  现在是XML的数据格式了,回忆在前面参数中介绍的对XML数据格式的处理函数,你就知道接着可以干什么了。
  DFE是可以自行定义的,除了系统自带的5种格式,还能使用自行开发的格式。自定义DFE的代码写法参考安装目录为HP\LoadRunner\samples\DataFormatExtension,使用VS2005中的VC++2005进行开发。编译生成的DLL文件存放在安装目录下HP\LoadRunner\bin中,配置文件存放在安装目录HP\LoadRunner\DfeConfig\extensions中。
本文选自《性能测试进阶指南—LoadRunner 11实战(第二版)》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
52/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号