Loadrunner 11检查点使用方法总结
在使用Loadrunner 11进行性能测试中,有时需要对性能测试中的功能是否全部正确进行判断。这里就需要用到“检查点”,本文总结了常用三种协议下检查点的使用方法,希望阅读本文后的小伙伴们能够掌握其使用方法,并灵活应用在实际项目中。
1. HTTP协议
HTTP协议中检查点有两种:图片和文字。这两种检查点可用以下三个函数实现:web_find()、web_reg_find()和web_image_check(),下面介绍三种函数的使用方法。
1.1 web_find()函数
函数的作用是“在页面中查找相应的内容”,常用参数及含义如下:
web_find("web_find", //定义该查找函数的名称
"RightOf=a", //定义查找字符的右边界
"LeftOf=b", //定义查找字符的左边界
"What=name", //定义查找内容
LAST);
使用该函数注意以下事项:
- 位置
该函数在页面内容显示出来以后,在页面中进行查找,所以只能写在要查找内容之后
- 录制模式
该函数只能在基于HTML模式录制的脚本中进行查找
- 必须启用内容检查选项
在Runtime setting->Preferences里面,把Enable image and text check选中,否则不执行该查找函数
启用内容检查选项
- 在VB和JAVA语法中不支持该函数
该函数还有以下缺点:
- 执行效率较低
- 不返回查找结果情况,如果想在执行该函数后根据查找结果做进一步操作时,没有返回值可以依据。
- 例如:在页面中查找“登录成功”的字符串,如果找到该字符串在日志中输出“登录成功”,如果找不到该字符串,则在日志中输出“登录失败”,此时使用该函数没有依据来做此判断,但使用web_reg_find()函数,使用它其中的SaveCount可以进行判断,具体方法我们下面介绍。
1.2 web_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()
{
// Run the Web Tours sample
web_url("MercuryWebTours",
"URL=http://localhost/MercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
// Set up check for successful login by looking for "Welcome"
web_reg_find("Text=Welcome",
"SaveCount=Welcome_Count",
LAST);
// Now log in
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);
// Check result
if (atoi(lr_eval_string("{Welcome_Count}")) > 0)
//判断如果Welcome字符串出现次数大于0
{ lr_output_message("Log on successful."); }
//在日志中输出Log on successful
else
//如果出现次数小于等于0
{lr_error_message("Log on failed");}
//在日志中输出Log on failed
return(0);
}
1.3 web_image_check()函数
函数作用:在页面中查找一个具体的图片,常用参数及含义如下:
web_image_check("web_image_check", //函数标题
"Alt=", //图标说明
"Src=", //图片链接地址
LAST);
使用该函数注意以下事项:
- “Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值
- 该函数是在缓存中查找相应的内容,所以要放在查找内容之前
- 使用该函数时,同样需要在Vuser->Run-Tme Settings中勾选Enable Image and text check
下面是应用实例:
#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); return ;
}
LoadRunner执行后日志记录如下:
Action.c(): "web_image_check" succeeded ( occurrence(s) found. Alt="Google", Src="/intl/zh-CN/images/logo_cn.gif") [MsgId: MMSG-]Action.c(): web_image_check was successful [MsgId: MMSG-]
1.4 插入函数的方法
- 手工写入,在需要插入函数的位置手工写入该函数
- 光标停留在要插入函数的位置,在INSERT菜单中,选择New step,在列表中选择或查找要插入的函数,根据提示填写必要的参数
- 在Tree view模式下,在树状菜单中选中要插入函数的位置,右键,选择Insert after或Insert before,根据提示填写必要的参数
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() {
int sc=; lr_start_transaction("BIG1"); //建立socket链接 sc = lrs_create_socket("socket1","TCP","RemoteHost=192.168.85.247:26001",LrsLastArg); if (sc == ) lr_output_message("Socket was successfully created "); else lr_output_message("An error occurred while creating the socket, Error Code: %d", sc); //发送socket请求,接收socket返回结果 lrs_send("socket1", "buf0", LrsLastArg); lrs_receive("socket1", "buf1", LrsLastArg); //保存socket返回结果至参数Res_BIG1中 lrs_save_param_ex("socket1", "received", "buf1", , 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); } return ; }
实例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}"),"Hello World"))==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); } return ; }
2.1 小结
使用“检查点”,首先需要得到“返回结果”,将该返回结果保存至参数中
对返回结果进行判断,这里可能需要用到lr_eval_string(), atoi(), strstr()等函数
相关函数说明:
- lr_eval_string()函数作用是取得参数值,将字符串变量中的参数值替换为当前的参数值并将这个字符串返回
- atoi()函数的作用是将一个ASCII字符串转换为整型
- strstr()函数格式为strstr(str1,str2),其中str1: 被查找目标string expression to search,str2:要查找对象The string expression to find.该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL.
Loadrunner 11检查点使用方法总结的更多相关文章
- LoadRunner 11破解方法
名称:HP Loadrunner Software 11.00 版本号:11.00.0.0 安装环境:Win 7 软件安装成功后,会弹出提示告知license的有效期为10天. 破解方法: 1.下载破 ...
- LoadRunner 11破解方法:
LoadRunner 11破解方法: 请严格安装顺序操作! a.用LR8.0中的mlr5lprg.dll.lm70.dll覆盖LR11安装目录下“bin”文件夹中的对应文件: b.运行deleteli ...
- LoadRunner 11 安装及破解
LoadRunner 11 安装及破解 前提条件: 内存:2G,硬盘空闲空间10G,安装完成后实际只占不到2G 支持winXP SP3;32位与64位win7浏览器支持IE6-8,IE9,fir ...
- LoadRunner 11 安装及破解(转)
前提条件: 内存:2G,硬盘空闲空间10G,安装完成后实际只占不到2G 支持winXP SP3;32位与64位win7浏览器支持IE6-8,IE9,firefox3 若以前安装过LoadRunner ...
- HP LoadRunner 11 破解及license
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- LoadRunner 11.00安装篇(Win 10)
参考博文: https://blog.csdn.net/xianjie0318/article/details/78625980 https://www.cnblogs.com/VseYoung/p/ ...
- LoadRunner中文乱码问题解决方法
LoadRunner中文乱码问题解决方法 前段时间在录制,增强,整合LoadRunner脚本,期间两次遇到了中文乱码问题.在此记录一下中文乱码问题的解决办法. 一.录制回放中文乱码 我录制登陆的脚本, ...
- 启动loadrunner 11的controller提示试图执行系统不支持的操作(已解决)
启动loadrunner 11的controller提示试图执行系统不支持的操作 分类: loadrunner 2014-05-12 17:33 532人阅读 评论(0) 收藏 举报 win7旗舰版3 ...
- Effective Java 第三版——11. 重写equals方法时同时也要重写hashcode方法
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
随机推荐
- MVC[xml]页面传值
MVC 各种传值方式 ViewData传值.HomeController.cs Co de: public ActionResult Index(){ ViewData["Titl ...
- Ubuntu下pycharm设定任务栏图标后打开出现问号图标
事情是这样的: ubuntu16.04,安装好pycharm后,bin下只有一个sh执行文件,想要弄成任务栏图标,所以在/usr/share/applications下新建文件pycharm.desk ...
- Eclipse 导入Maven 项目报错
新建Maven项目时出错:org.apache.maven.archiver.MavenArchiver.getManifest 新建Maven项目时出错:org.apache.maven.arc ...
- react-native android 打包发布
react-native android 打包步骤 <一>.生成签名文件(应用身份证) 1.使用keytool命令 keytool -genkey -v -keystore my-r ...
- [2011-3-9 12:59 ]As3.0中的位图(Bitmap/BitmapData)用法
1.位图使用(模糊)滤镜 //创建一个矩形区域的BitmapData var bmd:BitmapData = new BitmapData(80, 30, false, 0xefefef); //画 ...
- Js 将 Date 转化为指定格式的String
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...
- SQL Server 2016 特性和安装方法
SQL Server 2016 特性: 全程加密技术(Always Encrypted),动态数据屏蔽(Dynamic Data Masking),JSON支持,多TempDB数据库文件,PolyBa ...
- 20145322《Java程序设计》第十周学习总结
20145322<Java程序设计>第十周学习总结 教材学习内容总结 网络概述 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或 ...
- 20145327 《Java程序设计》第五周学习总结
20145327 <Java程序设计>第五周学习总结 教材学习内容总结 try...catch:与C语言中程序流程和错误处理混在一起不同,Java中把正常流程放try块中,错误(异常)处理 ...
- 20144303 《Java程序设计》第一周学习总结
20144303 <Java程序设计>第一周学习总结 教材学习内容总结 下载.安装.调试了JDK. JavaSE是各语言个应用平台的基础,分为四个主要的部分:JVE,JRE,JDK,和ja ...