LoadRunner函数lr_user_data_point的使用方法

实现原理很简单,就是利用web_reg_save_param函数定时抓取页面变值,然后用lr_user_data_point函数保存每次抓取的值,最后在结果分析页面以图表形式展现出来:

以Tomcat为例,LoadRunner没有针对Tomcat单独做监控组件,如果想监控Tomcat,可以按照以下方法通过写脚本的方式实现监控:

1、按照附图进入Tomcat自带监控页面(例如本机是http://localhost/manager/status)。进入该页面时会有一个页面弹出提示框,输入默认密码admin/admin就好了,后面脚本中也需要对这个提示框进行处理。图中红色圈圈里面的内容就是在脚本中需要抓取的内容。

2、开VUGen,按照下面内容写入脚本:

 

double atof (const char *string);

//定义atof的格式,否则后面转化格式时会有问题

Action()

{

lr_think_time (3);

//脚本循环需要思考时间,不设置思考时间脚本执行太快了

lr_start_transaction(“monitor tomcat”);

web_reg_save_param(“JVMFreeMemory”,”LB=Free memory: “,”RB= MB”,LAST);

web_reg_save_param(“JVMTotalMemory”,”LB=Total memory: “,”RB= MB”,LAST);

web_reg_save_param(“JVMMaxMemory”,”LB=Max memory: “,”RB= MB”,LAST);

//为页面值截取做准备

web_set_user(“admin”, “admin”, “localhost:80”);

//处理进入tomcat页面时浏览器弹出输入账号和密码的输入框,端口自定义

web_url(“Status”,

“URL=http://localhost/manager/status”,

“Resource=0”,

“RecContentType=text/html”,

“Referer=”,

“Snapshot=t1.inf”,

“Mode=HTML”,

LAST);

//自定义访问页内容,url地址自定义

lr_end_transaction(“monitor tomcat”, LR_AUTO);

 

//lr_error_message(“%s”,lr_eval_string (“{JVMFreeMemory}”));

//lr_error_message(“%s”,lr_eval_string (“{JVMTotalMemory}”));

//lr_error_message(“%s”,lr_eval_string (“{JVMMaxMemory}”));

//上面三个是调试信息,没用。

lr_user_data_point(“Tomcat JVM Free memory”, atof(lr_eval_string (“{JVMFreeMemory}”)));

lr_user_data_point(“Tomcat JVM Total memory”, atof(lr_eval_string(“{JVMTotalMemory}”)));

lr_user_data_point(“Tomcat JVM Max memory”,   atof(lr_eval_string(“{JVMMaxMemory}”)));

//上面三条语句实现抓取每次执行时候的web_reg_save_param值。

return 0;

}

 

3、运行一遍脚本,如果没有错误,会有类似下面提示:

Action.c(23): Notify: Transaction “monitor tomcat” ended with “Pass” status (Duration: 0.8480 Wasted Time: 0.0009).

Action.c(28): Notify: Data Point “Tomcat JVM Free memory” value = 1.0600.

Action.c(29): Notify: Data Point “Tomcat JVM Total memory” value = 6.1700.

Action.c(30): Notify: Data Point “Tomcat JVM Max memory” value = 63.5600.

 

4、在场景里面开始执行,最后执行结果就有图片里看到的Data Point了。

 

很多软件都有自己的监控页面,LR不是万能的,但可以通过改造上面脚本,扩大监控范围,实现更多的可能。

还是那句:思想最重要 !