2023.8.29 关于性能测试

news2024/12/23 17:46:52

目录

什么是性能测试?

性能测试常见术语及其性能测试衡量指标

并发

用户数

响应时间

事务

点击率

吞吐量

思考时间

资源利用率

 性能测试分类

基准性能测试

负载性能测试

压力性能测试

可靠性性能测试

性能测试执行流程 


什么是性能测试?

性能测试的定义

测试人员借助性能测试工具,去模拟大量用户操作来验证系统能够承受的负载情况,其对应的性能指标是否达到预期,最后找出潜在的性能问题分析并解决!


性能测试和功能测试有什么区别?

功能测试性能测试
依靠人工执行依靠工具执行
不管在什么场景下,只要能够正常运行即可软件在一些极端的情况下,是不是能够正常运行

影响一个软件性能因素有哪些?

  • 硬件:服务器 CPU 利用率、内存、磁盘操作频率、CPU 核心数 等
  • 软件:算法、编程语言 等
  • 用户:用户数量、用户使用时长、用户访问频率 等

性能测试常见术语及其性能测试衡量指标

并发

  • 业务层面的并发用户数:指同时向服务器发送请求的用户数量
  • 后端服务器层面的并发用户数:指同时向发服务器发送请求的请求数量

注意:并发强调的是大量用户同时性的操作对服务器造成的压力,并不是只要发出请求就会对服务器造成压力


用户数

  • 系统用户数:系统注册的用户数量
  • 在线用户数:成功登录系统的用户数量
  • 并发用户数:大量同时访问系统的用户数量

用户数量: 系统用户数 > 在线用户数 > 并发用户数


响应时间

  • N1 ~ N4 和 A1 ~ A3 都为时间段

用户响应时间

N1 + A1 + N2 + A2 + N3 + A3 + N4

请求响应时间

A1 + N2 + A2 + N3 + A3

影响一个软件响应时间的因素有哪些?

  • 数据库性能
  • 网络带宽
  • 服务器处理时间
  • 软件算法、逻辑
  • 用户设备

事务

  • 事务是衡量系统处理能力的重要指标

例子:

用户A和用户B,他们各自有自己的银行账户。用户A想要向用户B转账一定金额的资金。

在这个转账过程中,可以将以下步骤视为一个事务

  1. 开始事务:系统开始处理转账事务。

  2. 扣除用户A的账户余额:系统从用户A的账户中扣除转账金额。

  3. 增加用户B的账户余额:系统向用户B的账户中增加转账金额。

  4. 提交事务:系统确认转账操作成功,并将更改后的账户余额持久化到数据库中。

事务响应时间

指在系统或应用程序中完成一个特定事务所需的时间。这个时间通常从事务启动到事务完成的时间段,是性能测试中重要的综合性性能指标!

每秒事务通过数(TPS)

  • 处理的事务数量 / 事务所花费的总时间 = 每秒事务通过数 (TSP)
  • 每秒事务通过的数量越多自然说明该软件的性能越好

点击率

  • 每秒点击数代表用户向服务器提交 HTTP 的请求数量,点击率越大,服务器压力越大

注意:这里的点击不是 鼠标的一次点击,因为一次鼠标点击可能有多次 HTTP 请求


吞吐量

  • 指系统在单位时间内能够处理的工作量或事务数量,体现系统的性能承受能力
  • 吞吐量通常以每秒处理的单位数量来表示,如每秒请求数、每秒事务数等。较高的吞吐量表示系统能够在单位时间内处理更多的工作量,具有更高的效率和处理能力。

思考时间

  • 用户对软件进行操作的时候,每一个操作请求之间的间隔时间

资源利用率

  • 指不同系统资源的使用情况,包含 CPU、内存、硬盘、网络 等

面试题

了解性能测试的话,请说下当你做性能测试的时候,你关注哪些指标?

  • 概括上文的每一点

 性能测试分类

基准性能测试

  • 让系统在正常情况下运行,观察系统性能指标
  • 应用场景:系统刚上线需要进行性能摸底

负载性能测试

  • 验证系统在超过安全指标后增加压力直到系统出现拐点的情况(崩溃边缘,但不会崩溃)
  • 通过负载性能测试,可以发现系统的瓶颈、性能瓶颈和资源限制,以便进行性能优化和容量规划

压力性能测试

  • 验证系统处于饱和情况下或极限负载直至系统崩溃的情况,从而了解系统的承受极限

可靠性性能测试

  • 验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常

性能测试执行流程 

  • 需求分析 ---> 测试计划 ---> 选择一款性能测试工具 ---> 性能测试脚本编写 ---> 执行性能测试脚本  ---> 产出一个性能测试报告

注意:

  • 性能测试中出现不合预期的情况,不称其为 Bug,而称之为性能瓶颈
  • 开发修复的过程,称之为优化
  • 一个系统一定会有性能瓶颈,只能不断对其进行优化

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

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

相关文章

【USRP】集成化仪器系列3 :频谱仪,基于labview实现

USRP 频谱仪 1、设备IP地址:默认为192.168.10.2,请勿 修改,运行阶段无法修改。 2、天线输出端口是TX1,请勿修改。 3、通道:0 对应RF A、1 对应 RF B,运行 阶段无法修改。 4、中心频率:当需要…

AndroidStudio3.5.2修改项目项目包名

公司项目要打造成产品进行演示,需要更换不同的包名进行安装在同一设备上,即所谓的马甲包 更改步骤基本一样 https://blog.csdn.net/qq_35270692/article/details/78336049 需要注意的是,按照上边的步骤修改完后,如果项目中有数据…

百度垂类离线计算系统发展历程

作者 | 弘远君 导读 本文以百度垂类离线计算系统的演进方向为主线,详细描述搜索垂类离线计算系统发展过程中遇到的问题,以及对应的解决方案。架构演进过程中一直奉行“没有最好的架构,只有最合适的架构”的宗旨,面对不同阶段遇到的…

C++语法基础

这里写目录标题 基础语法第一个程序变量常量的定义关键字标识符命名 (变量命名)sizeof的使用实型(浮点型)字符型转义字符字符串的定义 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 基础语法 第一个程序 …

Lua学习(一)

lua基础学习 LUA 语言1. 什么是lua?1.1 准备工作 2. 基本语法2.1 注释2.2 标识符2.3 关键字2.4 全局变量 3. 数据类型4. 变量4.1 赋值语句 5. 循环5.1 while循环5.2 for循环5.3泛型for循环5.4 repeat until 循环5.5 break 语句 6. 流程控制6.1 if语句6.2 if else 语…

数学建模:数据的预处理

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 文章目录 数据预处理数据变换数据清洗缺失值处理异常值处理 数据预处理 数据变换 常见的数据变换的方式:通过某些简单的函数进行数据变换。 x ′ x 2 x ′ x x ′ log ⁡ ( x ) ∇ f ( x k )…

ZLMediaKit 各种推拉流

1 用ffmpeg 推音视频流 ./ffmpeg -f dshow -i video"HP Wide Vision HD Camera" -f dshow -i audio"麦克风阵列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720…

java八股文面试[多线程]——synchronized锁升级过程

速记:偏向-轻量-重量 锁膨胀 上面讲到锁有四种状态,并且会因实际情况进行膨胀升级,其膨胀方向是:无锁——>偏向锁——>轻量级锁——>重量级锁,并且膨胀方向不可逆 一.锁升级理论. 在synchronized锁升级过程…

Kotlin学习之密封类

Kotlin中的密封类: kotlin中的密封类,用关键词Sealed修饰,且还有一个规定:Sealed类的子类应该是Sealed类的嵌套类,或者应该在与Sealed类相同的文件中声明。 当我们想定义一个有相同父类,但是有不同子类的时候&#xf…

面试中的系统设计:应对复杂问题的方法与技巧

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

巨人互动|游戏出海游戏出海的趋势如何

随着全球游戏市场的不断扩大和消费者需求的多元化,游戏出海作为游戏行业的重要战略之一,正面临着新的发展趋势。本文小编将讲讲游戏出海的趋势,探讨一下未来游戏出海的发展方向与前景。 巨人互动|游戏出海&2023国内游戏厂商加快“出海”发…

Linux命令查看CPU、内存、IO使用情况简单介绍

文章目录 1. CPU相关介绍1.1 物理CPU1.2 物理CPU内核1.3 逻辑CPU1.4 几核几线程1.5 CPU设计图 2. top 查看系统负载、CPU使用情况2.1 系统整体的统计信息2.2 进程信息2.3 top命令使用 3. lscpu 显示有关 CPU 架构的信息4. free 查看内存信息5. iostat 查看io信息 1. CPU相关介绍…

angular抛出 ExpressionChangedAfterItHasBeenCheckedError错误分析

当变更检测完成后又更改了表达式值时,Angular 就会抛出 ExpressionChangedAfterItHasBeenCheckedError 错误。Angular 只会在开发模式下抛出此错误。 在开发模式下,Angular 在每次变更检测运行后都会执行一次附加检查,以确保绑定没有更改。这…

一台服务器上部署 Redis 伪集群

哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.rb 是一个基于 Ruby 编写的脚本,其功能涵盖了创建、管…

经纬恒润荣获吉利汽车“最佳价值贡献”奖

8月18日,以“全面向新 共创共赢”为主题,吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现,获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一,吉利汽车积极推…

从Matrix-ResourceCanary看内存泄漏监控

作者:小海编码日记 不同于LeakCanary,在Matrix中,主要是通过Resource Canary来监控内存泄漏问题的,且监听的泄漏对象只支持Activity,官方说明如下: 结合分析LeakCanary的经验可知,要实现Activit…

BananaPi BPI-6202工业控制板全志科技A40i、24V DC输入、RS485接口

Banana Pi BPI-6202“嵌入式单板计算机”采用工业级全志A40i四核Cortex-A7处理器,工业温度范围和长生命周期,2GB DDR3,8GB eMMC闪存,M.2 SATA插槽等。 这是自 Banana Pi去年推出Banana Pi BPI-M2 Ultra SBC 和BPI-M2 Berry以来&am…

机械臂+2d相机实现复合机器人定位抓取

硬件参数 机械臂:艾利特 相机:海康相机 2d识别库:lindmod,github可以搜到 光源:磐鑫光源 软件参数 系统:windows / Linux 开发平台:Qt 开发语言:C 开发视觉库:OpenCV …

[C/C++]天天酷跑游戏超详细教程-上篇

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

maven推包The environment variable JAVA_HOME is not correctly set

解决办法: 打开idea查看jdk安装位置 1.在/etc下面创建(如果存在就是更新)launchd.conf。里面添加一行: setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home #JAVA_HOME后面是我的java安装路径…