loadrunner监测服务器获取服务器返回的值,并作为下一个请求的参数

loadrunner关联及web_reg_save_param方法浅析 - dfine.sqa - 博客园
一、什么是关联
关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。例如:1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID
二、web_reg_save_param函数说明
int web_reg_save_param(const char *ParamName, &list of Attributes&, LAST);
& ParamName: 存放得到的动态内容的参数名称
& list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
o Notfound: 当在返回信息中找不到要找的内容时应该怎么处理
o Notfound=error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。
o Notfound=warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。
o LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
o RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。
o RelFrameID: 相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。
o Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
o ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。
o SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。
o SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。
三、实例解析
如图所示,不输入查询条件,直接点击【查询】按钮。生成的数据提交脚本如下:
该value值为请求的数据总数,该值是动态变化的。为了正确的发送请求并得到正确的结果,需要对该值进行关联。
在Generation Log中搜索&totalItem&,如图所示,从而可以确定该value值的左右边界。
在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用{count}来替代录制时实际的值。如下图:
打开扩展日志,运行脚本,可以看到正确的关联出了结果。
上面实例是使用web_reg_save_param的ORD=1,只是取第1次出现的左边界子串的匹配项为需要的内容,下面例子使用web_reg_save_param的ORD=ALL,将匹配到的内容保存到数组中。
根据消息列表中的记录数来进行关联(只是为了演示,分页不考虑),跟踪Generation Log可以看到,一条记录的内容会包含5列内容。如下图:
从上图中可以确定其左右边界,在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用arrSize/5来替代录制时实际的值。如下图:
其中lr_paramarr_len方法用于取出数字长度,lr_paramarr_idx方法用于取数组指定下标的值。打开扩展日志,运行脚本,可以看到正确的关联出了结果。【LoadRunner】查看脚本请求日志和服务器返回值方法 - CSDN博客
【LoadRunner】查看脚本请求日志和服务器返回值方法
【LoadRunner】查看脚本请求日志和服务器返回值方法
1、& 查看所有请求日志和请求响应信息:
采用LoadRunner工具Run-time settings或按键盘F4,选择LOG设置,选择Extended log-&Data returned by server和Parameter substitution,就可以搞定,但是这里设置是记录所有请求的日志。
详细介绍Extended log中Data returned by server、Parameter substitution、Advanced trace的作用:
(1)、选择Data returned by server,记录或打印指定给脚本的所有参数及其相应的值
(2)、选择Parameter substitution,记录或打印服务器返回的所有数据
(3)、选择Advanced trace(高级跟踪),记录Vuser在会话期间发送的所有函数和消息
2、& 查看某个请求日志和请求响应信息:
采用lr_set_debug_message()函数,可以单独记录某个请求或某行脚本回放的日志,函数具体详情如下:
int &lr_set_debug_message (unsigned int message_level, unsigned int on_off);
解释:lr_set_debug_message函数是设置脚本在执行的调试消息级别message_level。通过设置消息级别,可以确定记录哪些信息。启动设置的方法是将LR_SWITCH_ON作为on_off传递,反之禁用设置的方法是LR_SWITCH_OFF作为on_off传递,以下为lr_set_debug_message()函数中对应的参数值:
&C语言标志
&Runtime-setting - Log操作
&LR_MSG_CLASS_DISABLE_LOG
&不勾选Enable logging
&LR_MSG_CLASS_BRIEF_LOG
&勾选Standard log
&Extended Log
&LR_MSG_CLASS_EXTENDED_LOG
&勾选Extended log
&Result Data
&LR_MSG_CLASS_RESULT_DATA
&勾选Data returned by server
&Parameter Substitution
&LR_MSG_CLASS_PARAMETERS
&勾选Parameter substitution
&Full Run-Time Trace
&LR_MSG_CLASS_FULL_TRACE
&勾选 Advanced trace
&Only on error
&LR_MSG_CLASS_JIT_LOG_ON_ERROR
&勾选send messages only when an error occurs
参数on_off说明:
【LR_SWITCH_ON】为启用设置,对应值为:
【LR_SWITCH_OFF】为禁用设置,对应值为:0
案例(回放脚本过程中,记录或打印该请求脚本从服务器返回的所有数据):
lr_set_debug_message( 16 | 2,1 );
&&&& web_submit_data(&loginAction&,
&&&&&&&& &Action=http://{IP}/TLTP/loginAction&,
&&&& &&&& &Method=POST&,
&&&&&&&& &RecContentType=text/html&,
&&&&&&&& &Referer=http://{IP}/TLTP/&,
&&&&&&&& &Snapshot=t9.inf&,
&&&&&&&& &Mode=HTTP&,
&&&&&&&& ITEMDATA,
&&&&&&&& &Name=userName&, &Value=test&, ENDITEM,
&&&&&&&& &Name=password&, &Value=123456&, ENDITEM,
&&&&&&&& LAST);
lr_set_debug_message( 16 | 2,0 );
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_ON );
&&&& web_submit_data(&loginAction&,
&&&&&&&& &Action=http://{IP}/TLTP/loginAction&,
&&&&&&&& &Method=POST&,
&&&&&&&& &RecContentType=text/html&,
&&&&&&&& &Referer=http://{IP}/TLTP/&,
&&&&&&&& &Snapshot=t9.inf&,
&&&&&&&& &Mode=HTTP&,
&&&&&&&& ITEMDATA,
&&&&&&&& &Name=userName&, &Value=test&, ENDITEM,
&&&&&&&& &Name=password&, &Value=123456&, ENDITEM,
&&&&&&&& LAST);
lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_OFF);
以上两种案例方法,结果一致,只是一种采用对应日志级别的值,一种采用对应日志级别的参数名标示。。。。
本文已收录于以下专栏:
相关文章推荐
转载于:http://www.blogjava.net/qileilove/archive//405884.html
 1、  查看所有请求日志和请求响应信息:
  采用L...
1. 响应时间
事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面事务可以用来统计用户操作的响应时间,事务响应时间是通过记录用户请求的开始...
之前用LoadRunner调试返回结果检查时,遇到了一个有趣的问题,在此分享出来,以后用到的同学参考下,少走几步弯路~
脚本逻辑是这样的:
1、 用web_reg_save_param函数...
转自:.cn/tags/html_ref_httpmessages.asp
当浏览器从 web 服务器请求服务时,可能会发生错误。
c程序调用shell脚本, shell脚本中执行Linux命令。相当于shell做字符串处理后,结果返回给C程序。
这个参数所设置的回调函数原型是这样的:size_t
function( char *ptr, size_t size, size_t nmemb, void *userdata).
这个回调函数被调...
本人所使用软件
分析请求信息以知乎()为例,模拟登陆请求,获取登陆后首页,首先就是分析请求信息。用UC浏览器F12,...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【原创】Loadrunner使用json格式请求数据并参数化
请求自定义的http文件用函数:web_custom_request
&这个函数。
因为Json使用{}进行配对,但是Loadrunner使用{}进行参数化,存在冲突。
所以先修改Tools---General
Options---Parameterization--Parameter
Braces,左右边界改为尖括号&&
然后在编写相关代码,以下仅供参考
web_reg_find("Text=result\":0",LAST);//检查点
lr_start_transaction("库存同步");
web_custom_request("request",//请求名称
"Method=POST",//请求的方法
"URL=http://10.100.5.12:8110/IInterface_OSStock.svc/SingleSkuStock",//请求地址
"RecContentType=application/json",
//指定相应头的Content-Type,这里是JSON
"EncType=application/json",
//指定请求头的Content-Type,这里也是JSON
"Mode=HTML",
//BODY的内容
LAST); & &
lr_end_transaction("库存同步", LR_AUTO);
lr_think_time(1);
参考:.cn/s/blog_86dceo9.html
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 loadrunner服务器监控 的文章

 

随机推荐