性能测试理论3
监听器
JMeter里面使用后端监听器,结合influxdb的时序数据库以及grafana可以打造性能测试的平台 后端监听器:把JMeter执行过程中的数据写到influxDB的时序数据库 influxD:时序数据库,用来存储JMeter发送请求的数据
Grafana:
后端监听器运行原理:
influx -username "wuya" -password "123456"
show databases;:查询有哪些数据库 use jmeter:进入到jmeter的数据库 show measurements :查询有哪些表
添加后端监听器,更改名字查看自己的运行数据:
登录Grafana平台,输入 账户|密码:admin | asd888
查看实时监听结果
进行性能测试时需要关注哪些指标?
1、系统资源(CPU和内存);
2、程序的响应时间,和吞吐量,并发用户数;
3、数据库的IOPS。
监控的原理:
1、收集数据(数据源:InfluxDB prometheus)
2、在Grafana的平台展示数据
目前企业使用的都是分布式以及微服务的架构,所以我们在工作里面性能测试大多数时候时候测试的都是服务。
检测并记录以下数据:
1、它是什么类型的程序
CPU密集型还是I/O密集型
2、CPU最大是多少
观察数据记录最大CPU
3、CPU增长率是多少
记录原始以及运行结束时的CPU值运用公式计算:最终值-原始值/原始值
4、内存最大是多少
观察数据并记录最大内存
5、内存增长率是多少
记录原始以及运行结束时的内存值运用公式计算:最终值-原始值/原始值
6、吞吐量是多少
聚合报告或汇总报告
7、响应时间是多少
响应时间图
8、用户数是多少
用户数即开始时所设置的线程数
9、每秒并发几个用户
每秒执⾏线程数(每秒并发用户)=线程数/Ramp-Up
10、从什么时候开始收集资源,什么时候截止
开始测试和结束测试所记录的时间
出现以下问题及时和开发沟通并修复
Uncaught Exception java.lang.NullPointerException in thread Thread[AWT-EventQueue-0,6,main]. See log file for details. 2022-05-20 16:16:58.116 java[42707:1459979] TSM AdjustCapsLockLEDForKeyTransitionHandling - _ISSetPhysicalKeyboardCapsLockLED Inhibit java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid42707.hprof ... Heap dump file created [1747300856 bytes in 17.604 secs]
java.lang.NullPointerException:空指针异常 j
ava.lang.OutOfMemoryError: Java heap space:内存泄露
生成JMeter HTML性能测试报告配置
jmeter目录中BIN文件下记事本打开配置文件:
将后缀改为csv、前面的#去掉
将测试脚本放在Jmeter目录下的tests\script中:
进入控制台在tests目录下执行命令:jmeter -n -t loginauth.jmx -l login.jtl -e -o performanceReport/
总结:
响应时间:
反应时间:
若再次执行查看其他运行结果则删除performanceReport和login.jtl或改名:
参数化模拟登录测试
参数化: 在客户端模拟向服务端发送请求的过程中模拟不同的数据
网页中的右击检查network并复制以下两项添加到JMeter中
HTTP信息头管理器:填写请求的数据格式
CSV数据文件设置:
将所用数据(模拟登录用户名及密码)下载保存至JMeter-tests-data-login.txt并在JMeter中设置
(注意:变量名称中的逗号用英文逗号)
在JMeter里面,调用变量使用的是:${变量名称}:
最终运行:
性能测试中针对登录你是怎么测试的?
答:首先需要明确的是登录的性能测试目标,也就是每秒并发多少个用户同时登录系统,在目标的基础上,下来造具体的登录系统的用户。因为在测试中每秒并发登录使用的是不同的用户登录。
JVM监控
JVM概述
JVM监控工具主要监控Java应用程序是否会内存泄露,当然也可以监控该Java应用程序的CPU资源。比如该服务分配了0.1C的CPU,200M的内存,那么当内存使用率达到200或者是超过200M,这个时候就内存泄露。
打包文件为.jar就可以运行这个jar包了
cd D:\Software\dingding\文件
d:
java -jar DBPlus-0.0.1-SNAPSHOT.jar
重新打开控制器输入: jvisualvm 打开JVM监控
在jmeter中创建新的进程组进行测试:
用JVM监控
注意:
启动java应用程序:
Java程序部署:
1、使用maven打包成.jar的文件,然后使用如下命令来启动: java -jar xxx.jar
2、使用maven打包成.war的文件,然后使用如下命令来启动 java -jar xxx.war