行业资讯
正厚软件-性能测试系列之使用JMeter进行性能测试
2019-05-24

一、配置Jmeter

1、设计性能测试的并发数、持续运行时间、单个线程的运行次数。

2、配置与请求相关的信息。

3、当需要进行1k以上的请求次数时,查看结果树需要勾选仅日志错误。

 

二、配置Jmeter的监控插件

1、下载JMeterPlugins-Standard-1.4.0

2、解压JMeterPlugins-Standard-1.4.0,将其中\lib\ext\JMeterPlugins-Standard.jar包复制到jmeter安装目录下的\lib\ext下。

3、重启Jmeter,选择监听器,这时我们可以看到多了一些监听器,选择jp@gc-PerMon Metrics Collector。

4、配置jp@gc-PerMon Metrics Collector。

注:1)为了Y轴的单位为百分比,故在Network I/O的Metric parameter中设置值为unit=mb:bytesrecv。

2)日志文件一般选择.jtl类型的。

5、双击startAgent.bat(Windows下)或startAgent.sh(Linux下)启动ServerAgent。命令如下:

Windows下:
双击startAgent.bat或在命令窗口输入startAgent.bat。

Linux下
1、cd到ServerAgent的目录下。
2、修改startAgent.bat的权限为777:chmod 777 startAgent.bat
3、启动:sh startAgent.bat
4、修改端口:java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7879 --tcp-port 7879

将记录日志转换成图片
java -jar CMDRunner.jar --tool Reporter --input-jtl PerfMon.jtl --plugin-type PerfMon --generate-png report.png

 

三、Linux下的另一种性能测试配置

1、在Linux中安装nmon_x86_64_centos6监测工具,使用如下命令记录服务器运行状态。

cd /opt(进入opt文件目录)
./nmon_x86_64_centos6 -fT -s 10 -c 30(开始记录其中-s表示采集的时间间隔,-c表示采集的次数)
ll(查看文件详情)
sz 4pxtest30134_180516_1628.nmon(下载监测日志文件)

 

2、在测试开始后输入“./nmon_x86_64_centos6 -fT -s 10 -c 30”命令记录监测日志。

3、把监测日志文件下载到本地,通过nmon analyser v33g工具打开,就可以查看CPU、磁盘IO、网络等性能使用情况。

 

四、Windows下的性能监测

1、配置PSTools查看进程概况。

1)下载PSTools安装包,解压后,将文件夹中的pslist.exe复制到“C:\Windows\System32”路径下,然后双击运行。

2)输入命令查看进程概况。

pslist -t(以树形结构查看所有进程)
pslist -dmx 进度pid(查看进程中的线程)

3、开始测试,查看测试结果。

 

五、生成测试报告

渠道路由系统获取路向信息性能测试报告-20180517.doc

 

六、常见性能瓶颈

1、当出现sql连接超时时,一般是程序数据库连接池的最大连接数不够导致的。

2、当出现请求连接不上时,一般是tomcat连接器的最大线程数不够导致的。

3、当出现sql连接数太多时,一般是mysql的最大连接数不够导致的。

 

七、通过JConsole监测JVM运行情况(或者JVisualVM)

1、在jdk的bin目录下双击JConsole.exe运行程序。

2、选择本地或者远程JVM来连接。

1)本地进程只需要选择相应的程序即可。

2)远程连接需要:服务器的IP、连接JVM的端口、服务器的用户名和密码。

3、观察堆、CPU、线程数等性能指标。

4、设置Linux下JConsole的监测端口。

1)打开程序所在的tomcat中bin目录下的catalina.sh,设置JAVA_OPTS。若8099端口被占用则换一个。其中服务器IP(不能是127.0.0.1)和监测端口必填。

JAVA_OPTS="-Djava.rmi.server.hostname=服务器IP -Dcom.sun.management.jmxremote.port=监测端口 -Dcom.sun.management.jmxremote.rmi.port=监测端口 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

查看端口是否使用:netstat -nltpe|grep 端口

2)若防火墙有阻拦,则需要设置防火墙白名单端口。

在防火墙的/etc/firewalld/zones/public.xml路径下,添加不阻拦的端口,然后重启防火墙。

重启防火墙命令:firewall-cmd --reload

3)打开本地jdk中bin目录下的JConsole,选择远程连接此进程。如果添加了"-Dcom.sun.management.jmxremote.authenticate=false",则不需要输入用户名和密码。

4)连接成功后,即可使用JConsole监测JVM。

5)Tomcat提示端口被占用。

第一次启动时tomcat不会报错,如果停止之后tomcat会提示端口被占用了, 问题原因是在关闭Tomcat时,也执行了Catalish中的jmxremote的端口号。

解决办法:在catalish.sh文件中,判断是否为启动命令,如果是start,就设置变量,否则,就不设置。
 if [ "$1" = "start" ];then  

   echo "set console";  
   JAVA_OPTS="-Djava.rmi.server.hostname=服务器IP -Dcom.sun.management.jmxremote.port=监测端口 -Dcom.sun.management.jmxremote.rmi.port=监测端口 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"  
else  
   echo "no startup";   
fi;

前期文章参考:
     正厚软件-性能测试系列1之Jmeter入门指南


 

环境丨好课程丨好老师丨好就业丨好学员

变态严管,负责用心!

ISTQB考证、项目合作、软件测试、JAVA技术提升请认准正厚软件

 

 
咨询热线
预约试听:025-86665061
官方公众号:ZhenghouSoft
技术热线:025-86665061
联系地址
南京总部:南京市鼓楼区湖南路16号5楼
重庆中心:重庆市渝中区投资大厦6楼
武汉中心:江夏区光谷智慧园16栋
微信公众号
联系我们
咨询热线:025-86665061
友情链接
Copyright © 2018 南京正厚软件 苏ICP备17057415号 网站地图 XML地图