用LoadRunner对web服务器做压力测试
作者:网络转载 发布时间:[ 2013/4/12 10:51:03 ] 推荐标签:
以上文件在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:存放得到的动态内容的参数名称
ok,现在开始在录制脚本内使用这个函数:
//定义这个主表将要生成的ID,具体参数含义参考上文中的web_reg_save_param 参数说明,这里不再解释了。
web_reg_save_param("Id","LB=Id":"", "RB="}","Notfound=warning","Search=Body", LAST);
//在loadrunner 的控制台输出 服务端返回的ID
下面如果还有其他地方需要用到这个Id,请使用 "Value={Id}"。
小结:
文中只是提到了本人在实际压力测试中使用loadrunner过程中的一些心得,当然功能强大的Loadrunner 远不止这么一点功能可以来让我们挖掘。比如loadrunner事务的使用、对事务插入集合点等。强大的图标分析器等等
这些留给读者自己去实践了。
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 资料转成纯文字资料格式
//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}&"
........
lr_output_message("%s",lr_eval_string("{Id}"));
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11