肖 sir_就业课__011性能测试讲解

news2025/1/20 14:49:30

性能测试讲解
一、你做过性能测试吗?
方法1:做过
方法2:在公司中性能测试有专门的性能小组做,但是我也会做性能
二、性能测试有哪些类型?
1)压力测试(破坏性测试)
压力测试是系统在一定饱和状态下,例如:cpu、内存、磁盘io在饱和使用情况下,不断给系统施加压力,看系统处理能力,以及系统是否会出现错误;
(2)负载测试
负载测试是对测试系统不断增加压力,直至性能指标超过预期或者某项资源使用达到饱和状态。
(3)稳定性测试
稳定测试就给系统施加一定压力,持续运行一段时间(7*24),观察系统能否稳定运行。
(4)基准测试
基准测试在给系统施加较低压力时,查看系统的运行状况并记录相关数作为基础参考 。
(5)并发测试
并发测试是指模拟多用户并发访问同一个应用,模块或者数据记录时可能发生的性能问题。
三、性能测试的工具有哪些?
1、jemter 开源、免费、安装方便、体积下(常用)
2、loadrunner 收费、专业、安装包大、4g、
四、性能测试流程?
步骤:
1、需求分析(性能需求/性能要求)
2、性能计划的编写
3、性能场景的设计
4、脚本的开发(录制脚本,接口填写)
5、性能环境的搭建
6、性能数据准备
7、性能执行(性能工具jmeter)
8、收集性能指标,分析结果
9、输出性能报告
10、性能调优(开发)

五、性能测试关注哪些指标?
软件指标:并发数、响应时间、tps、qps、吞吐量、事务每秒数、事务点击率、错误率、最大并发数、最佳并发数、hps等
参考:https://www.cnblogs.com/xiaolehong/p/16790205.html
硬件指标:cpu、内存、磁盘、网络i/0、
参考:https://www.cnblogs.com/xiaolehong/protected/p/16618951.html 性能插件

六、性能测试中你遇到过哪些问题?
8.1提现申请接口3-5个线程并发时,容易引起死锁现象,经优化后,Tps达到224左右,且没有死锁现象出现;
8.2账单查询接口,优化索引前,响应时间为8s左右,Tps为11;优化索引后,响应时间缩短为0.15秒左右,Tps升为560左右
参考:https://www.cnblogs.com/xiaolehong/p/16797081.html

七、性能测试你是怎么做的?
案例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%的话那就说明没问题,我会去输出性能测试报告,然后再发送报告给到我整个项目组。

八、性能的预期指标:
在这里插入图片描述
九、压测实际结果
在这里插入图片描述
7.1接口调用统计信息
7.1.1用户激活状态接口:200线程并发执行,Tps为570,响应时间为218ms
7.1.2通用对外白名单查询接口:200线程并发执行,TPS为450,响应时间为6ms
7.1.3提现申请20线程并发执行,Tps为224,响应时间为66ms
7.1.4通用对外福贷主状态查询:200线程并发执行,Tps为485左右,响应时间为345ms
7.1.5信贷系统查重接口200线程并发执行,Tps为1293左右,响应时间平均11ms
7.1.6在途申请查询接口:200线程并发执行,Tps为960左右,响应时间平均143ms
7.1.7额度查询接口:200线程并发执行,Tps为960左右,响应时间平均130ms
7.1.8日利率查询:200线程并发执行,Tps为1008左右,响应时间平均38ms
7.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、分布式性能测试有了解吗?

===================================================

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱

来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Android和iOS的各种设备。 来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞,影响到运行L…

【C++核心】内存、引用、函数

一、内存四区域 C程序在执行时,将内存大方向划分为4个区域 程序运行前分为: 代码区:存放函数体的二进制代码exe,由操作系统进行管理的 exe机器指令、共享、只读 全局区:存放全局变量和静态变量以及常量(字…

运行时内存数据区之虚拟机栈——操作数栈

操作数栈 每一个独立的栈帧中除了包含局部变量表以外,还包含一个后进先出(Last-In-First-Out)的操作数栈,也可以称之为表达式栈(Expression Stack)。操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据或提取数…

Netty缓冲区ByteBuf源码解析

在网线传输中,字节是基本单位,NIO使用ByteBuffer作为Byte字节容器, 但是其使用过于复杂,因此Netty 写了一套Channel,代替了NIO的Channel ,Netty 缓冲区又采用了一套ByteBuffer代替了NIO 的ByteBuffer &…

微服务+springcloud+springcloud alibaba学习笔记【OpenFeign的使用】(5/9)

OpenFeign的使用 5/91、OpenFeign简介1.1、Feign及OpenFeign概念和作用1.2、Feign和OpenFeign区别2、OpenFeign使用步骤2.1、创建Feign消费端微服务2.2、修改POM文件配置2.3、编写yml配置文件2.4、编写主启动类2.5、编写业务类2.5.1、编写 service 层接口,用于服务提…

什么是线性回归?线性回归有什么特征?

什么是线性回归 线性回归定义与公式 线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。 特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归 线…

Orange Pi 5B面世,传承经典,再续传奇

近日,香橙派又出大招。刚刚发布的Orange Pi 5B在性能和表现上再度升级。此前,Orange Pi 5凭借出色的性能和极低的价格被誉为“地表最高性价比开发板”,一经上市就引起市场轰动,销量引领同类产品市场,获得极佳口碑。那么…

【音视频第13天】另外一种拥塞控制算法-TransportCC

目录与Goog-REMB区别TrendLine滤波器与Goog-REMB区别 与Goog-REMB有两个区别: 将拥塞评估算法从接收端移动到了发送端,评估和控制是一体的。TransportCC是发送端评估发送端接着改变码率,REMB是接收端评估,把评估出来的值给发送端…

STL源码剖析-分配器 Allocator

分配器(Allocator) 分配器给容器用的,是一个幕后英雄的角色。分配器的效率非常重要。因为容器必然会使用到分配器来负责内存的分配,它的性能至关重要。 在C中,内存分配和操作通过new和delete完成。 new中包含两个操作,第一步是…

HTML5 Input 类型

文章目录HTML5 Input 类型Input 类型: colorInput 类型: dateInput 类型: datetimeInput 类型: datetime-localInput 类型: emailInput 类型: monthInput 类型: numberInput 类型: rangeInput 类型: searchInput 类型: telInput 类型: timeInput 类型: urlInput 类型: weekHTML…

手撕哈希表

🌈感谢阅读East-sunrise学习分享——[进阶数据结构]哈希表 博主水平有限,如有差错,欢迎斧正🙏感谢有你 码字不易,若有收获,期待你的点赞关注💙我们一起进步🚀 🌈我们上一…

SNN demo

记录一个同门给的SNN demo,仅供自己参考 1 SNN和ANN代码的差别 SNN和ANN的深度学习demo还是差一些的,主要有下面几个: 输入差一个时间维度T,比如:在cv中,ANN的输入是:[B, C, W, H]&#xff0c…

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971) 0x00 前言 Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中&#x…

浅说情绪控制被杏仁体劫持

2023年4月16号,没想到被杏仁体劫持那么严重,触发手抖和口干的症状,这个还真是自己万万没有想到的。 人生要修炼两条线:一条明线是做的事情,那是自己要做的具体事情。 一条暗线是修炼的自己,这次也做了测试…

云安全——Docker Daemon

0x00 前言 其他云安全相关内容,请参考:云安全知识整理 0x01 Docker Daemon Daemon是Docker的守护进程,Docker Client通过命令行与Docker Damon通信,完成Docker相关操作,2375端口是Daemon的未授权端口。 0x01 2375 …

设计模式之监听模式

本文将会介绍设计模式中的监听模式。   监听模式是一种一对多的关系,可以有任意个(一个或多个)观察者对象同时监听某一个对象。监听的对象叫观察者(Observer),被监听的对象叫作被观察者(Obser…

QObject对象生命周期管理

QObject对象生命周期管理 1.C中对象的生命周期管理是一个非常重要的话题,因为C需要程序员自己手动管理内存,而这也是C程序经常容易出现内存问题的重要原因。 1.1 特别是多线程环境下如何正确管理好对象的生命周期,更是C程序开发中的一个难点…

对抗样本-(CVPR 2022)-通过基于对象多样化输入来提高有针对性对抗样本的可迁移性

论文地址:https://arxiv.org/abs/2203.09123 代码地址:https://github.com/dreamflake/ODI 摘要:本文提出了一种新的方法来生成有针对性的对抗样本,该方法通过使用多种不同的输入图像来生成更加丰富和多样化的图像。具体而言&…

hashlib模块

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 hashlib模块专栏:《python从入门到实战》 哈希算法,也叫摘要算法。 加密&…

Postcat 插件上线,支持 ApiPost 格式导入

作为开源的 API 管理工具,Postcat 已经支持 Postman、swagger、Eolink 等平台的数据导入导出。 前不久有用户跟我们提需求,想要 Postcat 支持国内的一些主流的 API 管理工具,好消息是现在不就支持了么! 最近我们的插件广场上线了一…