51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 30926|回复: 64
打印 上一主题 下一主题

[求助] loadrunner监控tomcat解决方案

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-6 16:09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用空闲的时间写了个监控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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-3-12 13:40:13 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-3-13 14:13:08 | 只看该作者
好帖子呀,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-3-26 21:46:00 | 只看该作者
好东西! 真希望拜你为师
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-3-27 10:15:54 | 只看该作者
好帖子,学习了!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2009-3-27 15:27:58 | 只看该作者
    好贴,严重支持。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-4-8 09:42:40 | 只看该作者
    你的脚本有个缺陷,就是输出的数字和从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.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-4-8 15:11:08 | 只看该作者
    正要实用,谢谢了!!学习学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-4-9 18:08:59 | 只看该作者
    ding
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-4-11 22:49:28 | 只看该作者
    我发现这个脚本不知道怎么搞的,长时间运行后,察看结果图,只有三个点,没有形成曲线.运行几分钟反而有曲线.
    请问怎么解决阿?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-4-14 14:48:29 | 只看该作者

    回复 11# 的帖子

    你把代码放到ACTION()里面去试下看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-4-21 15:30:08 | 只看该作者
    我就是按楼主说的第二种方法做的, 但是在脚本回放的时候出错了:

    vuser_init.c(31): Error -26630: HTTP Status-Code=401 (Unauthorized) for "http://192.168.(*).(*):8000/manager/status"          [MsgId: MERR-26630]
    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          [MsgId: MERR-26377]
    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          [MsgId: MERR-26377]
    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          [MsgId: MERR-26377]
    vuser_init.c(31): web_url("status") highest severity level was "ERROR", 954 body bytes, 296 header bytes          [MsgId: MMSG-26388]
    vuser_init.c(31): Notify: Transaction "monitor tomcat" ended with "Fail" status (Duration: 4.9891 Wasted Time: 0.0000).

    打不开tomcat的status页面, 但是可以手工输入admin , pass密码就可以进去, 不清楚这是为什么,希望帮忙能回答一下, 非常感谢了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-4-22 13:47:12 | 只看该作者
    谁知道这个问题怎么解决吗? 谢谢了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-5-17 22:56:28 | 只看该作者
    强人啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-5-29 16:08:15 | 只看该作者

    学习了

    学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-5-31 10:53:52 | 只看该作者
    思路挺好。如果要看jvm相关情况直接用jconsole好了,如果要看server status,直接用manager去看看即可。如果你非要tomcat的完整监控给大家推荐adventnet的 manageengine.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-6-26 12:23:13 | 只看该作者
    学习中!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-7-2 17:46:30 | 只看该作者
    不错 顶起来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-7-29 15:41:39 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2009-7-31 09:33:47 | 只看该作者
    好帖!!!!!!!!!!!1
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-2 09:22 , Processed in 0.091501 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表