第三方插件的安装与使用
- 准备工作: 1.最新版本的JMeter是默认不展示插件管理器的,所以我们需要手动添加插件管理器 2.下载地址:https://jmeter-plugins.org/install/Install/,下载插件plugins-manager.jar,然后将jar包放在apache-jmeter-x.x.x\lib\ext路径下,重新打开jmeter客户端即可在“选项”下面可以看到了Plugins-Manager这个插件了。
Concurrency Thread Group(阶梯式加压)
安装Basic Graphs
- 在选项–》Plugins-Manager–》Available Plugins 安装
Custom Thread Groups
,然后点击应用并重启jmeter,如下图:
使用方式:
- 添加方式:测试计划 --> 线程组–>bzm-Concurrency Thread Group 比如我们需要进行服务器进行负载测试,需要测试1分钟,30秒内以6个阶梯的方式并发到20进程,那么我们可以如下设置: 假如我们不需要阶梯式增加,而是持续增加的方式,那么我们可以如下设置:
Basic Graphs (响应时间,并发数,TPS生成图表)
安装Basic Graphs
- 在选项–》Plugins-Manager–》Available Plugins 安装
3Basic Graphs
,如下图:
案例示例:
案例:比如我们需要进行服务器进行负载测试,需要测试1分钟,30秒内以持续并发到20进程,我们分别以Transactions per Second,Active Threads Over Time,Response Times Over Time这3个监听器来示例:
Transactions per Second:(每秒事务处理率/TPS):
- 添加方式:测试计划 -->监听器–>jp@gc - Transactions per Second
- 图表分析: 这里我们可以看到,每秒最大事务数为100,最小为0,一般Transactions per Second图表是配合事务控制器一起使用的
Active Threads Over Time:(每秒活动线程变化):
- 添加方式:测试计划 -->监听器–>jp@gc - Active Threads Over Time
- 图表分析: 通过上图我们可以看到前30s是持续上升到每秒20并发,后续30秒一直是以每秒20并发的状态持续
Response Times Over Time:(每秒响应时间):
- 添加方式:测试计划 -->监听器–>jp@gc - Response Times Over Time
- 图表分析: 从上图我们可以看到,每秒响应时间基本稳定总体事务响应时间在220毫秒左右
Composite Timeline Graph (将所有的图表合并)
安装Composite Timeline Graph
- 在选项–》Plugins-Manager–》Available Plugins 安装
Composite Timeline Graph
,如下图:使用方式: - 添加方式:测试计划 --> 监听器–>jp@gc - jp@gc - Composite Graph 然后我们添加多个第三方监听器Response Times Over Time,Active Threads Over Time,PerfMon等第三方监听器,然后添加 jp@gc - Composite Graph,最后运行,运行完成之后我们需要在 jp@gc - Composite Graph监听器的Graphs模块下选择要合并查看的数据即可,如下图所示: 最后我们只需要在Chart模块下查看图表并分析即可,这里要注意的一点是上图事务的tps和事务的响应时间图表颜色是一样的,因为它是直接获取其他监听器的数据的,这其中就包括线条的颜色,所以我们只需在Chart模块双击颜色框即可自动更换颜色,方便我们查看数据,如下图所示:
PerfMon (服务器资源使用率生成图表)
安装PerfMon
- 在选项–》Plugins-Manager–》Available Plugins 安装
PerfMon
,如下图:服务器上启动Serveragent服务 - perfmon的使用还需要一个serveragent服务的支持,下载jmeter插件的同时也需要下载一个Serveragent,下载地址:https://github.com/undera/perfmon-agent/blob/master/README.md
- windows下启动startagent.bat,如下图:
- 假如正常启动的话应该如下图所示:
- Linux下启动startagent.sh,需要先下载1.8jer,选择Server JRE (Java SE Runtime Environment) 8u202,然后根据安装运行的系统进行选择,这里我们选择jre-8u201-linux-x64.tar.gz进行下载解压,解压完成后我们将其复制到ServerAgent-x.x.x文件夹下,如下图所示: 然后我们将startAgent.sh用vim编辑模式打开,把
java
替换为jre1.8.0 _201\bin\java
如下图所示: 然后我们使用命令./startAgent.sh
启动服务即可,启动成功应该如下图所示:
使用方式:
- 添加方式:测试计划 --> 监听器–>jp@gc - PerfMon Metrics Collector
- 假如我们需要查看服务器内存与cpu使用的资源,我们可以这样设置,先填写服务器的地址和端口号,然后再选择性能指标,假如需要对单个进程测试资源消耗则可在Metric parameter中进行设置,总体配置如下图所示: 然后并发10个进程运行20s,运行结果如下图所示: 生成图表之后我们可以在右键保存为csv文件,这样我们可以获得更详细的数据(如下图):
关于性能指标
- CPU:- 1.对于各指标项,数值都是代表百分比,比如默认配置(combined)下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。- 2.有两点比较有用的地方值得说明:一是在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。
- Memory:- 1.各指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应想,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。- 2.同样,也可以选择监控指定进程的数据。
- Network I/O:- 1.单位kbps
- Disk I/O:- 1.各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes顾名思义,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合观察运行中遇到的问题:
- Windows提示
socket write error
或startAgent.bat闪退 启动成功后,使用jmeter时运行时报错java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_311] at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[?:1.8.0_311] at java.net.SocketOutputStream.write(Unknown Source) ~[?:1.8.0_311]
或startAgent.bat闪退 查看hs_err_pidxxxx.log错误日志与下图一样: 出现这种情况请尝试下载1.8_jer解决 1.下载1.8jer,选择Server JRE (Java SE Runtime Environment) 8u202,然后根据安装运行的系统进行选择 2.解压缩文件,并将jdk1.8.0_202目录下的jrew文件复制到ServerAgent-x.x.x文件夹下如图: 3.然后编辑startAgent.bat文件,并将文本内java的替换成当前目录下jre\bin\java.exe,如下图: 然后重新运行即可 - 提示
ERROR: java.io.IOException: Agent is unreachable via TCP
出现这种提示极有可能是端口被占用了,因为启动startAgent是使用默认端口4444,此时请查看端口444是否被占用,假如端口被占用那么使用参数--tcp-port 端口
来启动startAgent.bat或者startAgent.sh,比如将端口号4444修改为4445 windows 示例startAgent.bat --tcp-port 4445
linux 示例./startAgent.sh --tcp-port 4445
- 远端连接服务器时提示
java.net.ConnectException: Connection timed out: connect
出现以上提示极大概率是防火墙没有关闭,请尝试关闭防火墙之后重试
版权归原作者 达文西先生 所有, 如有侵权,请联系我们删除。