最近完成了jmeter linux资源监控器的开发,方法并不怎么高明,但相信可以帮助很多用jmeter来做性能测试的同仁解决jmeter缺少linux资源监控的问题
附件中是编译好的包以及linux上所用的脚本。基本的原理是利用shell脚本生成资源xml,让jmeter利用http请求获取该xml,解析展现数据。
欢迎各位同仁测试使用,有问题也可以与我交流。
监控器实现的是linux系统上的资源监控,要求:服务器上至少有一个web server(因需要通过http请求获取资源xml),用于生成服务器资源xml的脚本中使用了sysstat包中的指令,所以需要安装sysstat包。
使用方法:
下载:
LinuxResourcesMonitor.rar
(2008-08-01 20:56:32, Size: 756 kB, Downloads: 0)
首先解开压缩包,取出status脚本,登录到被监控的服务器上,将status脚本放上去。该脚本执行时会在所在路径生成status.xml文件,可以直接将status脚本放在web server的目录下,也可以用软链接来链到status.xml文件。下面介绍在基于apache的web server上的配置方法:
在apache的配置文件httpd.conf中找到DocumentRoot,一般默认是apache目录下的htdocs,将status脚本放到该目录下;
更改执行权限:
chmod 744 status
启动该脚本:
./status start
启动起来之后就会在当前目录下产生status.xml文件
不需要监控时,停止该脚本:
./status stop
然后到运行jmeter的机器上,解开压缩包里的ext.rar包,将解压得到的两个jar包:ApacheJMeter_core.jar和ApacheJMeter_monitors.jar,复制到jmeter的lib/ext目录下,覆盖原来的jar包。
之后就可以到jmeter上来监控了:打开jmeter,建立一个线程组,添加一个http请求,ip就是要监控的服务器地址,端口号就是apache侦听的http端口,协议是“http”,路径是“/status.xml”,勾选“用作监视器”;
http request.JPG
再为该http请求添加一个“固定定时器”组件和一个“监视器结果”组件,“固定定时器”的延时要设置为大于1秒的时间,即数据的采样时间。
timer.JPG
在线程组中循环次数设置勾选“永远”;
thread group.JPG
Run一下,就可以在监视器结果上看到刚刚添加的监控服务器了,目前已经监控了6个参数:cpu%user,cpu%iowait,load,mem%(used/total),swap in,swap out。
monitor.JPG
如果被监控的linux上没有安装sysstat包,是无法正常生成监控数据的,这里附上sysstat包的安装方法:
首先到http://perso.wanadoo.fr/sebastien.godard/下载最新的版本,最好是源码包,比如sysstat-5.1.1.tar.gz
1.解包:
tar zxvf sysstat-5.1.1.tar.gz
2.安装:
cd sysstat-5.1.1
make config
这步可以省略,有些发行版中会出错;如果不用这个命令,可以直接安装到其默认的/usr/local/lib目录中
make
编译
make install
安装
这样就安装好了。
本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/