性能测试-理论

性能测试理论

  • 性能测试概述
    • 性能测试的概念
    • 功能测试与性能测试区别
  • 性能测试策略
    • 基准测试
    • 负载测试
    • 稳定性测试
    • 其他
      • 压力测试
      • 并发测试
  • 性能测试指标
  • 性能测试流程

性能测试概述

性能测试的概念

  • 什么是性能?
    • 软件质量属性中的“效率”特性
    • 时间特性:表示系统处理用户请求的响应时间
    • 资源特性:表示系统运行过程中,系统资源的消耗情况。资源包括:CPU、内存、磁盘等
  • 什么是性能测试?
    • 使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
  • 性能测试的目的?
    • 1、评估当前系统能力
      • 验收第三方提供的软件
      • 获取关键的性能指标,与其他类似产品进行比较
    • 2、寻找性能瓶颈,优化性能
    • 3、评估软件是否能够满足未来的需要

功能测试与性能测试区别

  • 焦点不同
    • 功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向)
    • 性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务场景的满足(时间、资源)
  • 有什么关系?
    • 性能测试并不是必要的
    • 先做功能,再做性能

性能测试策略

基准测试

  • 狭义上讲,就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。
    但用户测试并不是只测试一次,而是大量重复测试。
  • 广义上讲,是一种测试和评估软件性能指标的活动。建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响
  • 基准测试数据的用途?
    • 基准测试不会单独存在
    • 为多用户并发测试和综合场景测试等提供参考依据
    • 为系统/环境配置、系统优化前后的性能提升/下降提供参考指标

负载测试

通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试。

稳定性测试

在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器满足线上业务需求。

其他

压力测试

  • 为什么要进行压力测试

    • 1、软件实际使用时,用户量超过预取(系统最大负载量),该如何反应?
    • 2、软件由于意外情况出现问题,多久能够恢复?
  • 压力测试概念

    • 在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力可恢复能力
  • 压力测试场景

    • 极限负载下导致系统崩溃的破坏性压力测试
    • 高负载下的长时间的稳定性压力测试

并发测试

并发测试(绝对并发):在极短的时间内,发送多个请求,来验证服务器并发的处理能力。

  • 应用场景:特定活动场景如抢红包、秒杀、抢购等

性能测试指标

  • 响应时间
    指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。(不包括前端渲染时间)

  • 并发数
    某一时刻同时向服务器发送请求的用户数

  • 吞吐量
    单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力

    • 从业务角度
      • 业务数/小时、业务数/天、访问人数/天、页面访问量/天
    • 从网络角度
      • 字节数/小时、字节数/天
    • 从技术角度
      • 每秒事务数(TPS)即控制服务器每秒处理的事务请求的数量、每秒查询数(QPS)即控制服务器每秒处理的指定请求的数量
  • 点击数
    指客户端向服务端发送请求时,所有的页面资源元素(如:图片、链接、框架css、js等)的请求总数量
    注意:只有web项目才有此指标;点击数不是页面上的一次点击

  • 错误率
    指系统在负载情况下,失败业务的概率。失败率=(失败业务/业务总数)*100%
    注意:大多数系统都会要求错误率无限接近于0;错误率是一个性能指标,不是功能上的随机bug

  • 资源利用率
    指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据

    • CPU使用率
    • 内存使用率
    • 磁盘IO速率
    • 网络速率

性能测试流程

  1. 性能测试需求分析
    • 明确被测系统
      • 业务功能、技术架构
    • 明确测试内容
      • 业务角度:用户使用频率较高的关键业务功能
      • 技术角度:逻辑复杂度高的业务、数据量大的业务
    • 明确测试策略
      • 负载测试、并发测试、稳定性测试…
    • 明确测试指标
      • 有明确需求指标:执行结果与预期指标进行对比
      • 无明确需求指标:查找资料、类似的系统对比、对未来流量的预估
  2. 性能测试计划及方案
    • 测什么
      • 项目背景
      • 测试目的
      • 测试范围
    • 谁来测
      • 进度与分工
      • 交付清单
    • 怎么测
      • 测试策略
  3. 性能测试用例设计
    • 用例名称
    • 用例编号
    • 用例描述
    • 前置条件
    • 用例步骤
    • 期望结果
    • 实际结果
      • 并发用户数与事务响应
      • 并发用户数与服务器性能
      • 并发用户数与数据库性能
  4. 性能测试执行
    • 搭建测试环境
      • 包括硬件环境、软件环境、网络环境
    • 编写测试脚本
      • 使用性能测试工具进行编写测试脚本
    • 性能测试监控
      • 在脚本执行前,配置各项性能的监控指标
    • 执行测试脚本
      • 设置性能运行场景,执行性能测试,并同步收集各项性能指标
  5. 性能分析和调优
    • 性能测试分析人员经过对结果的分析后,如果不符合性能需求,则会提出性能bug,如何由开发人员进行后续的调优
  6. 性能测试报告总结
    • 测试报告是对性能测试工作的总结,为软件后续验收和交付打下基础
    • 测试报告的主要内容
      • 测试工作的经过回顾
      • 缺陷分析和调优
      • 风险评估
      • 性能测试结果
      • 测试工作总结与改进

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

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

相关文章

矩阵式键盘接口设计(用单片机读取4x4矩阵式键盘的键号,并将其显示在数码管上)(Proteus 与Keil uVision联合仿真)

一、实验原理 1、分析电路中按键状态检测的方法。 矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列交叉点上,见图5-26,一个44的行、列结构可以构成一个16个按键的键盘&…

FastAPI框架使用枚举来型来限定参数、FastApi框架隐藏没多大意义的Schemes模型部分内容以及常见的WSGI服务器Gunicorn、uWSGI了解

一、FastAPI框架使用枚举来型来限定参数 FastAPI框架验证时,有时需要通过枚举的方式来限定参数只能为某几个值中的一个,这时就可以使用FastAPI框架的枚举类型Enum了。publish:December 23, 2020 -Wednesday 代码如下: #引入Enum模块 from fa…

一张图片生成数字人的3D发型:技术创新与应用前景

随着人工智能(AI)和计算机图形学的不断进步,从单张肖像图像生成3D数字头发的技术正在变得越来越成熟。这项技术不仅能够处理复杂的编织和未编织发型,还能在虚拟现实、电影制作和美容行业中找到广泛的应用。本文将详细介绍一种创新的3D头发重建技术,探讨其关键特性、技术创…

Dit架构 diffusion范式分类+应用

1.ping 网址 2.ssh nscc/l20 3.crtl,打开vscode的setting 4.win 10修改ssh配置文件及其密钥权限为600 - 晴云孤魂 - 博客园 整体来看: 使用transformer作为其主干网络,代替了原先的UNet 在latent space进行训练,通过transformer处理潜…

搬砖 网盘一键转存源码

网盘一键转存源码,免费资源没测试 网盘一键转存源码,可以将您的百度网盘资源一键转存到。并支持后台设置开屏广告 源码截图: 下载地址: https://yuncv.lanzouw.com/i8dZk2btyl4h

04. maven 三种项目打包方式 pom、jar、war 的区别(记一次 Spring 项目启动报错)

文章目录 1. 记一次 Spring 项目启动报错1.1 现象1.2 分析1.3 过程复现 2. maven 项目三种打包方式的区别 1. 记一次 Spring 项目启动报错 1.1 现象 我在项目下创建了一个子模块,然后又将该子模块移除,之后启动报错,如下: com.…

深入理解 Java 对象的内存布局

对于 Java 虚拟机,都知道其内存区域划分成:堆、方法区、虚拟机栈等区域。但一个对象在 Java 虚拟机中是怎样存储的,相信很少人会比较清楚地了解。Java 对象在 JVM 中的内存布局,是了解并发编程同步机制的基础。 在 HotSpot 虚拟机…

通信工程学习:什么是IOT物联网

IOT:物联网 IOT物联网(Internet of Things,简称IoT)是一种通过信息传感设备,按约定的协议,将任何物体与网络相连接,以实现智能化识别、定位、跟踪、监管等功能的技术体系。以下是对IOT物联网的详…

Windows 通过 Docker 安装 GitLab

1. 安装 Docker Desktop 下载网站:Windows | Docker Docs 2. 拉取 GitLab Docker 镜像 打开 PowerShell 或 命令提示符,拉取 GitLab 镜像: docker pull gitlab/gitlab-ee:latest或则使用社区版: docker pull gitlab/gitlab-ce…

电脑无法无线投屏的解决办法

在前司的时候经常遇到电脑无法使用无线投屏器的情况,今天就来聊聊如何解决。 1.不会连接。这种情况,经常发生在WIN10升级WIN11之后,一般是两种办法,一种是同时按键盘上的WINDOWS和K键,右下角就会出来连接的图标&#…

showdoc二次开发

showdoc用的vue版本老,需要安装老版本nodejs,比如node 14.21.3 win32-x64-93_binding.node问题 https://github.com/sass/node-sass/releases 下载 web_src\node_modules\node-sass\vendor\win32-x64-93 下面重命名为binding.node 代理到php后端&…

2-114 基于matlab的CA模型

基于matlab的CA模型,Singer模型对单机动目标进行跟踪算法,具有10页实验文档。采用蒙特卡罗方法对一个二坐标雷达对一平面上运动的目标进行观测,得到跟踪滤波结果。程序已调通,可直接运行。 下载源程序请点链接:2-114 …

Crypto虐狗记---”你“和小鱼(八)

前言:剧情八 提示: 下载: 只给了公钥 那么可以用RsaCtfTool去分离公钥---》 得到(e,n): 如何安装参考: kail下安装RsaCtfTool - 九皋777 - 博客园 (cnblogs.com) 已知n,那么去得到p q 或者使…

OBOO鸥柏丨深圳科学展馆引入液晶拼接屏中控宣传协议互动大屏

科技馆的展厅展区,宛如一扇通往未来世界的璀璨窗口,巧妙融合了OBOO鸥柏LCD液晶拼接屏的尖端显示技术,液晶拼接墙与沉浸式体感交互的梦幻体验交织成一幅幅生动的科技画卷。这里,中控协议的精准对接,如同智慧之网的织就者…

whisper 实现语音识别 ASR - python 实现

语音识别(Speech Recognition),同时称为自动语音识别(英语:Automatic Speech Recognition, ASR),将语音音频转换为文字的技术。 whisper是一个通用的语音识别模型,由OpenAI公司开发。…

家具城管理平台———未来之窗行业应用跨平台架构

一、家具城商城管理数字化 家具城商城电子化管理优势显著。能实时精确掌控库存,及时补货并降低积压。通过销售数据的精准分析,把握市场需求,优化采购与营销。提升客户服务,记录购买历史以提供个性化体验。简化采购,自动…

leetcode 力扣算法题 快慢指针 双指针 19.删除链表的倒数第n个结点

删除链表的倒数第N个结点 题目要求题目示例解题思路从题目中的已知出发思考寻找目标结点条件转换核心思路 需要注意的点改进建议 完整代码提交结果 题目要求 给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。 题目示例 示例 1&#xff1…

微信小程序和抖音小程序的分享和广告接入代码

开发完成小程序或者小游戏之后,我们为什么要接入分享和广告视频功能,主要原因有以下几个方面。 微信小程序和抖音小程序接入分享和广告功能主要基于以下几个原因: 用户获取与增长:分享功能可以帮助用户将小程序内容传播给更多人&…

Crypto虐狗记---”你“和小鱼(外传)

前言:剧情十(我没看见还有一个。。。。) 提示: 下载: 参数有了,直接搞就行。。。 参考: *crypto*练2--攻防世界--easy_ECC - kubopiy - 博客园 (cnblogs.com) 大佬的脚本: 攻防世界 easy_ECC - diakla -…

鸿蒙next开发第一课03.ArkTs语法介绍-案例

前面已经学习了ArkTs的基本语法和DevEcoStudio的基本操作,接下来按照官方提示开发一个基本案例。 该案例是系统自带的demo,下载下来源代码后可以直接运行。 接下来我来演示如何运行demo。我在demo中加入了自己的注释。 切记:文件夹不能有中…