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 0;}
LoadRunner执行后日志记录如下:
Action.c(20): "web_image_check" succeeded (1 occurrence(s) found. Alt="Google", Src="/intl/zh-CN/images/logo_cn.gif") [MsgId: MMSG-27192]Action.c(20): web_image_check was successful [MsgId: MMSG-26392]
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=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("Socket was successfully created ");elselr_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", 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);}return 0;}
实例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 0;}
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.
转载于:https://www.cnblogs.com/lovesoo/p/7727042.html
Loadrunner 11检查点使用方法总结相关推荐
- LoadRunner设置检查点的几种方法介绍
LoadRunner设置检查点的几种方法介绍 发布时间: 2011-5-03 11:53 作者: 一米阳光做测试 来源: 51Testing软件测试网采编 字体: 小 中 大 | ...
- 【Loadrunner】性能测试《HP LoadRunner 11》[光盘镜像]迅雷下载及破解方法
LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.通过使用 LoadR ...
- LoadRunner 11安装和使用
http://note.youdao.com/noteshare?id=341c03233eb74adfb1b6b1bc131c279d&sub=577EC1D1A58544AB8927DBB ...
- #error “OpenCV 4.x+ requires enabled C++11 support“解决方法
#error "OpenCV 4.x+ requires enabled C++11 support"解决方法 参考文章: (1)#error "OpenCV 4.x+ ...
- HP LoadRunner 11.00 新鲜尝
HP LoadRunner 11.00版本发布不久,安装包足有4G.笔者紧急下载并迅速尝鲜,详细过程记录与你共享: [第一印象最佳的改动点是"支持 Windows Server 2008 . ...
- LoadRunner 11 error:Cannot initialize driver dll
LoadRunner 11 error:Cannot initialize driver dll $|/}C5t9vBL&Nh0 2{jT%aL0今天有个网友问我这个问题,我也没碰到过,特意去 ...
- 安装LoadRunner 11时弹窗提示Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误。键入命令 / ? 可获得帮助信息'。
如果安装LoadRunner 11时弹窗提示"Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误.键入命令 / ? 可获得帮助信息'&q ...
- 苹果无线耳机使用方法_苹果手机11新手使用方法
展开全部 苹果手机11新手使用方法2113: 1.face id相关设置52612113 设置-面容id与密码,找到"注释以5261启用面4102容解锁" face id在使410 ...
- mysql8.0安装设置密码_mysql8.0.11安装配置方法图文教程 MySQL8.0新密码认证方式
本文为大家分享了mysql8.0.11安装配置方法图文教程.MySQL8.0新密码认证方式,供大家参考,具体内容如下 1.前言 Oracle已经发布了MySQL8.0GA,GA在外国就是release ...
- LoadRunner 11压测时碰到错误Error: missing newline in E:\xx\RCV.dat
HP LoadRunner 11 压力测试工具 脚本录制ok后进行加压测试, 报错信息 : Error: missing newline in E:\LR_test\RCV Transactions ...
最新文章
- Flutter专题1-环境搭建
- Python计算训练数据集(测试集)中某个分类变量阴性(阳性)标签样本的不同水平(level)或者分类值的统计个数以及比例
- jQuery Ajax调用后如何管理重定向请求
- tensorflow从入门到精通100讲(七)-TensorFlow房价预估使用Keras快速构建模型
- RTMP在NGINX的启动
- POJ 2342 (树形DP)
- python flagin flagout_Python 进阶之路 (十) 再立Flag, 社区最全的itertools深度解析(中)...
- [恢]hdu 1040
- kaike的FLAGs
- 跨栏表格位置跑到了下一页_LaTeX双栏模板插入通栏公式(跨栏插图)
- Java中涉及线程和并发相关的内容
- c语言 long double输出,printf和long double
- 正大国际期货:水泥价格罕见急跌!两个月跌超100元/吨 会不会影响房价?
- MAC设置L2TP连接公司内部网络
- Vue 6. 列表渲染
- FP7195转模拟恒流调光芯片在机器视觉光源的应用优势
- 苹果6如何截屏_苹果商量里需要花6元,才能买到的游戏:论如何建立一个修仙门派,到底好不好玩...
- 学生党如何选择好的蓝牙耳机呢?蓝牙耳机高性价比点评
- 百度网盘的探险:云存储如何逃离“德鲁克”困境
- 百度排名批量查询_一篇讲透百度霸屏引流细节思路与操作玩法
热门文章
- SpringCloud-Zuul(二):自定义Filter及内部路由源码解析
- 技术解读Rainbond ServiceMesh微服务架构_开源PaaS Rainbond
- 彻底剖析C# 2.0泛型类的创建和使用
- Linux下squid代理缓存服务环境部署
- JavaScript中JSON的处理心得
- 使用telnet登录varnish3.x管理缓存时认证问题
- 关于iptables配置的心得
- IBM 100年 科技引导未来
- mysql 数据库隔离级别_彻底搞懂mysql数据库四种隔离级别,实验实战
- 数组中每个元素都出现了两次,但是其中一个元素只出现了一次,求出此元素