软件测试教程 性能测试概论

news2024/9/30 17:29:58

文章目录

  • 1. 性能测试实施的流程
    • 1.1 常见的性能问题
    • 1.2 性能测试是什么?
    • 1.3 性能测试和功能测试之间的区别
    • 1.4 什么样的系统/软件表现属于性能好,什么样的软件性能表现属于性能不好
    • 1.5 为什么要进行性能测试
    • 1.6 性能测试实施的流程
    • 1.7 常见的性能指标以及性能测试专用术语
      • 1.7.1 并发数
      • 1.7.2 响应时间/平均响应时间
      • 1.7.3 事务响应时间
      • 1.7.4 每秒事务通过数(Transaction Per Second)
      • 1.7.5 点击率
      • 1.7.5 吞吐量
      • 1.7.6 吞吐率
      • 1.7.7 思考时间
      • 1.7.8 资源利用率
    • 1.8 性能测试分类
      • 1.8.1 基准性能测试
      • 1.8.2 负载性能测试
      • 1.8.3 压力测试
      • 1.8.4 可靠性测试

1. 性能测试实施的流程

1.1 常见的性能问题

以下是常见的性能问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 性能测试是什么?

测试人员借助测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期

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

功能测试:

  • 人工来完成
  • 在一些常见的场景下,只要能运行就可以

性能测试:

  • 借助工具完成
  • 在一些极端的情况,需要保障软件可以正常工作

在这里插入图片描述

1.4 什么样的系统/软件表现属于性能好,什么样的软件性能表现属于性能不好

在这里插入图片描述
软件1(美团1.0版本)和软件2(美团2.0)版本是一样的功能,登录,退出,查看首页

软件1 登录需要花费 1s,软件2 登录需要花费 1ms

说明软件2 性能做了提升,软件2 性能较好

1.5 为什么要进行性能测试

  • 获取系统性能的指标,作为性能指标的基准
  • 验证系统的性能指标是否达到要求(性能需求)
  • 发现系统的性能瓶颈,内存泄漏等问题
  • 系统正常工作的情况下的最大容量
  • 帮助系统运维部门能更好的规划硬件配置

1.6 性能测试实施的流程

  • 分析性能测试需求
  • 根据性能测试的目标,设计性能测试的场景
  • 开发性能测试场景和性能测试脚本
  • 分析性能测试报告
  • 根据性能测试报告排查和定能系统的性能瓶颈

1.7 常见的性能指标以及性能测试专用术语

1.7.1 并发数

我们先来举个栗子:

一个人踢正步往前走,脚步声不响亮
一大群迈着不同的节奏踢正步往前走,声音是混乱的
只有一大群的人迈着相同的步伐,往前走的时候,声音是非常响亮的

对地面来讲,这就是并发
在这里插入图片描述


双十一的时候,有 100 万的用户,同时操作淘宝系统,此时淘宝系统承载的压力就非常大


由上面的例子可以看出:

并发条件:大量用户、同时操作
并发数:此时大量用户数并发数

系统用户数:数据库保存的用户数量
在线用户数:登录成功后的用户数量
并发用户数:当系统达到并发的时候,用户的数量即为并发用户数

1.7.2 响应时间/平均响应时间

从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间
在这里插入图片描述

  1. 用户响应时间
    用户从发起请求到用户看到响应 中间经历的这段时间
    N1 + A1 + N2 + A2 + N3 + A3 + N4
  2. 请求响应时间
    服务器接受到请求到发出响应这段时间
    A1 + N2 + A2 + N3 + A3

问题:如果一个软件(滴滴)发布上线了,但是打车的时候,页面响应时间较长,有哪些可能影响的因素呢?

  • 用户设备老旧
  • 网络太慢
  • 服务器处理太慢
  • 软件算法时间复杂度太高
  • 数据库性能太差

1.7.3 事务响应时间

每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。

这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。

比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。

事务从请求开始,到事务响应成功花费的时间就是事务响应时间

1.7.4 每秒事务通过数(Transaction Per Second)

TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。

如果每秒事务通过数越大,代表系统处理的能力越高、越强

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


例子:
YB地铁检票机:
只有10台进站检票的机器,1台机器1秒能进1个人
并发用户数为5,则TPS为5
并发用户数为10,则TPS为10
并发用户数为100,则TPS仍为10

1.7.5 点击率

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

这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求

1.7.5 吞吐量

吞吐量:
用户每次请求和服务器之间的数据交换
在这里插入图片描述
跑车跑 10 公里,需要 2min 时间
自行车 100 公里,需要两天
但是并不能就说跑车比自行车快

1.7.6 吞吐率

吞吐率:
吞吐量/请求时间
size/time

1.7.7 思考时间

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

1.7.8 资源利用率

不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
在任务管理器可以看到
在这里插入图片描述

1.8 性能测试分类

1.8.1 基准性能测试

系统的第一个版本,研发团队团队也不清楚系统的性能能达到怎样的水平,这时进行的性能测试,其目标是获得系统标准配置下,有关的性能指标数据,作为将来性能改善的基准,这种测试称之为"性能基准测试"。

性能基准测试是通过性能测试获取系统的性能指标,建立一个性能基准,作为以后性能测试的参考。

系统进行性能基准测试可以在系统开发的较早的阶段发现性能问题

总的来说:性能测试就是让系统在正常情况下运行,观察各种性能指标

应用场景:软件性那你摸底

1.8.2 负载性能测试

让系统背负一定的压力,观察性能指标是否出现拐点

1.8.3 压力测试

让系统处于饱和状态,观察系统性能指标


压力测试往往会把系统搞崩溃
在这里插入图片描述

1.8.4 可靠性测试

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

一段时间可能是一周、一个月、一年…

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

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

相关文章

基于ssm汽车养护管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

ASP .Net Core 配置集合 IConfiguration 的使用

🐳简介 IConfiguration 是 ASP.NET Core 中的一个接口,用于表示配置集合。以下是关于 IConfiguration 的详细介绍: 作用:IConfiguration 允许开发人员从各种来源(如文件、环境变量、命令行参数等)读取应用…

PySide6-YOLO8目标检测、追踪可视化界面

目录 项目地址实现效果DetectTrack 项目地址 https://github.com/zhengjie9510/pyside-yolo 实现效果 Detect Track

【蓝牙协议栈】【BLE】低功耗蓝牙配对绑定过程分析(超详细)

1. 精讲蓝牙协议栈(Bluetooth Stack):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅,【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…

网络层(IP层)

IP协议的本质:有将数据跨网络传输的能力 而用户需要的是将数据从主机A到主机B可靠地跨网络传输 IP的组成:目标网络目标主机 IP由目标网络和目标主机两部分组成,IP报文要进行传输,要先到达目标网络,然后经过路由器转到…

Unity3d Shader篇(十六)— 模拟雪的Shader

文章目录 前言一、什么是模拟雪的Shader?1. 雪Shader原理2. 雪Shader优缺点优点:缺点: 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数6. 控制雪大小的脚本 三、效果四、总结 …

AI大模型学习:理论基石、优化之道与应用革新

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

数组三(冒泡排序、二分查找)

目录 冒泡排序算法 冒泡排序的基础算法 冒泡排序的优化算法 二分法查找 冒泡排序算法 冒泡排序是最常用的排序算法,在笔试中也非常常见,能手写出冒泡排序算法可以说是 基本的素养。 冒泡排序的基础算法 冒泡排序算法重复地走访过要排序的数列&#…

GUROBI的数据结构

为了在GUROBI中能够更加高效地建模,Python API内置了三种特殊的数据结构,方便根据下标来查找数据。注意在使用这三种数据结构之前需要 import gurobipy as gp multidict 一、普通字典dict()的用法 小结:普通字典dict()只有一个返回值&…

Java代码基础算法练习-数位交换-2024.03.23·

任务描述: 输入一个三位整数,将其个位和百位交换后输出 任务要求: package march0317_0331;import java.util.Scanner;public class m240323 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out…

PointNet++论文复现(二)【最远点采样-球查询-采样和分组 代码详解】

最远点采样-球查询-采样和分组-代码详解 专栏持续更新中!关注博主查看后续部分! 最远点采样、球查询等位于 pointnet2_utils.py 定义 点云坐标归一化 点云坐标归一化是一种预处理步骤,用于将点云数据标准化到一个统一的尺度,通常是在一个特定的范围内,比如 [-1, 1] 或…

服务器运行一段时间后

自己记录一下。 一、查看目录占用情况 df -h 命令查看磁盘空间 du -ah --max-depth=1 / 查看根目录下各个文件占用情况 二、mysql日志清空 这个日志是可以清空的 echo > /usr/local/mysql/data/syzl-db2.log #将文件清空 说明: 这个文件这么大是因为,开启 …

[ C++ ] STL---反向迭代器的模拟实现

目录 前言: 反向迭代器简介 list反向迭代器的模拟实现 反向迭代器的模拟实现(适配器模式) SGI版本STL反向迭代器源码 STL库中解引用操作与出口设计 适配list的反向迭代器 适配vector的反向迭代器 前言: 反向迭代器是一种特殊类型的迭代器&#xf…

C语言函数和数组

目录 一.数组 一.一维数组: 1.一维数组的创建: 2.一维数组的初始化: 3.一维数组的使用 4.一维数组在内存中的存储: 二.二维数组: 三.数组越界: 四.数组作为函数参数: 二.函数 一.函数是什么&…

Redis I/O多路复用

I/O多路复用 Redis的I/o多路复用中,将多个连接放到I/O复用程序中,这个复用程序具体是什么,是Redis的主线程吗 在Redis的I/O多路复用机制中,“复用程序”实际上指的是操作系统提供的系统调用接口,如Linux下的epoll、sel…

Unity 学习日记 8.2D物理引擎

1.2D刚体的属性和方法 2.碰撞器

探索 Flutter 中的 NavigationRail:使用详解

1. 介绍 在 Flutter 中,NavigationRail 是一个垂直的导航栏组件,用于在应用程序中提供导航功能。它通常用于更大屏幕空间的设备,如平板电脑和桌面应用程序。NavigationRail 提供了一种直观的方式来浏览应用程序的不同部分,并允许…

【并发编程】锁相关公平锁和非公平锁?可重入锁锁的升级乐观锁和悲观锁版本号机制CAS 算法乐观锁有哪些问题?

目录 ​编辑 锁相关 公平锁和非公平锁? 可重入锁 锁的升级 乐观锁和悲观锁 版本号机制 CAS 算法 乐观锁有哪些问题? 锁相关 公平锁和非公平锁? 公平锁 : 锁被释放之后,先申请的线程先得到锁。性能较差一些,因…

第六届“传智杯”决赛 流水账 | 珂学家

前言 整体评价 有幸参加了第六届的传智杯决赛(A组),因为这个比赛是牛客协办,所以就写在这里。 作为Java选手,比赛中其实吃亏了,主要是T2吃了一发TLE,T4吃了一发莫名其妙的MLE。 顺便吐槽下T3,自测反馈WA…

局域网内的手机、平板、电脑的文件共享

在日常工作生活中,经常需要将文件在手机、平板、电脑间传输,以下介绍三种较为便捷的方法: 1.LocalSend 该软件是免费开源的,可以在局域网内的任意手机、平板、电脑间传递文件,并且任意一方都可以作为“发送方”和“接…