【软件测试】性能测试相关指标

news2024/9/22 5:40:23

性能测试

了解性能测试相关指标

1.什么是做性能测试

1.1 生活中遇到的软件性能问题

软件用着用着就不能用了,一看热搜,发现该软件的服务器崩崩溃了。

1.2 性能测试定义

测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否满足需求。

1.3 性能测试和功能测试的区别

  • 功能测试依靠人工去执行。性能测试依靠工具完成。
  • 功能测试:验证软件是否实现了需求。不管在什么场景下,只要能够正常运行即可。
  • 性能测试:在软件能够正常运行的前提下。软件在极端的情况下,是不是能正常运行。

性能测试是在功能测试之后执行的。

1.4 什么样的表现属于软件性能好的表现

相应时间短,资源利用率高,日活跃用户数多,吞吐量大。

  • 一个软件登录时间3ms比登录时间3s的性能要好
  • 软件日活跃用户数多的,比日活跃用户数少要性能好
  • 软件由于用户访问次数多,软件采用了较少并发数,软件算法优化,服务器升级的软件性能比用户访问人数一多就崩溃的软件好。

image-20231128172205669

DAU:日活跃用户数。

1.5 影响一个软件性能因素

  • 硬件:服务器CPU利用率,内存,磁盘操作频率,CPU核心数,网络带宽。
  • 软件:实现软件的算法,编写软件的编程语言
  • 用户:用户数量,用户使用时长,用户的使用频率

为什么要做性能测试?

  • 获取系统性能的指标,作为性能指标的基准(基准性能测试)
  • 验证系统的性能指标是否达到要求(性能需求)
    • 应用程序是否能够满足系统要求的各种性能指标
    • 应用程序是否能处理预期的用户负载并有盈余能力
    • 应用程序是否能处理业务所需要的事务数量
    • 在预期和非预期的用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验
  • 发现系统的性能瓶颈,内存泄漏等问题。
  • 系统正常工作的情况下的最大容量。
  • 帮助系统运维部门能更好的规划硬件配置

2.性能测试常见术语以及衡量指标

2.1 并发:

  • 1个用户访问该网站(×)
  • 100万个用户每隔10s时间访问该网站(×)
  • 100万个用户同时访问该网站(√)

并发要满足大量用户同时访问

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

后端服务器层面的并发用户数 >= 业务层面的并发用户数

2.2 用户数:

  • 系统用户数:系统注册用户数(数据库对其进行维护,不一定访问系统,不访问的不会对系统产生压力)
  • 在线用户数:成功登录系统的用户数(相当于qq登录上账号了 ,停留在登录成功页面。并不会对系统产生压力)
  • 并发用户数:大量用户同时访问系统,此时访问的用户数就是并发用户数。

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

2.3响应时间

image-20230918081412023

用户响应时间:发出请求开始,到客户端接收完所有的字节数据所消耗的时间 N1+A1+N2+A2+N3+A3+N4

请求响应时间:服务器收到请求发出相应这段时间是请求响应时间。A1+N2+A2+N3+A3

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

用户设备,网络带宽,服务器的配置(CPU,内存),软件算法逻辑,数据库性能

2.4 事务

数据库的事务就是把多个操作打包到一起,构成原子操作。

性能测试中,事务指的是指一组密切相关的子操作的组合 ,比如一次登录、一次筛选条件查询,一次支付等;

  • 事务响应时间:用户完成某个具体事务(比如支付操作)所需要的时间。
  • 358原则:对于一般系统而言,如果用户点击按钮后,系统可以在3秒钟内得到应答,则用户比较满意;如果系统在5秒内得到应答,则用户能够忍受;如果系统在8秒后得到应答,则用户不能忍受
  • 每秒事务通过数: 处理的事务数量/事务花费的时间, 每秒事务通过的数量越多说明软件性能越好的。

TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。这个指标衡量了系统在同一时间内处理业务的最大能力。 当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变

2.5 点击率

点击量:用户点击发送的http请求数,并不能衡量软件性能

点击率:点击量/时间

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

2.6 吞吐率

吞吐量:用户一次请求和服务器之间的数据交互量。并不能衡量软件性能

吞吐率:吞吐量/时间。吞吐率越高软件性能越好

2.7 思考时间

用户在对软件进行操作的时候,每一个操作中间的时间间隔。

2.8 资源利用率

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

面试题:了解性能测试,那么你给我说一下你做性能测试的时候,你关注哪些指标?

image-20231128172317966

3.性能测试的分类

基准性能测试

定义:让系统在正常情况下运行,观察性能指标。建立一个性能基准,作为以后性能测试的参考。

应用场景:软件刚上线需要对性能进行摸底,软件进行升级后,性能测试的参考,衡量软件是变好了还是变坏了。

负载性能测试

验证软件在一定的压力情况下运行,观察性能指标是否出现拐点。

压力性能测试

系统处于临界饱和的情况下,观察系统性能指标。(往往会把系统搞崩溃)

可靠性测试

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

持续1day -> 持续运行一周 -> 持续运行1个月 -> 一个季度 -> 一年

如果持续一天没问题就持续一周,如果持续一周没问题就持续一个月……

可靠性就是可用性,正常使用时间的占比。可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)* 100*%*可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%

如果可用性达到99.99%,对于一个全年不间断(7*24的方式)运行的系统,意味着全年(252600min)不能

正常工作的时间只有52min,不到一个小时。

如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min 。

可靠性测试靠人为是达不到要求的,需要借助工具比如(loadrunner)

造成可靠性降低的原因:软件硬件出现问题,网络故障出现问题,自然灾害导致服务器损坏出现问题,停电。

4.性能测试的执行流程

功能测试的执行流程:需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估(发布测试报告)→ 上线

性能测试的执行流程:需求分析→测试计划→选择一款性能测试工具→性能测试脚本编写→执行性能测试脚本→产生性能测试报告

性能测试中出现了不符合预期的情况,我们不叫做BUG,叫做性能瓶颈

在性能测试中,出现了性能瓶颈,开发修复的过程叫做优化

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

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

相关文章

QT6 Creator编译KDDockWidgets并部署到QT

为什么使用KDDockWidgets 为什么使用KDDockWidgets呢? 首先它是一个优秀的开源dock库,弥补QDockWidget的不足,详情见官网。 其次它支持QML,这是我最终选择这个dock库的主要原因,因为最近在考虑将前端界面用QML做&…

[Linux ] sed文本处理和免交互

一、sed 1.1 sed是什么 sed 是一种流编辑器(stream editor),用于对文本数据进行文本转换和处理。它通常被用于在命令行中执行文本编辑任务,可以对输入的文本进行搜索、替换、删除等操作,并将结果输出。sed 是一个非交…

项目中的svg图标的封装与使用

1.安装 npm install vite-plugin-svg-icons -D2.在vite.config.ts中配置 **所有的svg图标都必须放在assets/icons // 引入svg import { createSvgIconsPlugin } from vite-plugin-svg-iconsexport default defineConfig({plugins: [vue(),createSvgIconsPlugin({iconDirs: [p…

Java第十二篇:连接安全版kafka(Kerberos认证)出现的问题解答

Could not find a ‘KafkaClient’ entry in the JAAS configuration 问题现象 问题原因 原因没有找到,怎么引起的倒是很清楚。原因就是找到不到指定路径下的kafka_client_jaas.conf文件,别看我的路径带了两个//,但没问题的,等同…

实战中使用的策略模式,使用@ConditionalOnProperty实现根据环境注册不同的bean

场景复现 举个例子,针对不同的设备的内存的不同加载一些资源的时候需要采取不同的策略,比如,在内存比较大的设备,可以一次性加载,繁殖需要使用懒加载,这个时候我们就可以采用配置文件配置中心去控制了 Cond…

.NET生成微信小程序推广二维码

前言 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了。今天接到一个需求就是生成小程序码,并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种二维码就可以进入小程序。为了…

智能学习台灯_AI摄像头学习机基于MTk8175方案

智能学习台灯是一款专为中小学生设计的学习辅助工具,具有多项突出的参数和功能。首先,它采用了基于联发科MTK平台的解决方案,内置了12纳米四核Cortex-A53处理器,提供了稳定而高效的性能。操作系统方面,智能学习台灯运行…

Java17(LTS Long Term Support)特性

支持JDK17的主流技术框架 spring framework 6.xspringboot 3.xkafka 3.0(不在支持jdk8)jenkins 2.357(必须jdk11起步)James Gosling表示赶紧弃用Java8,使用性能最好的JDK17Chart GPT也推荐JDK17,从长期到性能来说。 JDK17的特性 …

如何使用ArcGIS实现生态廊道模拟

生态廊道是指一种连接不同生态系统的走廊或通道,其建立有助于解决人类活动对野生动植物栖息地破碎化和隔离化的问题,提高生物多样性,减轻生态系统的压力。在城市化和农业开发不断扩张的背景下,生态廊道对于野生动植物的生存和繁衍…

了解 Navicat 的连接配置文件

Navicat 16 拥有了许多改进和新功能,以满足数据库开发人员和管理员的需求。凭借 100 多种增强功能和一个全新的界面,有比以往更多的方法去构建、管理和维护数据库。众多改进中,旨在最大限度地提高生产率的一个改进是配置多个连接配置文件的能…

unity3d 旋转cube时变形

将cube移到父路径同级,重置再,更改角度,或者将父路径先重置,再将cube移动到父节点下面

2020年6月9日 Go生态洞察:VS Code Go扩展加入Go项目

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

反射、枚举以及lambda表达式

1. 反射 1.1 定义 java的.class文件在运行时会被编译为一个Class对象,既然是对象,那么我们就可以通过一定的方式取到这个对象,然后对于这个对象进行一系列操作(改变原本类的属性、方法)。 这个操作就是反射&#xf…

基于模块暴露和Hilt的Android模块化方案

ModuleExpose 项目地址:https://github.com/JailedBird/ModuleExpose 序言 Android模块化必须要解决的问题是 如何实现模块间通信 ?而模块之间通信往往需要获取相同的实体类和接口,造成部分涉及模块通信的接口和实体类被迫下沉到基础模块&…

使用 Mybatis 的 TypeHandler 存取 Postgresql jsonb 类型

文章目录 使用 TypeHandler 存取 Postgresql jsonb 类型常见错误column "" is of type jsonb but expression is of type character varying 使用 TypeHandler 存取 Postgresql jsonb 类型 首先在数据库表中定义 jsonb 类型: create table tb_user_info…

Unity中Shader的BRDF解析(四)

文章目录 前言一、BRDF 中的 IBL二、解析一下其中的参数1、光照衰减系数 :surfaceReduction2、GI镜面反射在不同角度下的强弱 :gi.specular * FresnelLerp (specColor, grazingTerm, nv);在BRDF中,IBL(Image Based Light&#xff…

Shell编程基础 – for循环

Shell编程基础 – for循环 Shell Scripting Essentials - for Loop 大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次,无论是输入数十次,还是输出数十次,对用户来说都不现实。 因此,我们考虑如何用好Bash Shell编…

一个人撸码!之vue3+vite+element-plus后台管理(标签页组件)

一个后台管理常常需要一个标签页来管理已经打开的页面,这里我们单独写一个组件来展示标签页数组。 该标签页组件只做展示不涉及操作数据。标签页数组可记录已打开的数组,还能定义什么页面需要缓存,是一个重要的功能呢。 首先,建立…

【华为OD题库-043】二维伞的雨滴效应-java

题目 普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携带并落到地面,随着日积月累,地面会呈现伞坠的信息。 1、为了…

FlowJo 10 v10.4(流式细胞分析软件)

FlowJo是一款广泛应用的流式细胞数据分析软件,它功能强大,简单易用,是流式领域最受推荐的一款专业分析软件,也是各高影响力科学期刊使用最多的软件,已经成了行业的一个标准。 FlowJo具有全面专业的分析功能&#xff0…