LoadRunner 性能测试脚本

发表于:2013-9-22 11:51

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

 作者:知更鸟的自由    来源:51Testing软件测试网采编

  3.2.1.3. lr_rendezvous

  功能:在Vuser脚本中设置集合点。

  应用场合:并发测试。

  举例:客服3.0培训考试系统,100人同时打开同一份试卷。则需要在打开试卷的语句前插入lr_rendezvous函数,并在场景中设置集合点策略。

  注意点:非并发测试,例如在测试系统的处理能力时,最好不要设置集合点,因为一旦设置了集合点,将导致一些VUser处于等待状态,在这等待过程中服务器将是空闲的,这将导致不能准确的测试出服务器的真实性能水平。集合点更多用于发现系统的并发问题。

  3.2.2.参数化/关联

  3.2.2.1.lr_save_string/lr_save_int

  功能:将某一字符串/整型保存为参数。

  应用场合:有些变量的值通过C语言生成,之后在测试脚本中要使用这些变量。

  举例:客服3.0业务配置台系统增加业务代表操作,业务代表的工号和姓名使用C语言函数生成。工号和姓名分别保存在staff_no和staff_name变量中,则在脚本中可以使用lr_save_int(staff_no,"staffno"),lr_save_string(staff_name, "stafffname")将工号和姓名参数化。

  注意点:无。

  3.2.2.2.web_reg_save_param

  功能:在服务器返回的文本中查找一个或者多个字符串,并将搜索到的字符串值保存在参数中。

  应用场合:在B/S或者C/S系统中,服务器返回给客户端的数据有些是动态改变的,在脚本的下一个步骤中,需要使用该动态数据。这时,就需要使用关联获得该动态数据。

  举例:客服3.0工作流系统,工单办理每次都从待办区中打开第一条工单,为打开第一条工单,需要获取第一条工单的完整URL(包括URL中的parameter及其值),而每一次进入待办区,第一条工单有可能是不一样的。为获取第一条工单的URL,将打开工单的URL做关联。已知打开待办区操作获得的HTML有如下片断:

  <a href="#"onclick="javascript:openseviceforprocess('/iwflow/FindJspID.jsp?serialNo=2008092200000033&serviceID=0099&nodeID=140004&dealID=2008092200000056&hisFlag=0&skillID=020401&dealSkillID=020101&dealStaff=1200','false');">

  可在打开待办区的操作前插入如下语句:

  web_reg_save_param("tt_url", "LB=javascript:openseviceforprocess('","RB=','false')", "Ord=1","IgnoreRedirections=Yes", "Search=Body","RelFrameId=1", LAST );

  运行脚本后,tt_url的值为:

  /iwflow/FindJspID.jsp?serialNo=2008092200000033&serviceID=0099&nodeID=140004&dealID=2008092200000056&hisFlag=0&skillID=020401&dealSkillID=020101&dealStaff=1200

  这个URL就是打开第一条工单的URL,有了URL,便可打开工单。

  注意点:

  (1)LoadRunner工具只能识别文本,在HTTP协议中只能识别HTML文档,因此关联的依据是HTML源码,而不是经过浏览器解析后的可视化文本。这一点很重要。

  (2)关联还能将多个匹配的参数保存在数组中,方法是指定ORD的属性值为ALL,之后通过“{参数名_1}”, “{参数名_2}”, “{参数名_3}”格式可获得数组元素的值。

  (3)该函数有一个属性NOTFOUND,默认值为ERROR,也就是说,如果找不到要查找的数据,将报出错误,在必要的时候,例如脚本逻辑控制需要,可以将NOTFOUND的属性值设为WARNING,这样LoadRunner将不产生错误。

  3.2.2.3.lr_save_searched_string

  功能:在某一个字符缓冲区中搜索指定的字符串,并将搜到的字符串保存在参数中。

  应用场合:可配合LoadRunner的关联功能,灵活获取服务器端返回的数据。

  举例:客服3.0工作流系统,工单处理每次都从待办区中打开第一条工单,打开工单的URL已经通过关联保存在tt_url参数中,在工单处理提交时,需要使用serviceNo,serviceID,nodeID,dealID,tt_url的值如下:

  /iwflow/FindJspID.jsp?serialNo=2008092200000033&serviceID=0099&nodeID=140004&dealID=2008092200000056&hisFlag=0&skillID=020401&dealSkillID=020101&dealStaff=1200

  可使用以下函数保存serviceNo,serviceID,nodeID,dealID的值。

//保存serialNo,serviceID,nodeID,dealID参数
int getTTData(){
int i = 0;int j=0;
char *tt_url = lr_eval_string("{tt_url}");
int len= strlen(tt_url);
while(tt_url[i]!='='){i++;} while(tt_url[j]!='&'){j++;}
lr_save_searched_string(tt_url,len,0,"serialNo",1,j-i-1,"serialNo");
i++;j++;while(tt_url[i]!='='){i++;} while(tt_url[j]!='&'){j++;}
lr_save_searched_string(tt_url,len,0,"serviceID",1,j-i-1,"serviceID");
i++;j++;while(tt_url[i]!='='){i++;}  while(tt_url[j]!='&'){j++;}
lr_save_searched_string(tt_url,len,0,"nodeID",1,j-i-1,"nodeID");
i++;j++; while(tt_url[i]!='='){i++;}  while(tt_url[j]!='&'){j++;}
lr_save_searched_string(tt_url,len,0,"dealID",1,j-i-1,"dealID");
return 0;
}

  注意点:无

  3.2.2.4.lr_save_datetime

  功能:将时间保存为参数。

  应用场合:应用系统需要把时间数据提交给服务器端。

  举例:客服3.0工作流系统活动工单查询,默认查询从当天开始的最近三天工单。 则查询的开始时间和结束时间可用lr_save_datetime获取。

  lr_save_datetime("%y-%m-%d00:00", DATE_NOW-2*ONE_DAY, "queryBeginTime");

  lr_save_datetime("%y-%m-%d23:59", DATE_NOW, "queryEndTime");

  注意点:无

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号