Loadrunner11检查点使用方法总结

发表于:2021-5-06 09:44

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

 作者:lovesoo    来源:博客园

  1.HTTP协议
  HTTP协议中检查点有两种:图片和文字。这两种检查点可用以下三个函数实现:web_find()、web_reg_find()和web_image_check(),下面介绍三种函数的使用方法。
  1.1web_find()函数
  函数的作用是“在页面中查找相应的内容”,常用参数及含义如下:
  web_find("web_find",//定义该查找函数的名称:
  "RightOf=a",//定义查找字符的右边界
  "LeftOf=b",//定义查找字符的左边界
  "What=name",//定义查找内容
  LAST);
  使用该函数注意以下事项:
  位置
  该函数在页面内容显示出来以后,在页面中进行查找,所以只能写在要查找内容之后。
  录制模式
  该函数只能在基于HTML模式录制的脚本中进行查找。
  必须启用内容检查选项
  在Runtimesetting->Preferences里面,把Enableimageandtextcheck选中,否则不执行该查找函数。
   
  启用内容检查选项:
  在VB和JAVA语法中不支持该函数
  该函数还有以下缺点:
  执行效率较低
  不返回查找结果情况,如果想在执行该函数后根据查找结果做进一步操作时,没有返回值可以依据。
  例如:在页面中查找“登录成功”的字符串,如果找到该字符串在日志中输出“登录成功”,如果找不到该字符串,则在日志中输出“登录失败”,此时使用该函数没有依据来做此判断,但使用web_reg_find()函数,使用它其中的SaveCount可以进行判断,具体方法我们下面介绍。
  1.2web_reg_find()函数
  函数的作用是“在缓存中查找相应的内容”,常用参数及含义如下:
  web_reg_find("Search=Body",//定义查找范围
  "SaveCount=count",//定义查找计数变量名称
  "Text=test",//定义查找内容
  LAST);
  使用该函数注意以下事项:
  位置
  该函数写在要查找内容的请求之前,通常情况下写在如下六个函数之前:Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url()
  使用技巧
  该函数中的“SaveCount”参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到,下面举个例子来说明:(引用LR的帮助中的例子)。
Action()
{
//RuntheWebTourssample
web_url("MercuryWebTours",
"URL=http://localhost/MercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
//Setupcheckforsuccessfulloginbylookingfor"Welcome"
web_reg_find("Text=Welcome",
"SaveCount=Welcome_Count",
LAST);
//Nowlogin
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username","Value=jojo",ENDITEM,
"Name=password","Value=bean",ENDITEM,
"Name=login.x","Value=35",ENDITEM,
"Name=login.y","Value=14",ENDITEM,
LAST);
//Checkresult
if(atoi(lr_eval_string("{Welcome_Count}"))>0)
//判断如果Welcome字符串出现次数大于0
{lr_output_message("Logonsuccessful.");}
//在日志中输出Logonsuccessful
else
//如果出现次数小于等于0
{lr_error_message("Logonfailed");}
//在日志中输出Logonfailed
return(0);
}
  1.3web_image_check()函数
  函数作用:在页面中查找一个具体的图片,常用参数及含义如下:
  web_image_check("web_image_check",//函数标题
  "Alt=",//图标说明
  "Src=",//图片链接地址
  LAST);
  使用该函数注意以下事项:
  “Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值。
  该函数是在缓存中查找相应的内容,所以要放在查找内容之前。
  使用该函数时,同样需要在Vuser->Run-TmeSettings中勾选EnableImageandtextcheck。
  下面是应用实例:
#include"web_api.h"
Action()
{
web_url("www.google.cn","URL=http://www.google.cn/","Resource=0","RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,
LAST);
web_image_check("web_image_check",
"Src=/intl/zh-CN/images/logo_cn.gif",
"Alt=Google",
LAST);
return0;
}
  LoadRunner执行后日志记录如下:
Action.c(20):"web_image_check"succeeded(1occurrence(s)found.Alt="Google",Src="/intl/zh-CN/images/logo_cn.gif")[MsgId:MMSG-27192]Action.c(20):web_image_checkwassuccessful[MsgId:MMSG-26392]
  1.4插入函数的方法
  手工写入,在需要插入函数的位置手工写入该函数。
  光标停留在要插入函数的位置,在INSERT菜单中,选择Newstep,在列表中选择或查找要插入的函数,根据提示填写必要的参数。
  在Treeview模式下,在树状菜单中选中要插入函数的位置,右键,选择Insertafter或Insertbefore,根据提示填写必要的参数。
  1.5小结
  WEB_FIND与WEB_REG_FIND函数类型不同,WEB_FIND是普通函数,WEB_REG_FIND是注册函数。
  WEB_FIND使用时必须开启内容检查选项,而WEB_REG_FIND则不没有此限制。
  WEB_FIND只能只用在基于HTML模式录制的脚本中,而WEB_REG_FIND没有此限制。
  WEB_FIND是在返回的页面中进行内容查找,WEB_REG_FIND是在缓存中进行查找。
  WEB_FIND在执行效率上不如WEB_REG_FIND。
  2.Socket与Webservice协议
  由于Socket协议与Webservice协议中检查点设置方法基本一致,本文主要以实例来逐一说明。
  实例1:Socket协议
  Socket协议测试脚本如下:
#include"lrs.h"
Action()
{
intsc=0;
lr_start_transaction("BIG1");
//建立socket链接
sc=lrs_create_socket("socket1","TCP","RemoteHost=192.168.85.247:26001",LrsLastArg);
if(sc==0)
lr_output_message("Socketwassuccessfullycreated");
else
lr_output_message("Anerroroccurredwhilecreatingthesocket,ErrorCode:%d",sc);
//发送socket请求,接收socket返回结果
lrs_send("socket1","buf0",LrsLastArg);
lrs_receive("socket1","buf1",LrsLastArg);
//保存socket返回结果至参数Res_BIG1中
lrs_save_param_ex("socket1","received","buf1",0,lrs_get_last_received_buffer_size("socket1"),NULL,"Res_BIG1");
//关闭socket链接
lrs_disable_socket("socket1",DISABLE_SEND);
lrs_close_socket("socket1");
//判断Res_BIG1参数中是否有"content-length:10"字段
if((strstr(lr_eval_string("<Res_BIG1>"),"content-length:10"))==NULL)
{
lr_error_message("-------%s",lr_eval_string("<Res_BIG1>"));
lr_end_transaction("BIG1",LR_FAIL);
}
else
{
lr_output_message("-------%s",lr_eval_string("<Res_BIG1>"));
lr_end_transaction("BIG1",LR_PASS);
}
return0;
}
  实例2:Webservie协议
  Webservice性能测试脚本如下:
Action()
{
lr_start_transaction("SaveSession");
web_service_call("StepName=SubmitNLSMS",
BEGIN_ARGUMENTS,
"inputXML=<mobileno>{UserNO}</mobileno><smscontent>hi</smscontent>",
END_ARGUMENTS,
BEGIN_RESULT,
"SubmitNLSMSRequestResult=SubmitSMSResult1",//保存返回结果至参数中
END_RESULT,
LAST);
//判断返回结果
if((strstr(lr_eval_string("{SubmitSMSResult1}"),"HelloWorld"))==NULL)
{
lr_error_message("-------%s",lr_eval_string("{UserNO}"));
lr_error_message("-------%s",lr_eval_string("{SubmitSMSResult1}"));
lr_end_transaction("SaveSession",LR_FAIL);
}
else
{
lr_output_message("-------%s",lr_eval_string("{UserNO}"));
lr_output_message("-------%s",lr_eval_string("{SubmitSMSResult1}"));
lr_end_transaction("SaveSession",LR_PASS);
}
return0;
}
  2.1小结
  使用“检查点”,首先需要得到“返回结果”,将该返回结果保存至参数中。
  对返回结果进行判断,这里可能需要用到lr_eval_string(),atoi(),strstr()等函数。
  相关函数说明:
  lr_eval_string()函数作用是取得参数值,将字符串变量中的参数值替换为当前的参数值并将这个字符串返回。
  atoi()函数的作用是将一个ASCII字符串转换为整型。
  strstr()函数格式为strstr(str1,str2),其中str1:被查找目标stringexpressiontosearch,str2:要查找对象Thestringexpressiontofind.该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL。

    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号