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转账一定金额的资金。
在这个转账过程中,可以将以下步骤视为一个事务:
开始事务:系统开始处理转账事务。
扣除用户A的账户余额:系统从用户A的账户中扣除转账金额。
增加用户B的账户余额:系统向用户B的账户中增加转账金额。
提交事务:系统确认转账操作成功,并将更改后的账户余额持久化到数据库中。
事务响应时间
指在系统或应用程序中完成一个特定事务所需的时间。这个时间通常从事务启动到事务完成的时间段,是性能测试中重要的综合性性能指标!
每秒事务通过数(TPS)
- 处理的事务数量 / 事务所花费的总时间 = 每秒事务通过数 (TSP)
- 每秒事务通过的数量越多自然说明该软件的性能越好
点击率
- 每秒点击数代表用户向服务器提交 HTTP 的请求数量,点击率越大,服务器压力越大
注意:这里的点击不是 鼠标的一次点击,因为一次鼠标点击可能有多次 HTTP 请求
吞吐量
- 指系统在单位时间内能够处理的工作量或事务数量,体现系统的性能承受能力
- 吞吐量通常以每秒处理的单位数量来表示,如每秒请求数、每秒事务数等。较高的吞吐量表示系统能够在单位时间内处理更多的工作量,具有更高的效率和处理能力。
思考时间
- 用户对软件进行操作的时候,每一个操作请求之间的间隔时间
资源利用率
- 指不同系统资源的使用情况,包含 CPU、内存、硬盘、网络 等
面试题
了解性能测试的话,请说下当你做性能测试的时候,你关注哪些指标?
- 概括上文的每一点
性能测试分类
基准性能测试
- 让系统在正常情况下运行,观察系统性能指标
- 应用场景:系统刚上线需要进行性能摸底
负载性能测试
- 验证系统在超过安全指标后增加压力直到系统出现拐点的情况(崩溃边缘,但不会崩溃)
- 通过负载性能测试,可以发现系统的瓶颈、性能瓶颈和资源限制,以便进行性能优化和容量规划
压力性能测试
- 验证系统处于饱和情况下或极限负载直至系统崩溃的情况,从而了解系统的承受极限
可靠性性能测试
- 验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常
性能测试执行流程
- 需求分析 ---> 测试计划 ---> 选择一款性能测试工具 ---> 性能测试脚本编写 ---> 执行性能测试脚本 ---> 产出一个性能测试报告
注意:
- 性能测试中出现不合预期的情况,不称其为 Bug,而称之为性能瓶颈
- 开发修复的过程,称之为优化
- 一个系统一定会有性能瓶颈,只能不断对其进行优化
相关文章:
2023.8.29 关于性能测试
目录 什么是性能测试? 性能测试常见术语及其性能测试衡量指标 并发 用户数 响应时间 事务 点击率 吞吐量 思考时间 资源利用率 性能测试分类 基准性能测试 负载性能测试 压力性能测试 可靠性性能测试 性能测试执行流程 什么是性能测试? 性…...
基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维)
基于MATLAB的径向基函数插值(RBF插值)(一维、二维、三维) 0 前言1 RBF思路2 1维RBF函数2.1 参数说明2.1.1 核函数选择2.1.2 作用半径2.1.3 多项式拟合2.1.4 误差项(光滑项) 3 2维RBF函数4 3维RBF函数 惯例声…...
flume拦截器
flume拦截器代码 1.依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…...
vue、elementui控制前一级选择后,后一级才会有数据
<el-form-item label"废物类型:"><el-select clearable v-model"queryForm.hswCateType" placeholder"请选择" change"industryCategoryChange" focus"industryCategoryFocus"><el-option v-for&…...
亲测influxdb安装为window后台服务
InfluxDB 安装 64bit:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip 解压安装包 修改配置文件 [meta]# Where the metadata/raft database is storeddir "D:/influxdb/meta"...[data]# The directory where the TSM…...
【LeetCode - 每日一题】823. 带因子的二叉树 (2023.08.29)
823. 带因子的二叉树 题意 元素都大于1,元素不重复。计数满足要求的二叉树(每个非叶结点的值应等于它的两个子结点的值的乘积)的数量。元素可以重复使用。 代码 自上而下动态规划。 所有元素大于1,所以不会有 自己自己自己 的…...
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…...
一台服务器上部署 Redis 伪集群
哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.rb 是一个基于 Ruby 编写的脚本,其功能涵盖了创建、管…...
ealtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)
本文为大家介绍realtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10),下面和小编一起看看详细内容吧。 我们都使用电脑来听音乐、看电影或者进行其他操作,但是如果我们觉得电脑产生的音效不够立体,我们就会想要去Realtek来设置音…...
微信小程序 scroll-view 组件的 bindscroll 不触发不生效
使用微信小程序基础组件中的scroll-view,但是滑动的时候 bindscroll 一直不生效。 <view class"container log-list"><scroll-view scroll-y style"height:100%;white-space:nowrap;" scroll-into-view"{{toView}}" enable…...
datax 删除分区数据,再写入MySQL脚本
#! /bin/bashDATAX_HOME/opt/module/datax#1、判断参数是否传入 if [ $# -lt 1 ] thenecho "必须传入all/表名..."exit fi #2、判断日期是否传入 [ "$2" ] && datestr$2 || datestr$(date -d -1 day %F)#DataX导出路径不允许存在空文件,…...
hyperf 十四 国际化
一 安装 composer require hyperf/translation:v2.2.33 二 配置 1、设置语言文件 文件结构: /storage/languages/en/messages.php /storage/languages/zh_CH/messages.php // storage/languages/en/messages.php return [welcome > Welcome to our applicat…...
C语言_初识C语言指针
文章目录 前言一、指针 ... 一个内存单元多大比较合适?二、地址或者编号如何产生?三、指针变量的大小 前言 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。 所以为了有效的使用内存,就把内存划分成一个个…...
EMQX启用双向SSL/TLS安全连接以及java连接
作为基于现代密码学公钥算法的安全协议,TLS/SSL 能在计算机通讯网络上保证传输安全,EMQX 内置对 TLS/SSL 的支持,包括支持单/双向认证、X.509 证书、负载均衡 SSL 等多种安全认证。你可以为 EMQX 支持的所有协议启用 SSL/TLS,也可…...
4399面试总结C/C++游戏开发
主要流程 首先询问了C/C知识点 然后询问操作系统,计算机组成,数据结构,计算机网络哪两门熟悉 涉及的相关问题 多态的概念 tcp,udp? tcp,udp区别 tcp可靠,udp不可靠 tcp这个链接的过程? 一个TCP连接必须要经过三次“…...
hashlib 模块学习
hashlib 是 Python 标准库中用于散列和摘要算法的模块。散列算法将输入数据转换为固定长度的散列值(也称为摘要),并且对于相同的输入始终生成相同的散列值。这对于存储密码、数字签名、数据完整性验证等领域非常有用。以下是对 hashlib 模块的…...
大模型开发05:PDF 翻译工具开发实战
大模型开发实战05:PDF 翻译工具开发实战 PDF-Translator 机器翻译是最广泛和基础的 NLP 任务 PDF-Translator PDF 翻译器是一个使用 AI 大模型技术将英文 PDF 书籍翻译成中文的工具。这个工具使用了大型语言模型 (LLMs),如 ChatGLM 和 OpenAI 的 GPT-3 以及 GPT-3.5 Turbo 来…...
LeetCode 43题:字符串相乘
题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2", num2 "3&…...
基于java Swing 和 mysql实现的飞机订票系统(源码+数据库+ppt+ER图+流程图+架构说明+论文+运行视频指导)
一、项目简介 本项目是一套基于java Swing 和 mysql实现的飞机订票系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过…...
Jmeter性能综合实战 —— 签到及批量签到
提取性能测试的三个方面:核心、高频、基础功能 签 到 请 求 步 骤 1、准备工作: 签到线程组n HTTP请求默认值n HTTP cookie 管理器n 首页访问请求n 登录请求n 查看结果树n 调试取样器l HTTP代理服务器 (1)创建线程组 …...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

