实现原理很简单,就是利用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不是万能的,但可以通过改造上面脚本,扩大监控范围,实现更多的可能。
还是那句:思想最重要 !