性能测试之jmeter
1、系统资源怎么监控
1.1下载并安装插件
(1)下载 Plugins Manager插件管理器,将成功下载的jmeter-plugins-manager-1.7.jar放至apache-jmeter-5.4.1安装目录下的lib\ext目录下;
(2)重启jmeter,点击首页选项下的Plugins Manager选项;
(3)就会打开jmeter插件管理器,在第二个页签(可安装插件)中搜索想要安装的插件PerfMon(servers Performance Monitoring),勾选点击右下角的按钮完成安装,如下图:
(4)安装完成后会自动重启jmeter,在[监听器]下可看到成功安装的相关插件。
(5)下载ServerAgent后解压,将其与jmeter放在同一目录下;
(6)启动ServerAgent,启动方法为:进入ServerAgent文件夹,windows点击ServerAgent.bat启动;mac&linux点击ServerAgent.sh启动,但是需要特别注意的是mac&linux启动前,还需要输入chmod 777 startAgent.sh进行授权。
(7)启动成功显示如下:
1.2资源监控
打开jmeter,添加相关插件即可进行服务器资源监控,一般监控CPU、Memory(内存)、Disks I/O(磁盘)和swap四个指标。
1.3实战
场景:每秒发送10个请求,并发发送100个请求,共发送400个请求。
操作步骤:
(1)添加插件,命名为监控服务器资源,点击Add Row添加指标,点击Metric to collect可以选择指标,添加CPU、Memory(内存)、Disks I/O(磁盘)和swap四个指标。
(2)在线程组中根据场景要求设置相关数据。
(3)点击运行,运行后查看监控服务器资源结果。
2、如何生成JMeter性能测试报告(html)
生成步骤:
(1)进入到jmeter的bin⽬录下,找到jmeter.properties⽂件,用记事本方式打开,把jmeter.save.saveservice.output_format=csv的禁用取消,也就是取消前面的#,如下所示:
(2)配置jmeter的环境变量,复制jmeter的bin目录的路径,打开环境变量,在系统变量的Path里添加复制的路径,然后点击确定,如图:
(3)打开控制台,输入jmeter,如果能打开jmeter表示配置成功;
(4)打开控制台,进入到jmeter的test目录下,输入如下命令:jmeter -n -t script/TestDev.jmx -l testdev.jtl -e -o performanceReport/
-t : 指定执行测试文件所在的位置及文件名
-l : 指定生成测试结果的保存文件的文件名和文件格式,jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置,测试存放在performanceReport文件夹中
命令运行成功后,会在tests文件夹中生成performanceReport文件夹和testdev文件以及jmeter日志文件,注意在命令执行前,performanceReport文件夹和testdev文件必须不存在,也就是说执行
完再次执行前,必须把performanceReport文件夹和testdev文件删除。
(5)执⾏成功后,会在performanceReport文件夹中⽣成具体的性能测试报告以及⽂件信息,点击imdex.html即可查看测试报告,具体如下:
3、性能测试平台
性能测试模式:jmeter执行性能测试,然后influxDB(时序数据库)收集性能测试数据,influxDB收集的数据存放在events、jmeter两个文件夹中,最后通过grafana可视化展示性能测试的数据,如下图:
3.1jmeter配置
(1)搭建好Grafana的环境后,开始操作JMeter的监听器,具体是在监听器中选择后端监听器,添加方式如下:
(2)在后端监听器中,后端监听器实现一栏选择第三个,具体如下:
(3)修改infiuxdbUrl,将host_to_change修改为Grafana的地址,如图:
3.2Grafana的可视化展示
进入到grafana,登录进入后,点击HOME可以选择添加想要监控的指标。
4、JVM如何监控
监控java程序本身的CPU和内存资源。
4.1环境配置
配置java环境,此前jmeter输出测试报告有说过,此处不再详述,配置完成后打开控制台,输入jps,得到程序pid,显示结果如下图:
4.2jvm监控
(1)进入到java文件夹下的jdk文件夹下的bin目录下,找到jvisualvm(基于gms协议的)并打开;
(2)双击org.apache.jmeter,然后点击监视即可监控JVM,看到程序的CPU和内存的占用情况。