性能测试理论知识(二)

面试工程中,性能测试你测什么?关注的点是什么?

1、程序的响应时间,系统的吞吐量,以及并发用户数,和tps,qps以及DB的iops,和服务器的系统资源(CPU和内存)

2、通过一定的工具或者代码的方式,来验证被测的程序是否满足性能测试的目标,以及验证程序是否会出现oom,系统无响应,系统崩溃等情况

 

工作流程:

1、清楚性能测试目标是什么?

2、用什么工具怎么去做?

3、过程中你需要收集数据

4、一定要有结论

 

性能测试模型也可以理解为性能测试步骤,具体汇总为如下:

测试前期准备

测试工具技术引入

性能测试计划

测试设计与开发

测试执行与管理,数据收集

测试分析

 

性能测试的过程中,测试环境的资源配置与生产环境的资源必须是一致的。

 

测试的前期准备工作:

1、梳理清楚性能测试的目标(参考之前的历史数据,性能的目标有测试主导梳理出来,但是和大家一起沟通决定下来)

2、在目标清楚的基础上梳理测试场景和准备测试数据

3、准备测试的资源(人力资源,机器资源)

 

测试工具技术引入:

1、loadRunner HP惠普公司研发的工具,主要在工业级的性能测试中具有非常大的优势,他是收费的。

2、jmeter 是Apache基金会顶级的项目,是Java语言百分之百开发的,在头部互联网公司基本上都进行二次开发引用非常广泛,他是开源的

3、locust是Python代码级别的性能测试工具,他是基于协程(微小的线程)

 

性能测试计划:

1、具体测试场景执行的,负责人,和执行的开始介绍时间

2、前置工作内容

3、具体使用到的测试技术

 

测试设计与开发:

编写脚本来验证具体的测试场景

 

测试执行与管理,数据搜集:

1、在脚本编写的基础上执行以及验证测试场景

2、我们在测试的过程中需要收集数据(性能计数器) A、服务器系统资源:CPU和Memory B、DB的资源:IOPS,连接数 C、服务资源:响应时间(最大,最小,平均,中位数(50%),90%,95%,99%),吞吐量,并发数

3、数据收集的思路:把这些数据写到InfluxDB(时序数据库),最后展示在Grafana的平台上

 

场景:针对一码通的系统,需要做并发的测试,目标数据是每秒并发15万

1、5万

2、10万

3、15万

4、20万

5、25万

 

测试分析:

1、结合收集到的数据分析是否和最初制定的性能测试目标吻合,如果达到了目标,输出性能测试的报告

2、如果没有达到目标,那么开发继续调整,优化,测试继续测试

 

Locust:https://locust.io/

jmeter:https://jmeter.apache.org/

 

java -version

javac

 

 

当我们Java环境部署完毕之后需要在cmd中输入命令来验证:jvisualvm

JVM监控工具

 

 

验收负载测试

在QA的环境模拟生产运行的业务压力和使用场景组合,测试系统的性能是否满足生产环境的性能诉求。

环境:

1、测试环境(QA)

2、预发布环境

3、生产环境(线上)

 

测试环境没问题到生产环境就有问题,这时候我们增加预发布环境,现在预发布环境测试,没有问题了在上生成环境

 

负载测试

在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状态。核心是找到系统的处理极限,为系统调优提供数据,从而达到了解系统性能的容量。

 

压力测试

该方法是指系统在一定饱和状态下,具体如CPU,内存等饱和使用的情况下,系统能够处理的会话能力,以及系统是否会出现错误,比如TimeOut,OOM,OverStackExpection(堆栈异常)。压力测试的特点:

检查系统在处于压力情况下时应用的性能表现

等价于负载测试,使系统的资源处于一个瓶颈的状态(建议CPU和内存在75%以上)

这种方式一般用于测试系统的稳定性

TimeOut:超时 OOM(Java.lang.Out Of Memory):内存泄露 OverStackExpection:堆栈溢出

 

系统的稳定性:被测系统在系统资源饱和的状态下,依然能够很好的处理系统的业务逻辑

比如说我们拿一码通举例,在一码通系统资源饱和的情况下我们是否还能打开二维码健康码,是否还能查看核酸检验结果

 

配置测试

被测环境软硬件环境参数的调整,达到最优的分配原则。

 

并发测试

模拟用户的并发访问,测试多用户并发访问同一个应用时是否存在死锁或者其他的问题,并发测试的特点是:

1、发现系统中可能隐藏的并发访问的问题

2、关注系统可能存在的并发问题,如内存泄露,线程锁,资源争用情况

3、使用的测试工具如profiler等

 

 

可靠性测试

给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。

 

被测对象往往是一个服务,服务一般都会提供接口,那么我们直接访问这个接口可以来测试这个服务。

 

配置jmeter的环境变量

1、找到jmeter下载安装包解压过后的bin目录,并复制路径

 

2、 在系统环境变量中找到pash配置他的环境

 

 

 3、新建环境变量把复制的路径放到里面

 

 

posted @ 2022-05-19 16:27  朝阳群众老马  阅读(63)  评论(0编辑  收藏  举报