性能测试理论3

监听器

JMeter里面使用后端监听器,结合influxdb的时序数据库以及grafana可以打造性能测试的平台 后端监听器:把JMeter执行过程中的数据写到influxDB的时序数据库 influxD:时序数据库,用来存储JMeter发送请求的数据 Grafana:从influx DB获取数据,展示在Grafana的平台上

Grafana:Apache JMeter Dashboard - Grafana

后端监听器运行原理:

img

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

img

3、CPU增长率是多少

记录原始以及运行结束时的CPU值运用公式计算:最终值-原始值/原始值

4、内存最大是多少

观察数据并记录最大内存

img

5、内存增长率是多少

记录原始以及运行结束时的内存值运用公式计算:最终值-原始值/原始值

6、吞吐量是多少

聚合报告或汇总报告

img

7、响应时间是多少

响应时间图

8、用户数是多少

用户数即开始时所设置的线程数

img

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、前面的#去掉

img

将测试脚本放在Jmeter目录下的tests\script中:

 

 

 

进入控制台在tests目录下执行命令:jmeter -n -t loginauth.jmx -l login.jtl -e -o performanceReport/

 

 

 

 

 

 

总结:

 

 

响应时间:

 

 

反应时间:

 

 

若再次执行查看其他运行结果则删除performanceReport和login.jtl或改名:

 

 

参数化模拟登录测试

参数化: 在客户端模拟向服务端发送请求的过程中模拟不同的数据

网页中的右击检查network并复制以下两项添加到JMeter中

 

 

HTTP信息头管理器:填写请求的数据格式

 

 

CSV数据文件设置:

img

将所用数据(模拟登录用户名及密码)下载保存至JMeter-tests-data-login.txt并在JMeter中设置

 

 

 

 

(注意:变量名称中的逗号用英文逗号)

在JMeter里面,调用变量使用的是:${变量名称}:

 

 

最终运行:

 

 

性能测试中针对登录你是怎么测试的?

答:首先需要明确的是登录的性能测试目标,也就是每秒并发多少个用户同时登录系统,在目标的基础上,下来造具体的登录系统的用户。因为在测试中每秒并发登录使用的是不同的用户登录。

JVM监控

JVM概述

img

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

 

posted @ 2022-08-18 19:26  LaraCroft  阅读(115)  评论(0编辑  收藏  举报