性能测试时,我们的关注点有两部分
1 服务本身:并发 响应时间 QPS
2 服务器的资源使用情况:cpu memory I/O disk等
JMeter的plugins插件可以实现对"二"的监控,具体操作步骤如下(主要记录我的实践过程):
说明:我的jmeter版本是2.13
一 下载插件
1 访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件。其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。
2 解压客户端的两个文件,进入其路径JMeterPlugins-Extras(Standard)-1.3.1\lib\ext,复制JmeterPlugins-Extras.jar(JmeterPlugins-Standard.jar)两个文件,放到JMeter客户端的lib/ext文件夹中,打开JMeter,可在监听器中看到Permon Metrics Collector,客户端配置成功。
3 将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认使用4444端口,出现如下情况即服务端成功:
二 测试使用情况
1 ServerAgent启动的校验
a 在笔记本电脑打开telnet监听(控制面板-程序-打开或关闭Windows功能-telnet客户端勾选打开)
b cmd进入命令框,输入如下内容:
telnet yourip 4444 #连接ServerAgent test #发送test进行测试 exit #退出,即断开连接
c 观察server端是否有接收到消息,出现如下情况说明ServerAgent打开成功
[root@bjdhj-120-215 ~]# /opt/soft/ServerAgent-2.2.1/startAgent.sh INFO 2016-02-18 10:52:51.749 [kg.apc.p] (): Binding UDP to 4444 INFO 2016-02-18 10:52:52.749 [kg.apc.p] (): Binding TCP to 4444 INFO 2016-02-18 10:52:52.754 [kg.apc.p] (): JP@GC Agent v2.2.0 started INFO 2016-02-18 10:56:55.198 [kg.apc.p] (): Accepting new TCP connection #成功连接 INFO 2016-02-18 10:57:00.830 [kg.apc.p] (): Yep, we received the 'test' command #接收到test消息 INFO 2016-02-18 10:57:05.185 [kg.apc.p] (): Client disconnected #断开连接
2 Jmeter客户端的监听测试
a 打开JMeter.bat,添加监听器Permon Metrics Collector-Add Row添加一行monitor配置(修改Host/IP为测试IP)-运行-观察server日志即chart图标内容。
ServerAgent端的日志: INFO 2016-02-18 11:02:14.197 [kg.apc.p] (): Accepting new TCP connection INFO 2016-02-18 11:02:14.243 [kg.apc.p] (): Yep, we received the 'test' command INFO 2016-02-18 11:02:14.246 [kg.apc.p] (): Starting measures: cpu: INFO 2016-02-18 11:02:14.402 [kg.apc.p] (): Client disconnected
b 运行jmeter时,成功连接然后立刻断开了,并没有获取我们想要的数据。猜想需要一个时间控制的元器件,使其能够获取一段时间的数据。
i 步骤:添加线程组(不添加发送请求),设置循环次数为永远,点击运行。
结果:成功连接然后立刻断开
ii 添加线程组,设置循环次数为"用玄";为线程组任意添加一个Sampler(并不设置参数);添加一个PerfMon Metrics Collector监听器;点击运行。
结果:成功获取chart图,点击stop,即结束监听数据。全部配置图如下
常用组件简单介绍:
(1)jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表)
聚合报告里,Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表
(2)jp@gc - Composite Graph: 混合图表
在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表
(3)jp@gc - Hits per Second:每秒点击量
(4)jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等
(5)jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间
(6)jp@gc - Reponse Times Distribution: 显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数
(7)jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数