检查点—性能测试进阶指南 LoadRunner 11实战(第二版)

发表于:2015-1-21 12:47

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

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

  首先谈一下VuGen确定脚本运行成功的判断条件。在录制编写脚本后,通常就会进行回放,如果回放通过没有出现错误,就认为脚本是正确的。究竟VuGen怎么区分脚本是否回放正确呢?细心的朋友会发现,基本上所有脚本回放错误都是因为404错误,也就是页面无法找到,而只要页面返回了,VuGen都不会提示任何错误。例如,前面登录Phpwind论坛发帖的脚本,由于没有做关联操作而导致发帖失败,但是脚本还是执行成功了,在Test Results中显示为PASS状态。
  VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的。在绝大多数系统出错时会返回错误页面吗?不会,一般系统都会返回一个消息提示框,来提升用户感受。例如,"网站忙,请稍候"。其实这个时候网站已经无法正确响应用户请求了,但是VuGen脚本无法识别,会错误地认为网站还能正确访问,导致分析错误。所以这时需要一种检查点函数帮助验证请求发送出去后,服务器的返回是不是期望的内容,如果不是,那么就说明服务器无法提供正常的服务了。
  检查点函数和关联函数比较相似,同样也是一个注册型函数web_reg_find()。该函数能够对服务器返回的内容进行检查。
  例如,在Phpwind的注册操作中,在注册成功后,服务器会返回一个页面,这个页面包含"恭喜您完成注册"这样的字段。我们可以这样理解:只要服务器返回这段内容,那么就说明注册成功了,否则就是注册失败,脚本回放失败。先录制一个注册用户的脚本,如下所示:
Action()
{
web_submit_data("register.php_3",
"Action=http://localhost:8000/phpwind85/register.php?",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://localhost:8000/phpwind85/register.php",
"Snapshot=t17.inf",
"Mode=HTML",
ITEMDATA,
"Name=forward", "Value=", ENDITEM,
"Name=step", "Value=2", ENDITEM,
"Name=_hexie", "Value=4291dd3b", ENDITEM,
"Name=regname", "Value=cloud", ENDITEM,
"Name=regpwd", "Value=cloud1000", ENDITEM,
"Name=regpwdrepeat", "Value=cloud1000", ENDITEM,
"Name=regemail", "Value=cloud.chen@gmail.com", ENDITEM,
"Name=apartment", "Value=110101", ENDITEM,
"Name=rgpermit", "Value=1", ENDITEM,
LAST);//该代码精简了部分Ajax请求和前置页面
return 0;
}
  回放这个脚本,查看Test Results中显示的结果是运行通过,但是如果认真看一下最后一步的截图,就会发现回放的脚本根本就没有执行成功,因为cloud用户已经存在了,回放不会注册任何新的用户,但是VuGen不会判断注册失败的错误,这里必须通过检查点函数来解决。
  现在在web_submit_data()函数前添加检查点函数(注册型函数一定要写在请求前)。打开Insert菜单下的New step选项,找到web_reg_find()函数并进行添加,如图A.133所示。
  
图A.133  web_reg_find()函数设置界面
  A.8.1  文本检查点
  web_reg_find()文本检查点函数提供了一种对服务器返回内容进行查询的功能,与关联的不同之处在于检查点函数只能返回检索到内容的次数。
  1.Search for specific Text
  需要查询的标准文本,该功能和Word中的查找功能十分相似。在服务器返回的内容中查找特定的字符串,内容支持参数化,并且支持和关联相同的通配符和识别方式。
  在这里输入需要查找的字符串即可,检查点函数将会找出服务器返回中是否存在需要查找的内容。
  2.Search for Text by start and end of string
  文本检查点函数也同样提供了根据左右边界进行查找的功能,选项参考关联函数。
  3.Search in
  设置在服务器返回的哪部分数据中进行查询。这里提供了All、Headers、Body三个选项,和关联函数相同,Headers是指HTTP返回的包头部分;而Body是指返回HTTP的正文部分,一般来说需要检查的内容都存放在Body中。
本文选自《性能测试进阶指南—LoadRunner 11实战(第二版)》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号