loadrunner监控tomcat解决方案
利用空闲的时间写了个监控tomcat服务器的方法,一起沟通交流和学习!loadrunner监控tomcat:
第一种:
LR本身是不支持的!有两种方式可以集成!
1、自己写一个批处理程序去取tomcat的数据
2、使用sitescope去执行这个批处理,然后采集数据
3、使用LR与sitescope集成,然后读取数据
第二种:
1、通过LR去访问tomcat监控页
2、然后通过关联取监控数据
3、使用lr_user_data_point()添加数据到图表中去
关于第二种具体解决方案如下:(监控tomcat服务器:http://192.168.1.173:1203)
1、打开Tomcat的status页面,方法为编辑Tomcat的conf目录下的tomcat-users.xml文件,在文件中添加
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="pass" roles="admin,manager"/>
</tomcat-users>
2、开发lr脚本
vuser_init()
{
//定义tomcat内存使用情况的监视器事务;
lr_start_transaction("monitor tomcat");
//保存3个参数;
web_reg_save_param("JVMFreeMemory",
"LB=Free memory: ",
"RB= MB",
"Ord=1",
LAST);
web_reg_save_param("JVMTotalMemory",
"LB=Total memory: ",
"RB= MB",
"Ord=1",
LAST);
web_reg_save_param("JVMMaxMemory",
"LB=Max memory: ",
"RB= MB",
"Ord=1",
LAST);
//通过LR去访问tomcat监控页
web_set_user("admin","pass","192.168.1.173:1203");
web_url("status",
"URL=http://192.168.1.173:1203/manager/status",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
lr_end_transaction("monitor tomcat", LR_AUTO);
// Tomcat JVM metrics使用lr_user_data_point()添加数据到图表中去
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}")));
return 0;
}
运行脚本后,在脚本日志显示效果图如下:(附件)
运行场景后,在analysis显示的效果图如下:(附件)
[ 本帖最后由 zhsh1203 于 2009-3-8 20:01 编辑 ] :victory: 好帖子呀,谢谢! 好东西! 真希望拜你为师 好帖子,学习了! 好贴,严重支持。 你的脚本有个缺陷,就是输出的数字和从tomcat页面读取的不一样。
vuser_init.c(43): Notify: Parameter Substitution: parameter "JVMFreeMemory" ="75.89"
vuser_init.c(43): Notify: Data Point "Tomcat JVM Free memory" value = 1309672.0000.
vuser_init.c(44): Notify: Parameter Substitution: parameter "JVMTotalMemory" ="87.12"
vuser_init.c(44): Notify: Data Point "Tomcat JVM Total memory" value = 1309672.0000.
vuser_init.c(45): Notify: Parameter Substitution: parameter "JVMMaxMemory" ="1888.00"
vuser_init.c(45): Notify: Data Point "Tomcat JVM Max memory" value = 1309672.0000.
那是因为atof函数转换成double时数值都变了样,需要显示定义下,在"vuser_init(){"这句话的
代码前面加上
double atof (const char *string);就ok了。
下面是正确的日志
vuser_init.c(43): Notify: Parameter Substitution: parameter "JVMFreeMemory" ="76.08"
vuser_init.c(43): Notify: Data Point "Tomcat JVM Free memory" value = 76.0800.
vuser_init.c(44): Notify: Parameter Substitution: parameter "JVMTotalMemory" ="87.31"
vuser_init.c(44): Notify: Data Point "Tomcat JVM Total memory" value = 87.3100.
vuser_init.c(45): Notify: Parameter Substitution: parameter "JVMMaxMemory" ="1888.00"
vuser_init.c(45): Notify: Data Point "Tomcat JVM Max memory" value = 1888.0000. 正要实用,谢谢了!!学习学习 ding:victory: :victory: :victory: 我发现这个脚本不知道怎么搞的,长时间运行后,察看结果图,只有三个点,没有形成曲线.运行几分钟反而有曲线.
请问怎么解决阿?
回复 11# 的帖子
你把代码放到ACTION()里面去试下看看 我就是按楼主说的第二种方法做的, 但是在脚本回放的时候出错了:vuser_init.c(31): Error -26630: HTTP Status-Code=401 (Unauthorized) for "http://192.168.(*).(*):8000/manager/status"
vuser_init.c(31): Error -26377: No match found for the requested parameter "JVMFreeMemory". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size
vuser_init.c(31): Error -26377: No match found for the requested parameter "JVMTotalMemory". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size
vuser_init.c(31): Error -26377: No match found for the requested parameter "JVMMaxMemory". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size
vuser_init.c(31): web_url("status") highest severity level was "ERROR", 954 body bytes, 296 header bytes
vuser_init.c(31): Notify: Transaction "monitor tomcat" ended with "Fail" status (Duration: 4.9891 Wasted Time: 0.0000).
打不开tomcat的status页面, 但是可以手工输入admin , pass密码就可以进去, 不清楚这是为什么,希望帮忙能回答一下, 非常感谢了! 谁知道这个问题怎么解决吗? 谢谢了! 强人啊