【性能测试一】性能测试概述

目录

🌟一、性能测试的基础概念

🌈1、生活中软件相关的性能问题?

🌈2、性能测试的概念

🌈3、性能测试与功能测试的区别?

🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?

🌈5、哪些因素会影响到软件的性能?

🌈6、为什么要进行性能测试?

🌟二、性能测试常见专业术语以及衡量指标(重要)

🌈1、常见专业术语

🌈2、性能测试的分类

🌈3、性能测试如何展开?


🌟一、性能测试的基础概念

🌈1、生活中软件相关的性能问题?

比如:双十一预售活动淘宝服务器崩溃;抖音崩溃。

常见的性能问题:系统内部及软件的代码实现

(1)资源泄露,包括内存泄露;

(2)CPU使用率达到100%,系统被锁定;

(3)线程死锁,阻塞等造成系统越来越慢;

(4)查询速度慢,或者列表的效率低;

(5)受外部系统影响越来越大。

🌈2、性能测试的概念

性能测试:测试人员借助性能测试工具模拟系统在不同情况下性能指标是否正常。

🌈3、性能测试与功能测试的区别?

(1)功能测试:只是是验证软件的特性是否实现;

(2)性能测试:保证在一些极其恶劣的环境下能否正常使用:比如用户人太多,流量使用大的情况下。

性能测试是在功能测试完成后执行。

🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?

 

🌈5、哪些因素会影响到软件的性能?

(1)硬件方面:服务器CPU,服务器内核数量,内存,磁盘,网络带宽;

(2)软件方面:编程语言(C++,Java),算法;

(3)用户:用户数量,用户操作频率(比如1s,向服务器发送10w个HTTP请求,服务器可能会崩溃)

🌈6、为什么要进行性能测试?

(1)获取系统性能的指标,作为性能指标的基准

(2)验证系统的性能指标是否达到要求(性能需求

  • 应用程序能否能够满足系统要求中的各项性能指标
  • 应用程序是否能处理预期的用户负载并有 盈余能力;
  • 应用程序能否处理业务所需要的事务数量
  • 在预期和非预期的用户负载下,应用程序是否稳定
  • 是否能确保与用户在真正使用软件的时候获取舒服的体验。

(3)发现系统的性能瓶颈,内存泄露等问题

(4)系统正常工作的情况下的最大容量

(5)帮助系统运维部门更好的规划硬件配置


🌟二、性能测试常见专业术语以及衡量指标(重要)

🌈1、常见专业术语

(1)并发:软件在运行过程中,有大量的用户同时访问

(2)并发用户数:大量用户,请求系统,此时的用户数量就是并发用户数量。

(3)并发请求数:大量用户,请求系统,此时服务器接收的请求数量。

(4)用户数

  • 系统用户数:简单地说就是该系统的注册用户数;
  • 在线用户数:登录系统的用户数量;
  • 并发用户数:同时对系统发起请求对应的用户数量。

系统用户数>在线用户数>并发用户数(在系统限制用户登录成功才能访问系统的条件下)

(5)响应时间:越短越好

  • 用户响应时间:从N1+A1+N2+A2+N3+A3+N4的过程时间。用户从发起请求到接收到响应花费的时间。
  •  请求响应时间:服务器接收到请求到服务器发出相应的时间段:A1+N2+A2+N3+A3

 (6)事务

  • 事务:此时的事务是针对一个业务单位来定义的。
  • 事务响应时间:服务处理一个事务花费的时间。每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
  • 每秒事务通过数:TPS 是指每秒系统能够处理的事务数。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。

 (7)点击率每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。

(8)吞吐量:指一次请求,用户和服务器之间的数据传输量。直接体现软件系统的性能承载能力。

 程序1:10s处理数据10M;

 程序2: 1h处理数据100M;

不能说明程序1快。因此吞吐量并不能衡量一系列的问题。

吞吐率:size/time。数据的吞吐量/时间。

吞吐率越低表示软件性能越好,吞吐率越大证明软件性能越不好。

(9)思考时间:指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。

(10)资源利用率:不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。

🌈2、性能测试的分类

(1)基准性能测试:让系统在正常情况下运行,观察系统的性能指标是否正常。

        为什么要进行性能测试?因为要拿着前一个版本的性能指标和当前软件的性能指标进行对比。

(2)负载测试

让系统背负一定的压力,让系统运行一定时间,观察系统是否存在性能拐点。

(3)压力测试

让系统处于极限或者饱和状态,观察系统的性能指标(压力测试会将系统搞崩溃)。

(4)可靠性测试

将系统进行持续运行,观察系统性能是否出现异常。比如系统先运行1天,看有没有异常现象,再看一周观察,再看一个月,最后看一年。用4个9或者5个9来表示系统的可靠性高。

🌈3、性能测试如何展开?

(1)功能测试流程:

需求分析——>测试计划——>测试开发——>测试设计——>测试执行——>测试评估

(2)性能测试流程:

需求分析(分析的是性能需求)——>测试计划(确定一个性能测试工具)——>测试开发(性能测试脚本的编写)——>测试执行(跑脚本)——>测试评估(产生一个测试报告,将性能问题写在测试报告中,优化方案是什么)

性能测试的时候发现的问题不叫bug,叫做性能瓶颈;

性能测试的时候,开发进行的修复不叫修复,叫优化。


 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络协议TCP/IP 协议学习笔记一

T C P / I P通常被认 为是一个四层协议系统,每一层负责不同的功能: 1) 链路层,有时也称作数据链路层或网络接口层, 通常包括操作系统中的设备驱动程序和计算机 中对应的网络接口卡。它们一起处理与电缆(或其他任何传输…

黑客常用cmd命令(window版)

1、ping命令 ping命令是一个常用的网络工具,用来测试和诊断网络连接状况。通过发送ICMP(Internet控制消息协议)数据包到目标主机,并接收回复的数据包,可以测量目标主机的可达性、平均响应时间等指标。 在Windows操作…

【C++】哈希的应用

文章目录 一、位图1. 位图的引入2. 位图的实现3. 位图的应用4. 哈希切割 二、布隆过滤器1. 布隆过滤器的引入2. 布隆过滤器的实现3. 布隆过滤器的应用4. 布隆过滤器的总结 一、位图 1. 位图的引入 我们先来看一道面试题: 给40亿个不重复的无符号整数,没…

Spring Boot 如何使用 @RequestParam 进行数据校验

Spring Boot 如何使用 RequestParam 进行数据校验 在 Web 应用程序中,用户提交的数据通常以请求参数的形式传递。在 Spring Boot 中,可以使用 RequestParam 注解来获取请求参数。但是,如何确保这些请求参数的有效性呢?在本文中&a…

APP测试面试题快问快答(五)

21. App自动化你用的什么工具? 框架:Appium 编译环境和工具:python3.7和PyCharm 环境:Android sdk 第三方模拟器:夜神、蓝叠等模拟器 定位工具:uiautomatorviewer 实时日志查看:ddms 22.…

智慧加油站卸油作业行为分析算法 opencv

智慧加油站卸油作业行为分析系统通过opencvpython网络模型技术,智慧加油站卸油作业行为分析算法实现对卸油作业过程的实时监测。当现场出现卸油作业时人员离岗,打电话人员抽烟等违规行为,灭火器未正确摆放,明火和烟雾等异常状态&a…

TypeScript零基础入门之背景介绍和环境安装

一、什么是TypeScript TypeScript是一种由微软开发和维护的开源编程语言。它是JavaScript的超集,意味着任何JavaScript程序都是一种有效的TypeScript程序。TypeScript添加了静态类型、类、接口、枚举和命名空间等概念,同时支持ES6特性。TypeScript被视为…

Kubernetes入门实战课-初始容器

Kubernetes入门实战课-初始容器 文章目录 Kubernetes入门实战课-初始容器课前准备初始容器Docker 的形态Docker 的安装Docker 的架构 容器的本质隔离原因与虚拟机区别隔离是怎么实现的 镜像创建容器镜像:如何编写正确、高效的Dockerfile镜像的内部机制是什么Dockerf…

Spring介绍

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:JavaEE、Spring 目录 1、Spring简介2、轻量级和非侵入性3、IoC容器4、AOP支持5、声明式事务管理6、数据访问支持…

【基于Django框架的在线教育平台开发-02】用户注册功能开发

用户注册功能开发 文章目录 用户注册功能开发1 模型层开发2 视图层开发3 配置urls.py4 表单验证5 模板层开发6 效果展示 1 模型层开发 用户数据表如下所示: FieldTypeExtraidintPrime Key & Auto Incrementpasswordvarchar(128)last_logindatetime(6)Allow Nu…

第八章 模型篇:transfer learning for computer vision

参考教程: transfer-learning transfer-learning tutorial 文章目录 transfer learning对卷积网络进行finetune把卷积网络作为特征提取器何时、如何进行fine tune 代码示例加载数据集构建模型fine-tune 模型模型作为feature extractor 定义train_loop和test_loop定…

Docker常见使用

Docker常见使用 1、Docker安装 ## 下载阿里源repo文件 $ curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo $ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum clean …

工业相机的镜头如何选择?

相机的镜头如何计算,如果看公式的话,需要知道相机sensor的尺寸,相元的尺寸,计算起来数据也比较复杂,下面教大家一个简单的方法,就是如何借助镜头计算工具来使用。 巴斯勒相机的镜头选型地址 工业镜头选型…

操作系统之死锁详解

本文已收录于专栏 《自考》 目录 背景介绍死锁的前提死锁的概念死锁的分类死锁的产生原因条件 死锁的解决预防避免检测与恢复 死锁的实现总结提升 背景介绍 最近一直在做操作系统的测试题,在做题的过程中发现有很多地方涉及到了关于死锁的知识点。今天就回归课本来自…

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT

哈工大计算机网络课程网络层协议详解之:网络地址转换NAT 文章目录 哈工大计算机网络课程网络层协议详解之:网络地址转换NAT网络地址转换(NAT)NAT实现原理NAT穿透问题NAT穿透问题的解决方案 上一节中,我们在DHCP协议中介…

【人脸检测——基于机器学习4】HOG特征

前言 HOG特征的全称是Histograms of Oriented Gradients,基于HOG特征的人脸识别算法主要包括HOG特征提取和目标检测,该算法的流程图如下图所示。本文主要讲HOG特征提取。 HOG特征的组成 Cell:将一幅图片划分为若干个cell(如上图绿色框所示),每个cell为8*8像素 Block:选…

【力扣刷题 | 第十四天】

目录 前言: 7. 整数反转 - 力扣(LeetCode) 面试题 16.05. 阶乘尾数 - 力扣(LeetCode) 总结; 前言: 今天仍然是无固定类型刷题, 7. 整数反转 - 力扣(LeetCode) 给你…

Android大图加载优化方案,避免程序OOM

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如微博长图,海报等等。所以我们就要对图片进行局部显示。 大图加载基本需求…

Redis入门(5)-set

Redis中set的元素具有无序性与不可重复性 1.sadd key member[member] 添加元素,若元素存在返回0若不存在则添加 sadd DB mysql oracle sadd DB mysql sadd DB db22.smembers key 查看set中所有元素 smembers DB3.sismember key member 判断元素在set中是否存…

GIS 功能模块实现

文章目录 1. GIS 模块流程图2. 网页端地图缓存的实现3. GIS 图形操作功能实现1 )地图漫游2 )对象删除3 )选择复制属性查看 GIS 基本功能模块主要是在表现层开发的,是在OpenLayers 开发框架提供的接口上,通过Geo Server…