肖sir__面试第五天课程__性能测试讲解(5.1)
性能测试讲解
一、你做过性能测试吗?
方法1:做过
方法2:在公司性能是专门性能小组做的,但是我也会做
二、性能测试有哪些类型?
1)压力测试(破坏性测试)
压力测试是系统在一定饱和状态下,例如:cpu、内存、磁盘io在饱和使用情况下,不断给系统施加压力,看系统处理能力,以及系统是否会出现错误;
(2)负载测试
负载测试是对测试系统不断增加压力,直至性能指标超过预期或者某项资源使用达到饱和状态。
(3)稳定性测试
稳定测试就给系统施加一定压力,持续运行一段时间(7*24),观察系统能否稳定运行。
(4)基准测试
基准测试在给系统施加较低压力时,查看系统的运行状况并记录相关数作为基础参考 。
(5)并发测试
并发测试是指模拟多用户并发访问同一个应用,模块或者数据记录时可能发生的性能问题。(聚合点)
三、性能测试你使用什么工具做的?
(1)jmeter 开源、免费、安装方便
(2)loadrunner 收费、专业、安装软件大(4g多)
四、性能测试流程?
答案:
五、性能测试你关注哪些指标?===》肖sir__性能指标___归纳 性能插件详解:肖sir__性能指标详解
答案1:
软件指标:响应时间、错误率、吞吐量、tps、并发数、中位数、hps、事务每秒数、成功率、
硬件指标:cpu、内存、硬盘、网络i/o ,
软件指标:
响应时间:对请求作出响应所需要的时间
错误率: 经系统处理的事务出现错误的概率,对应着实际用户使用系统功能失败的情况。理想情况下错误率应保持极低水平。
吞吐量:单位时间内处理的客户端请求数量
tps(事务每秒数):在每秒时间内系统可处理完毕的事务数。TPS很大程度体现系统性能能力。
并发数:测试时同时系统发出事务请求的数量,并发线程数用以模拟同时与系统建立连接的用户。 并发是指多个用户在同一时期内进行相同的事务处理或操作。绝对并发是指同一时刻(即同一时间点)并发用户对服务器同时发送请求。相对并发是指一段时间内(即同一时间区间)并发用户对服务器发送请求
hps:一秒钟的时间内用户对Web页面的链接、提交按钮等点击总和
事务成功率
2、硬件指标:
cpu:一般不超过80%
内存:一般要小于70%与cpu沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存分为物理内存、页面交换(Paging),SWAP内存(虚拟内存)
磁盘I/O:一般不超过30%,磁盘吞吐量,指单位时间内通过磁盘的数据量。主要关注磁盘的繁忙率,如果高于70%,则磁盘瓶颈
网络I/O:一般不超过%30的带宽、网络吞吐量,指单位时间内通过网络的数据量,当吞吐量大于网路设备或链路最大传输能力,即带宽时,则应该考虑升级网络设备或者增加带宽
(1)tps计算 :肖sir__tps计算
六、性能测试中遇到的问题?====》肖sir__性能出现问题___归纳
(1)问题1:提现申请接口3-5个线程并发时,容易引起死锁现象,经优化后,Tps达到224左右,且没有死锁现象出现;
(2)问题2
账单查询接口,优化索引前,响应时间为8s左右,Tps为11;
优化索引后,响应时间缩短为0.15秒左右,Tps升为560左右
七、性能测试压测50怎么做的?
案例1:在工作中我测试会对单个接口进行压测或一个性能场景进行压测;首先会分析需求,根据需求分析接口和场景做性能;设计性能场景;根据性能场景使用badboy(或反向代理录制脚本)录制脚本;将录制的脚本进行参数化、并且调通;在测试计划中设置压测用户数,设置压测时间,在添加查看结果树、聚合报告、tps插件、hps插件、混合图标、图像报告、表单报告等插件,在服务器中也可以使用nmon来采集硬件指标:cpu、内存、硬盘、网络I/等,或top命令去监控,在点击执行;然后就能检测到性能参数;在收集的实际性能指标进行分析和预期指标进行对比。对比后分析性能问题,给出性能报告;最后在进行性能调优。
案例2:
性能测试或者压力测试你是怎么做的?
我们产品经理首先会评审性能需求,产品经理把需求分析过后,我们就根据需求做性能场景的设计,比如我就拿登录-贷款资料录入-初审-回退-重新提交-复审-签约接口这样的一个场景,和您这边大概说一下:
首先我会设计好这个性能测试用例之后,然后接着在Jmeter里面开始组建接口,把接口请求组建好之后,然后再添加吞吐量定时器,再添加TPS插件,HPS插件,以及混合图表,查看结果树,聚合报告,以及对应的一个并发线程数比如50,然后选择压测10分钟,然后就开始点击运行,进行压测,在压测过程当中,我一般会通过混合图表去看当负载不断升高的时候,也就是我的并发线程数,它负载升高的时候我的接口的响应时间跟我的TPS之间的一个曲线变化,当我的TPS到达最高点,响应时间开始急剧上升的时候,这个时候一般就会出现一些捌点或瓶颈点,那我们去看一下它后续的一个曲线变化是怎么样的,后续如果TPS没有很快的急剧上升而是平缓的运行,我们这个时候就会去看它的、监控它的TPS是否符合我们原来设定的那个TPS、因为之前我们计算得出来的TPS需要高于105笔/秒,但我压的时候平均都能达到300多TPS,TPS这块就是符合需求的,但是只关注这个标指标还不行,还需要关注这个接口它的平均响应时间是不是在3秒钟之内。0到1秒一般是比较优秀,说明这个接口响应时间必较快速,1到3秒合格,超过了3秒我这边就会调整并发或者rps并且重新去压,还有就是错误率。我们之前的错误率指标需要低于0.1%,如果错误大于了0.1%此时说明接口有很多的报错,也是不符合性能要求的, 直到我们压完之后如果TPS达标,接口平均响应时间达标,错误率达标之后。
我们还需要在服务器端用top和iostat和dstat命令去监控它的cpu和内存,如果CPU和内存的使用率都能低于70%的话那就说明没问题,我会去输出性能测试报告,然后再发送报告给到我整个项目组。
八、性能预期指标:
九、压测实际结果:
十、接口调用统计信息
1.1.1 用户激活状态接口:200线程并发执行,Tps为570,响应时间为218ms
1.1.2 通用对外白名单查询接口:200线程并发执行,TPS为450,响应时间为6ms
1.1.3 提现申请20线程并发执行,Tps为224,响应时间为66ms
1.1.4 通用对外福贷主状态查询:200线程并发执行,Tps为485左右,响应时间为345ms
1.1.5 信贷系统查重接口200线程并发执行,Tps为1293左右,响应时间平均11ms
1.1.6 在途申请查询接口:200线程并发执行,Tps为960左右,响应时间平均143ms
1.1.7 额度查询接口:200线程并发执行,Tps为960左右,响应时间平均130ms
1.1.8 日利率查询:200线程并发执行,Tps为1008左右,响应时间平均38ms
1.1.9 账单查询接口:50线程并发执行,Tps在570左右,响应时间平均97ms
十一、性能测试报告包含哪些内容?
1.测试背景
2.测试目的
3.测试范围
4.测试环境
5.系统调用链路
6.压测指标
7.测试结果
8.问题列表
9.性能调优方案、
=======================================
面试题:
1、你会性能测试吗?
2、你是如何做性能测试的?(性能测试流程)
3、性能测试你关注性能哪些性能指标?
4、性能测试中遇到什么问题?什么原因引起?如何解决?
5、性能测试报告包含哪些内容?
6、结合你的项目中一个接口或一个场景讲下你做过的性能测试的具体数据?
========================================================
1、你做过性能测试吗?
2、你用什么做性能测试?
3、具体讲下你如何进行性能测试?
4、性能测试在什么阶段开始做的?
5、性能测试有遇到什么问题
6、你关注的性能指标有那些?
7、性能测试有那些类型?
8、为什么要做性能测试?
9、性能测试的流程?
10、性能调优有做过吗?
11、如何识别性能的瓶颈?
12、性能测试报告包含那些内容
13、性能测试数据?
14 、性能是在什么环境测试?如何模拟用户数嗯?
15、什么叫吞吐量?吞吐量如何计算?
16、性能测试需求哪里来的?
17、中间件?
18、LaodRunner 有用过吗?
19、什么叫tps,如何计算?
20、性能测试有遇到报错的语句?
21、你如何去排查性能问题?
22、线程和进程有了解吗?他们之间的关系和区别?
23、性能测试压力上不去的原因有那些
24、性能的硬件指标如何测试?
25、分布式性能测试有了解吗?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库