2023.8.29 关于性能测试

目录

什么是性能测试?

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

并发

用户数

响应时间

事务

点击率

吞吐量

思考时间

资源利用率

 性能测试分类

基准性能测试

负载性能测试

压力性能测试

可靠性性能测试

性能测试执行流程 


什么是性能测试?

性能测试的定义

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


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

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

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

  • 硬件:服务器 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.rhkb.cn/news/111397.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用的面试经验分享:程序员们谈论他们的面试历程

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

docker 学习-- 04 实践2 (lnpmr环境)

docker 学习 系列文章目录 docker 学习-- 01 基础知识 docker 学习-- 02 常用命令 docker 学习-- 03 环境安装 docker 学习-- 04 实践 1(宝塔) docker 学习-- 04 实践 2 (lnpmr环境) 文章目录 docker 学习 系列文章目录1. 配…

财务数据分析?奥威BI数据可视化工具很擅长

BI数据可视化工具通常是可以用户各行各业,用于不同主题的数据可视化分析,但面对财务数据分析这块难啃的骨头,能够好好地完成的,还真不多。接下来要介绍的这款BI数据可视化工具不仅拥有内存行列计算模型这样的智能财务指标计算功能…

flutter 上传图片并裁剪

1.首先在pubspec.yaml文件中新增依赖pub.dev image_picker: ^0.8.75 image_cropper: ^4.0.1 2.在Android的AndroidManifest.xml文件里面添加权限 <activityandroid:name"com.yalantis.ucrop.UCropActivity"android:screenOrientation"portrait"andro…

Django基础7——用户认证系统、Session管理、CSRF安全防护机制

文章目录 一、用户认证系统二、案例&#xff1a;登陆认证2.1 平台登入2.2 平台登出2.3 login_required装饰器 三、Django Session管理3.1 Django使用Session3.1.1 Cookie用法3.1.2 Session用法 3.2 案例&#xff1a;用户登录认证 四、Django CSRF安全防护机制 一、用户认证系统…

3d激光slam建图与定位(2)_aloam代码阅读

1.常用的几种loam算法 aloam 纯激光 lego_loam 纯激光 去除了地面 lio_sam imu激光紧耦合 lvi_sam 激光视觉 2.代码思路 2.1.特征点提取scanRegistration.cpp&#xff0c;这个文件的目的是为了根据曲率提取4种特征点和对当前点云进行预处理 输入是雷达点云话题 输出是 4种特征点…

透过源码理解Flutter InheritedWidget

InheritedWidget的核心是保存值和保存使用这个值的widget&#xff0c;通过对比值的变化&#xff0c;来决定是否要通知那些使用了这个值的widget更新自身。 1 updateShouldNotify和notifyClients InheritedWidget通过updateShouldNotify函数控制依赖其的子组件是否在Inherited…

vue cli构建的项目出现 Uncaught runtime errors

使用 vue/cli 脚手架构建的项目&#xff0c;在 npm run dev 运行后&#xff0c;页面出现 Uncaught runtime errors 报错遮罩层&#xff0c;如下图所示。 报错原因 这种错误通常是运行时出的问题&#xff0c;可能是网络错误&#xff0c;可能是变量未定义等等。 这种错误默认在开…

七、Kafka-Kraft 模式

目录 7.1 Kafka-Kraft 架构7.2 Kafka-Kraft 集群部署 7.1 Kafka-Kraft 架构 左图为 Kafka 现有架构&#xff0c;元数据在 zookeeper 中&#xff0c;运行时动态选举 controller&#xff0c;由controller 进行 Kafka 集群管理 右图为 kraft 模式架构&#xff08;实验性&#xff…

华为数通方向HCIP-DataCom H12-821题库(单选题:161-180)

第161题 以下关于 URPF(Unicast Reverse Path Forwarding) 的描述&#xff0c; 正确的是哪一项 A、部署了严格模式的 URPF&#xff0c;也能够可以同时部署允许匹配缺省路由模式 B、如果部署松散模式的 URPF&#xff0c;默认情况下不需要匹配明细路由 C、如果部署松散模式的…

Java IDEA Web 项目 1、创建

环境&#xff1a; IEDA 版本&#xff1a;2023.2 JDK&#xff1a;1.8 Tomcat&#xff1a;apache-tomcat-9.0.58 maven&#xff1a;尚未研究 自行完成 IDEA、JDK、Tomcat等安装配置。 创建项目&#xff1a; IDEA -> New Project 选择 Jakarta EE Template&#xff1a;选择…

RT-Thread在STM32硬件I2C的踩坑记录

RT-Thread在STM32硬件I2C的踩坑记录 0.前言一、软硬件I2C区别二、RT Thread中的I2C驱动三、尝试适配硬件I2C四、i2c-bit-ops操作函数替换五、Attention Please!六、总结 参考文章&#xff1a; 1.将硬件I2C巧妙地将“嫁接”到RTT原生的模拟I2C驱动框架 2.基于STM32F4平台的硬件I…

Git小白入门——了解分布式版本管理和安装

Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统&#xff08;没有之一&#xff09; 什么是版本控制系统&#xff1f; 程序员开发过程中&#xff0c;对于每次开发对各种文件的修改、增加、删除&#xff0c;达到预期阶段的一个快照就叫做一个版本。 如果有一…

iOS开发Swift-1-Xcode创建项目

1.创建项目 双击Xcode App&#xff0c;选择Create a new Xcode project。 选择创建一个iOS普通的App项目。选择Single View App&#xff0c;点击Next。 填写项目名&#xff0c;组织名称等&#xff0c;点击next。 选择好文件的存储路径&#xff0c;点击create。 2.为前端添加组件…

Unity3D 如何在ECS架构下,用Unity引擎进行游戏开发详解

前言 Unity3D是一款强大的游戏引擎&#xff0c;它提供了丰富的功能和工具&#xff0c;可以帮助开发者快速构建高质量的游戏。而Entity Component System&#xff08;ECS&#xff09;是Unity3D中一种新的架构模式&#xff0c;它可以提高游戏的性能和可扩展性。本文将详细介绍在…

【链表OJ】相交链表 环形链表1

前言: &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&#x1f4a5; ✨✨刷题专栏:http://t.csdn.cn/UlvTc ⛳⛳本篇内容:力扣上链表OJ题目 目录 一.leetcode 160. 相交链表 1.问题描述: 2.解题思路: 二.leetcode 141.环形链表 …

C语言:指针类型的意义

1.指针的类型决定了解引用时访问几个字节 2.指针的类型决定了指针1、-1跳过几个字节 一、指针的类型决定指针解引用时访问几个字节 例如 int 型指针解引用时访问4个字节 char 型指针解引用时访问1个字节 详解代码如下&#xff1a; int b 0x11223344&#xff08;十六进制&…

h5分享页适配手机电脑

实现思路 通过media媒体查询结合rem继承html文字大小来实现。 快捷插件配置 这里使用了VSCode的px to rem插件。 先在插件市场搜索cssrem下载插件&#xff1b; 配置插件 页面编写流程及适配详情 配置meta h5常用配置信息:<meta name"viewport" content&quo…

Oracle数据传输加密方法

服务器端“dbhome_1\NETWORK\ADMIN\”sqlnet.ora文件中添加 SQLNET.ENCRYPTION_SERVER requested SQLNET.ENCRYPTION_TYPES_SERVER (RC4_256) 添加后新的链接即刻生效&#xff0c;服务器无需重新启动。 也可以通过Net manager管理工具添加 各个参数含义如下&#xff1a; 是…

双向交错CCM图腾柱无桥单相PFC学习仿真与实现(3)硬件功能实现

前言 前面介绍了双向交错CCM图腾柱的系统设计仿真实现&#xff0c;仿真很理想 双向交错CCM图腾柱无桥单相PFC学习仿真与实现&#xff08;1&#xff09;系统问题分解_卡洛斯伊的博客-CSDN博客 然后又介绍了SOG锁相环仿真实现的原理 双向交错CCM图腾柱无桥单相PFC学习仿真与实…