常见的性能测试缺陷

news2024/9/30 3:29:50

目录

前言:

性能测试缺陷分类

一、硬件

二、网络

三、应用

四、配置

五、数据库

六、中间件


前言:

性能测试是测试系统在特定条件下的响应时间、并发用户数、吞吐量、内存使用率、CPU利用率、网络延迟等各项指标,以验证其性能是否符合要求。在实施性能测试时,可能会出现各种缺陷,导致测试结果不准确,或无法准确判断系统性能是否达标。

性能测试缺陷分类

缺陷类型缺陷描述
硬件磁盘空间
CPU
IO读写速率
内存
网络带宽
网络波动
CDN
延时
丢包
应用JVM
代码逻辑
配置JDK版本
底层配置
参数配置
数据库索引
表空间
慢SQL
数据量
中间件超时
线程池
缓存策略
最大连接数
通信实现方式
负载均衡

一、硬件

磁盘空间:磁盘空间不足导致系统运行变慢,文件、日志等无法生成存放导致的性能瓶颈;

CPU:CPU的核心功能是解释计算机指令以及处理数据,性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括工作频率、Cache容量、指令系统和逻辑结构等参数;

IO读写速率:即input和output,输入和输出,主要考虑数据处理时的读写速度,页交换等情况;

内存:所有的程序都是运行在内存中的,其作用是用于暂时存放CPU中的运算数据,以及与外部存储器交换的数据,内存不足会限制程序的数据处理速度,因此这也是很重要的一项性能关注指标;

二、网络

带宽:高并发情况下,如果带宽不足,可能会导致网络资源竞争,超时等情况;

网络波动:这里是从网络的稳定性来描述,即性能测试的环境,需要一个稳定的网络环境;

CDN:即内容分发服务,有时候不同的CDN策略也会影响到“用户”感知到的系统性能表现;

延时:延时的值越大,对系统性能表现影响越大(比如格斗类的PVP游戏),且性能测试的结果也存在更大的偏差;

丢包:数据在网络上是以数据包的形式传输的,如果丢包,则可能造成报错或异常的情况;

三、应用

1、JVM

堆内存分配:根据系统硬件条件来进行合理的堆内存分配,一般来说JVM的堆内存分配不要超过系统内存的25%较好;

垃圾回收算法:JAVA的动态垃圾回收机制,是基于不同的几种回收算法来进行的,根据具体的情况,选择合适的垃圾回收策略;

OOM:即内存溢出(out of memory),这个算是性能测试中很常见的一个问题,通常是由于代码问题造成的内存泄漏、GC不够彻底、内存被耗尽引起;

2、代码逻辑

常见的情况有不合理的线程引用和内存分配;

四、配置

版本:在性能测试过程中,一定要确保被测系统的版本和实际生产保持一致,否则由于版本不同带来的些许差异可能会对性能测试带来很大的偏差和影响;

底层配置:涉及到操作系统、服务器等硬件的一些配置方式不合理,带来的性能瓶颈;

参数配置:系统架构设计中,各个不同的参数配置带来的性能瓶颈;

五、数据库

索引:索引的存在就像一个标签目录一样,在执行数据库操作时提供更为快速的执行效率,减少磁盘IO操作和执行的数据库系统时间;

锁:为了保证事务的原子性和隔离性,有了锁的存在,但有时候由于某些原因造成的表锁,也是性能瓶颈的一种表现;

表空间:不合理的表空间设计,导致的数据库性能问题;

慢SQL:慢SQL会导致数据库操作时间变长,增加IO读写以及引起一些列的资源竞争等问题,常见的慢SQL原因如下(以MySQL为例):

数据量:对同一张表来说,1W条数据和1000W条数据,对其进行操作时的性能表现也是不同的,因此在性能测试时对于数据的正确性可用性,以及数据量也是需要重点关注的;

六、中间件

超时:设置合理的请求或响应超时时间,是很有必要的,这点要根据具体的业务场景和系统架构来考虑,具体的超时时间,建议进行配置测试来设定;

线程池:之前的博客介绍过线程池的相关资料,线程池配置太小,很容易被使用完,太大的话又浪费资源,合理的线程池,建议进行配置测试来确定;

缓存策略:缓存的优点是减少请求响应过程中的传输时间,但有时候在高并发情况下,缓存很容易失效而导致缓存穿透,瞬间对服务端带来很大的压力;

最大连接数:关于连接数,之前的博客也介绍过,合理的连接数配置是很重要的,否则连接数太少容易导致队列等待、超时,连接数太多则浪费了系统资源;

通信实现方式:同步(sync)和异步(Async);

负载均衡策略:现在很多的系统都进行了服务集群,随之而来的就是负载均衡策略的实现,如果负载均衡不够“均衡”,在大数量的冲击下,容易导致某些服务的异常或者挂起; 

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

 留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=6gweEAHLIo-VjldEz9_yMjFfeBIGgEu2&authKey=MC4ik2bydrYxO5if1oNFzT6c93XUrxOxYtv7IRYOVRDNh47xpEllgkFVDlFD%2Bf6M&noverify=0&group_code=574737577

 

 

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

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

相关文章

ActiveMQ消息队列的介绍以及部署

文章目录 1.ActiveMQ消息队列中间件1.1.什么是ActiveMQ1.2.ActiveMQ支持的消息传递类型 2.部署ActiveMQ消息队列2.1.安装JDK环境2.2.部署ActiveMQ消息队列2.3.启动ActiveMQ消息队列2.4.ActiveMQ的端口号2.5.使用ActiveMQ的后台管理系统 ActiveMQ官网:https://active…

官宣!硬核学科“集成电路与机器人应用开发”正式入驻新校区!

好消息!好消息! 集成电路与机器人应用开发学科 强势入驻黑马武汉校区 现在报名(7月1日前)首期班 限时优惠1000元 再送价值千元硬件装备1套! 上周,播妞采访了几位2023届毕业生的就业现状(点击…

11-12 - 信号发送与处理

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)Linux系统编程训练营 - 目录 文章目录 1. 信号的概念及分类1.1 问题1.2 什么是信号1.3 信号的分类1.3.1 硬件异常信号1.3.2 终端相关信号1.3.3 软件相关信号 1.4 内核与信号1.5 …

组合模式(Composite)

别名 对象树(Object Tree)。 定义 组合是一种结构型设计模式,你可以使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。 前言 1. 问题 如果应用的核心模型能用树状结构表示,在应用中使用组合模式才…

彭博:为完善Vision Pro体验,苹果扩招数千名新员工

彭博社记者Mark Gurman在最新一期Power On栏目中表示,苹果在WWDC 2023上公布Vision Pro头显,只是该公司进入XR市场的第一步,实际上该设备在明年才会推出完整版。而且据项目相关人士透露,Vision Pro的软件生态还需要很长时间发展。…

软件工程——第6章详细设计知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.详细设计阶段的根本目的是? 2.详细设计的任务? 3.详细设计的结果地位?如何衡量程序质量? 4.结构程…

在GitHub上爆火!跳槽必看《Java 面试突击核心讲》知识点笔记整理

不知道大家在面试中有没有这种感觉:面试官通常会在短短两小时内对面试者的知识结构进行全面了解,面试者在回答问题时如果拖泥带水且不能直击问题的本质,则很难充分表现自己,最终影响面试结果。 所以针对这种情况,这份…

从0到1精通自动化测试,pytest自动化测试框架,使用自定义标记mark(十一)

一、前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行 app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是ios用例,哪些是a…

除静电设备给我们的生产带来怎样的便利

一般来说,我们需要根据具体的生产工艺和场景选择适当的静电设备,并按照厂商提供的操作规范正确使用,以确保除静电设备有效发挥作用。 1. 静电消除:静电设备可以帮助消除物体表面的静电电荷,防止静电积聚。静电积聚可能…

UML类图设计

1.普通类,抽象类,接口 普通类 抽象类 接口 1 关联关系 依赖关系 关联:对象之间的引用关系 依赖:耦合性最低,一些静态方法等 2 聚合关系 组合关系 聚合:整体与部分的关系,但是部分可以脱…

英特尔 oneAPI 2023 黑客松大赛:赛道二机器学习:预测淡水质量 实践分享

目录 一、问题描述二、解决方案1、方案简述2、数据分析预处理特征类型处理特征分布分析 3、特征构造4、特征选择过滤法重要性排序 5、模型训练 总结未来工作 一、问题描述 淡水是我们最重要和最稀缺的自然资源之一,仅占地球总水量的 3%。它几乎触及我们日常生活的方…

Python:pyecharts可视化

文章目录 简介Geo地理图绘制折线图区域突出显示横坐标带选择展示 add地图Mapformatter控制value显示在图中显示value值目标html的解析自定义地图js资源原生地图js的解析解决省份上文字不居中的问题 桑基图设置桑基柱的颜色 参考文献 简介 (这是20年的笔记&#xff…

医疗陪诊小程序开发功能有哪些?

医疗陪诊系统开发功能有哪些? 1、注册登录。用户初次使用需使用个人手机号码或者是第三方社交账号进行注册登录,登陆之后填写个人相关信息,姓名、性别、年龄、过往病史、病历等信息,以便医生可以根据患者资料进行初步判断。…

小文智能自定义变量详解

在小文交互场景设计时,有一个特殊功能,叫做自定义变量。有时,根据外呼对象的不同,需要对用户传达不同的内容,比如称呼、地址、公司名称等等。此时,就可以使用小文交互的自定义变量功能来实现对不同用户呼出…

Destination unreachable(Port unreachable) 错误原因和解决办法

Destination unreachable(Port unreachable) 是一条由网络设备(如路由器或防火墙)生成的ICMP(Internet Control Message Protocol)错误消息,用于通知源设备目标设备或端口无法到达。 一、什么是ICMP ICMP(I…

【中危】Guava<32.0.0 存在竞争条件漏洞

漏洞描述 Guava 是 Google 公司开发的开源 Java 代码库,提供常用的Java工具和数据结构。 Guava 1.0 至 31.1 版本中的 FileBackedOutputStream 类使用Java的默认临时目录创建文件,由于创建的文件名容易被攻击者猜测,在 Unix 和 Android Ice…

静电设备在静电处理环节中的原理

静电设备在静电处理环节中发挥着重要的作用。以下是一些常见的静电设备及其作用: 1. 静电消除器:静电消除器通过释放相等数量的正负离子,有效地中和周围环境中的静电荷,从而减少或消除静电引起的问题,例如静电吸附、电…

AI科技的应用革命:改变生活方式、提升人类生产力

人工智能技术的发展和应用,正在对我们的生活方式产生深远的影响。无论是在家庭、工作还是娱乐方面,越来越多的AI工具正在改变我们的习惯、观念和行为。它们为我们提供了更加智能化、个性化和定制化的服务和产品,让我们的生活变得更加便捷、高…

NXP i.MX 8M Plus工业核心板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

1 硬件资源 创龙科技SOM-TLIMX8MP是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 单核ARM Cortex-M7异构多核处理器设计的高端工业核心板,ARM Cortex-A53(64-bit)主处理单元主频高达1.6GHz,ARM Cortex-M7实时处理单元主频高达800MHz。处理器…

【教程】Flutter与Rust完美交互,无需手写FFI代码

实践环境:Windows11 flutter_rust_bridge官方文档 Flutter环境配置教程 | Rust环境配置教程 新建一个全新的Flutter项目并运行: flutter create example && cd example && flutter run 在Flutter项目根目录新建一个Rust项目&#xf…