性能测试5.19

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

程序的响应时间,系统的吞吐量,以及并发用户数,和tps,qps,以及DB的IOPS,和服务器的系统资源(CPU和内存)通过一定的工具或者代码的方式。来验证被测程序是否满足性能测试的目标,以及验证程序是否会出现OOM,系统崩溃,系统无响应等情况。

领导给你一个任务 你的工作流程是什么?

1、目标是什么?

2、怎么去做?

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

4、一定要有结论

性能测试的流程有哪些?

测试前期准备

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

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

3、准备资源(人力和机器资源)

测试工具技术引入

1、LoadRunner HP公司研发的工具,主要在工业级的性能测试中具备非常大的优势,它是收费的。

2、JMeter Apache基金会顶级项目,是java语言100%开发的,它是开源的,在头部互联网公司基本都是进行二次开发,应用也是非常广泛的JMeter(官网:https://jmeter.apache.org/download_jmeter.cgi)

3、Locust是Python代码级别的性能测试工具,它是基于协程(微小的线程)(官网:https://locust.io/

性能测试计划

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

2、前置工作内容

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

测试设计与开发

1、编写测试脚本来执行验证具体的测试场景

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

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

2、我们在测试的过程中需要收集数据(性能计数器)

A、服务器系统资源:CPU和内存

B、DB的资源:IOPS,连接数

C、服务资源:响应时间(最大,最小 ,平均,中位数(50%),90%,95%,99%),吞吐量,并发数

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

测试分析

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

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

性能测试的方法:

验收负载测试

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

环境:

1、测试环境(QA)

2、预发布环境

3、生产环境(线上)

测试环境没有问题,发布到线上总是出现问题怎么解决

这个时候可以增加预发布环境,规避问题---预发布环境和线上环境除过数据库外,没有其他的不同,所以我们可以在预发布环境没有问题了再发布

负载测试

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

压力测试

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

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

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

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

TimeOut:超时

OOM(Java.lang.Out Of Memory):内存泄露

OverStackExpection:堆栈溢出

配置测试

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

并发测试

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

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

关注系统可能存在的并发问题,如内存泄漏,线程锁,资源竞争等情况

使用的测试工具如profiler等

可靠性测试

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

系统的稳定性:

被测系统在系统资源饱和的状态下,依然能够很好的处理系统的业务逻辑(比如 一码通在饱和的状态下还能勾出码被扫描) 

被测对象:

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

1、怎么区分负载测试与压力测试

负载测试:就是不断给被测系统持续不断的增加压力,直到性能指标超过预定的指标或者资源使用已经达到了饱和状态,找到系统的处理极限,为系统的调优提供数据,从而达到了解系统性能的容量----这个是压力由小到大 找到极限值。

压力测试:这个是系统在一定饱和的状态下,系统能够处理会话的能力以及系统是否会出现错误,比如TimeOut,OOM,OverStackExpection(堆栈异常)----这个是基于上面的负载测试找到的极限值,就是在这种极限值的情况下是否能够处理会话能力 

2、怎么理解系统稳定性测试

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

3、如果做性能测试过程中,开发要求增加服务器,此时你会?

     拒绝,因为性能测试的原则是性能测试过程中,测试环境的资源配置必须要和线上环境的资源配置保持一致,所以不能采用开发的意见,如果非要采用,那么叫上相关的负责人,看下是否同意测试环境也添加 

4、做性能测试需要准备哪些工作,为什么?

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

第二:怎么去做----在目标清楚的基础上,梳理出测试场景,和准备测试数据

第三:做的过程中需要哪些资源---准备资源(人力和机器资源)

5、性能测试中测试环境和生产环境的配置必须一样嘛?为什么?

     必须一样,因为性能测试的原则就是性能测试过程中,测试环境的资源配置必须和线上环境的资源配置保持一致。

6、性能测试的目标是怎么订的

 

posted @   净植  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示