以上文件在Loadruner中是以dat文件来保存,默认以notepad 打开。数据设置非常简单,需要指出的是参数依赖。

  比如我们选择这个file parameter作为某一个业务参数。只能选择order表中的一个列,而不是所有table。所以这里涉及到

  table中列的互相依赖。假设一个用户用0001 OrderCode 那么这个用户必然会用到 100 的price和 user1的operator。

  列之间互相依赖可以有Vuser -> Parameter List 进入修改界面。通过select next row 栏目选择 same line as 字段名

  这样该列能实现以上所述的列之间的依赖。

  3、Loadrunner运行后参数返回值

  继续参考Order 和 OrderDetail 例子,假设当Order保存后,应用程序自动生成 一个OrderId,且该OrderId为GUID。

  也是说该OrderId是我们事先无法预知的,也无法准备该值来进行压力测试。我们以LoadRunner的的录制脚本来讲解这个场景下如何使用LoadRunner。

  首先请先参考Loadrunner   web_reg_save_param 这个函数参数说明:

  语法:int web_reg_save_param(const char *ParamName, , LAST);

  参数说明:

  ParamName:存放得到的动态内容的参数名称
  list of Attributes:其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
  Notfound: 当在返回信息中找不到要找的内容时应该怎么处理
  Notfound=error:当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。
  Notfound=warning:当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。
  LB( Left Boundary ):返回信息的左边界字串。该属性必须有,并且区分大小写。
  RB( Right Boundary ):返回信息的右边界字串。该属性必须有,并且区分大小写。
  RelFrameID:相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。
  Search:返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
  ORD:说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。
  SaveOffset:当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。
  SaveLen:当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。
  Convert:可取的值有以下两种:
  HTML_TO_URL:将 HTML-encoded 资料转成 URL-encoded 资料格式
  HTML_TO_TEXT:将 HTML-encoded 资料转成纯文字资料格式

  ok,现在开始在录制脚本内使用这个函数:

  //定义这个主表将要生成的ID,具体参数含义参考上文中的web_reg_save_param 参数说明,这里不再解释了。

web_reg_save_param("Id","LB=Id":"", "RB="}","Notfound=warning","Search=Body", LAST);
//http服务端保存脚本
web_custom_request("SaveOrder",
"URL=http://192.168.0.1:8080/Order/SaveTmsOrder",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=http://192.168.0.1:8080/Order/TmsOrder",
"Snapshot=t10.inf",
"Mode=HTML",
"Body=TnNo=&TnTypeCode=OUTBOUND&FeeTypeCode=AUTO+CALCULATION&ShipperName=%E5%8C%97%E4%BA%AC%E4%BB%93%E5%BA%93&ShipperCode=BJ&ShipperId=0569ccc3-6625-4ffb-b659-2e4fb3b10bc5&ShipperNameEn=BJ&ShipperTypeCode=&ShipperTypeName=&ShipperOfficeCode=BJ&ShipperOfficeName=%E5%8C%97%E4%BA%AC%E4%BB%93%E5%BA%93&ShipperAttribute=0&OriginCityCode=Beijing&OriginCityName=beijing"
"ConsigneeName={ConsigneeName}&"
"ConsigneeCode={ConsigneeCode}&"
........

//在loadrunner 的控制台输出 服务端返回的ID
lr_output_message("%s",lr_eval_string("{Id}"));

  下面如果还有其他地方需要用到这个Id,请使用 "Value={Id}"。

  小结:

  文中只是提到了本人在实际压力测试中使用loadrunner过程中的一些心得,当然功能强大的Loadrunner 远不止这么一点功能可以来让我们挖掘。比如loadrunner事务的使用、对事务插入集合点等。强大的图标分析器等等

  这些留给读者自己去实践了。