需求背景:流量投诉助手进行压力测试,20个并发,持续10小时,查看系统的稳定性
工具:jmeter+badboy+jconsole
利用badboy录制脚本,在jmeter中进行并发,利用jconsole监控jvm
步骤:
1:设计测试场景
场景1:用户打开流量投诉助手智能分析页面,输入手机号码,选择时间段:2013-09-01~2013-09-30,点击查询
场景2:用户打开流量投诉助手详单查询页面,输入手机号码,选择时间段:2013-09-01~2013-09-30,点击查询
具体操作步骤如下:
2、打开badboy(官网下载:http://www.badboy.com.au/),我下载的版本是2.2_beta_1。
界面如下:
录制好脚本后,这里选择保存为jmeter脚本,因为我需要借助jmeter进行压力测试,操作如下:点击【File】,选择【Export to Jmeter】,脚本录制好了。
3、打开jmeter进行并发数等相关配置。
打开jmeter(官网下载:http://jmeter.apache.org/),需要注意的是首先要安装jdk,我下载的版本是apache-jmeter-2.9。
无需安装,直接解压即可。进入apache-jmeter-2.9\bin 目录,找到"jmeter.bat"脚本,运行就可以启动jmeter。
这里我们选择【文件】菜单,打开刚才录制的badboy脚本,然后添加线程组(选择测试计划,右键选择Thread,选择线程组)。
线程属性配置如下:线程数:50,Ramp-Up-Period:10,循环次数:永远
调度器配置如下:启动时间:2010/08/07 06:03:31 结束时间:2010/08/07 06:03:31 持续时间:36000
监听器配置如下(选择线程组,右键选择监听器,添加相应的监听):添加查看结果树、用表格查看结果、图形结果 3个监听器
4、jconsole配置监控。
我这里的应用服务器用的是 apache-tomcat-7.0.40 ,如果需要通过远程启动jconsole来监控jvm,则首先需要在tomcat中进行配置。
找到 /home/bigdata/apache-tomcat-7.0.40/bin 目录,修改catalina.sh 文件(window则修改 catalina.bat ),添加如下代码:
代码:
if [ "$1" = "start" ]; then
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=10.154.15.118 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9004" -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
fi
这段代码的大概意思是:添加远程访问10.154.15.118的服务,指定端口9004,authenticate=false ssl=false 这两句说明不需要验证就允许访问。
我在tomcat7中没有找到(if [ "$1" = "start" )关键字,所以是自己添加的,与tomcat6 等其他版本有些不一样。
重新启动tomcat,则jmx服务会被启动,这样就可以通过远程启动jconsole ,来监控jvm了。
检查linux上9004端口有没有启动:
[bigdata@tbe010154145118 bin]$ lsof -i:9004
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 11308 bigdata 16u IPv6 953031145 0t0 TCP *:9004 (LISTEN)
说明9004端口启动了。
5、远程启动jconsole
本地win8系统,打开命令窗口,cmd,输入jconsole命令
不需要输入用户名和密码,因为我在tomcat中设置的就是不需要验证,直接点击【连接】,就可以监控jvm了。
一切准备就绪,在jmeter中启动压力测试脚本,观察监听器以及jconsole中内存等相关指标的运行情况吧。