当前位置: 首页 > news >正文

性能测试攻略(一):需求分析

性能测试成为软件开发和运维过程中不可或缺的一环。性能测试不仅能够帮助我们了解系统在特定条件下的表现,还能帮助我们发现并解决潜在的性能问题。那么我们怎么做一次完整的性能测试呢?首先,我们需要进行需求分析,来明确我们的测试目的。比如,本次测试要验证哪些内容,达到什么样的性能指标,或者要满足多少用户使用我们的系统。其次,我们要确定测试范围,考虑测试需求,根据我们的系统架构、模块划分、接口关系等因素,测试范围要尽可能全面。再次,我们需要确定我们使用的测试工具,如:LoadRunner、JMeter等,测试工具要满足测试需求。然后,我们就可以进行测试场景的设计,包括用户数量、操作频率、数据规模等。确定好上面的内容,就可以来制定我们的测试计划了,测试计划包括目标、范围、工具、场景、资源、时间和任务分配等。最后,我们需要准备我们的测试环境,要尽可能的模拟生产环境,包括硬件配置,软件版本、网络条件等。这样我们就可以执行性能测试。测试完成后对系统的测试结果进行分析,分析性能瓶颈,然后对瓶颈优化后,再次验证优化效果。

本篇内容,主要介绍一下性能测试的需求分析相关内容。

性能测试需求分析的重要性

性能测试需求分析是性能测试的第一步,也是至关重要的一步。它决定了性能测试的方向和重点,为后续的测试设计提供了依据。以下是性能测试需求分析重要性的几个方面:

  • 明确测试目标: 通过需求分析,我们可以明确性能测试的目标,如确定系统的最大用户并发数、验证系统在特定负载下的响应时间等,从而确保测试工作的方向性和针对性。

  • 指导测试设计: 需求分析的结果将直接指导测试设计,包括测试场景的选择、测试数据的准备、测试工具的选取等,确保测试工作的全面性和有效性。

  • 评估系统性能: 性能测试需求分析的结果将作为评估系统性能的依据,帮助我们了解系统在特定条件下的表现,发现潜在的性能问题,为系统优化提供数据支持。

  • 提升用户体验: 通过性能测试需求分析,我们可以更好地了解用户需求,模拟用户行为,从而确保系统在用户实际使用过程中表现良好,提升用户体验。

性能测试需求分析主要方式

  • 用户调研: 通过用户调研,了解用户对系统性的需求和期望,如响应时间、并发用户数等,从而确定性测试的目标和指标。当然,用户不一定指系统真实的使用用户,也可以为系统的运营管理人员、产品设计人员或相关的业务人员都可以。

  • 业务场景分析: 通过对业务场景的分析,了解系统的业务流程、数据规模、用户行为等,从而确定性能测试的场景和数据。尤其是对于访问频次多、业务复杂、数据量大等业务场景的分析。

  • 系统架构设计: 了解系统的架构设计,包括服务器配置、网络拓扑、数据库、数据中间件等,以便在性能测试中模拟真实的系统环境。对于性能测试人员,一定要了解系统的整体架构,这样才能确保我们的测试范围覆盖的广、场景设计的全面、结果分析的准确。

  • 历史数据分析: 通过分析历史数据,了解系统在过去的性能表现,如响应时间分布、错误率等,从而为性能测试提供参考。还要了解数据库在一定时间内产生的数据量,方便我们测试中模拟出铺底数据,使得我们在更接近生产数据量的环境下进行性能测试。容易发现数据操作类的性能问题。

  • 行业标准和规范: 参考行业标准和规范,如响应时间标准、吞吐量标准等,以确定性能测试的指标和阈值。

性能测试需求分析要明确的目标

测试指标

我们要根据性能测试需求,来明确我们最终的性能指标。为我们的测试提供一个准则,满足指标即可判定为测试通过。下面举例说明几个指标:

  • 交易响应时间: 用户从客户端发起一个请求,到客户端接收到从服务器返回结果的响应结束,整体过程所耗费的时间;响应时间=网络传输时间+服务器处理延迟时间+数据库服务器处理延迟时间,简单交易小于1.5s,一般交易小于3s,复杂交易小于5s。

  • 业务处理能力(TPS): 每秒处理交易笔数 以82原则计算交易峰值负载:3000人测试人员,每日提交缺陷10个,任务领取5个,任务列表20,执行列表20次,上传图片5次,上传视频5次,下载测试报告5次,导入用例3次。日交易总量为:3000x73=219000, 日交易量 = 交易总量合计(219000) x 80% =T T =175200 日交易时间 = 营业时间8小时*20% =1.6 TPS目标计算为:T /1.6 / 3600 = 30.41笔/秒

  • 并发用户: 系统需求的最大使用人数

  • 系统处理正确性: 在负载情况下,交易错误率。错误率=(失败交易数/交易总数)*100%。(不同系统对错误率的要求不同,但一般不超出千分之五。稳定性较好的系统,其错误率应该由超时引起,即为超时率。)

  • 业务处理稳定性: 系统在标准压力(系统的预期日常压力)情况下,能够稳定运行。(一般来说,对于正常工作日(5X8小时)运行的系统,至少应该能保证系统稳定运行10小时以上。对于7X24运行的系统,至少应该能够保证系统稳定运行48小时以上。)

  • 系统资源: CPU<=80% 内存使用率无明显上升趋势 磁盘繁忙率<=80%

测试范围

对于我们测试范围应该选什么?一般如果有明确的测试需求,那我们按照测试需求来即可,如果没有明确的测试需求,比如只要求了系统整体的性能指标,那可以参考以下的原则:

已上线系统:

  • 测试交易要覆盖各个渠道;
  • 一般系统:选取日均交易量TOP20、TOP10的交易;
  • 选取生产上曾经出现或者容易出现问题的交易;
  • 选取生产上占用资源较高的交易;
  • 选取业务逻辑复杂的交易;
  • 选取交易路径较长的交易;
  • 选取处理时间较长的交易;
  • 选取特殊需求的交易(测试并发、测试登录)。

未上线系统:

  • 测试交易覆盖各渠道;
  • 选取预期交易量大的交易;
  • 选取预期交易量增长迅速的交易;
  • 选取占用资源较高的交易;
  • 选取交易路径较长的交易;
  • 选取处理时间长交易;
  • 选取业务逻辑复杂的交易;
  • 选取频繁调用数据库的交易;

根据系统架构:

  • 针对Redis,我们要测试大量redis key同时失效模式,一个热key的失效模式等,避免出现缓存穿透、雪崩的出现。
  • 针对数据库,要测试大量的写入操作,避免出现数据库性能问题,针对一些可以多人操作的数据,要避免出现死锁现象。在大量的数据铺底情况下,测试复杂的查询交易。如果是数据库集群,还要考虑数据一致性和故障测试。
  • 针对网络代理层,我们需要根据配置,测试超出配置最大连接数、缓存等相关内容。
  • 针对服务层,我们需要考虑服务与服务之间的调用情况、避免相互调用,或者环形调用。
  • 针对服务器,我们需要考虑服务器的内存、CPU、I/O、网络等资源,还有句柄、线程等。

性能测试需求问题

  • 沟通与交流: 性能测试需求分析,我们要多方面考虑影响系统性能的因素,因此我们要与业务需求方、客户、开发人员、运维人员保持密切沟通。我们需要了解整体系统的功能架构、技术架构、应用部署方式、网络环境等一系列的内容。所以需要深入沟通,才能进行深度的分析。

  • 简化测试场景: 虽然我们要根据多方面考虑,覆盖更广的测试范围,但是我们要简化测试场景。简化测试场景,可以降低测试难度和复杂度,构建接近真实的测试场景。

相关文章:

性能测试攻略(一):需求分析

性能测试成为软件开发和运维过程中不可或缺的一环。性能测试不仅能够帮助我们了解系统在特定条件下的表现&#xff0c;还能帮助我们发现并解决潜在的性能问题。那么我们怎么做一次完整的性能测试呢&#xff1f;首先&#xff0c;我们需要进行需求分析&#xff0c;来明确我们的测…...

【24年新算法时间序列预测】黑翅鸢BKA优化Transformer时间序列预测(评估指标全,出图多)

本文采用黑翅鸢优化算法( BKA&#xff0c;2024年新算法)优化Transformer模型的超参数&#xff0c;形成了BKA-Transformer时间序列预测模型&#xff0c;以进一步提升其在时间序列预测中的性能&#xff0c;本文采用Matlab编写了BKA-Transformer时间序列预测模型代码&#xff0c;代…...

YOLOv8改进,YOLOv8引入CARAFE轻量级通用上采样算子,助力模型涨点

摘要 CARAFE模块的设计目的是在不增加计算复杂度的情况下,提升特征图的质量,特别是在视频超分辨率任务中,提升图像质量和细节。CARAFE结合了上下文感知机制和聚合特征的能力,通过动态的上下文注意力机制来提升细节恢复的效果。 理论介绍 传统的卷积操作通常依赖于局部区域…...

ZooKeeper节点扩容

新节点的准备工作&#xff08;这里由hadoop05节点&#xff0c;IP地址为192.168.46.131充当&#xff09; 配置新节点的主机域名映射&#xff0c;并将其通告给集群中的其他节点配置主机间免密登录关闭防火墙并将其加入到开机不启动项同步hadoop01节点的时间将所需要的文件分发给新…...

深度学习的unfold操作

unfold&#xff08;展开&#xff09;是深度学习框架中常见的数据操作。与我们熟悉的卷积类似&#xff0c;unfold也是使用一个特定大小的窗口和步长自左至右、自上至下滑动&#xff0c;不同的是&#xff0c;卷积是滑动后与核求乘积&#xff08;所以取名为卷积&#xff09;&#…...

C# 抽奖程序winform示例

C# 抽奖程序winform示例 using System; using System.Collections.Generic; using System.Linq;public class LotterySimulator {private Random random new Random();public List<string> GenerateWinners(int numberOfWinners, int totalParticipants){List<strin…...

嵌入式蓝桥杯学习9 usart串口

复制一下之前ADC的工程&#xff0c;打开cubemx cubemx配置 1.在Connectivity中点击USART1 Mode&#xff08;模式&#xff09;:Asynchronous&#xff08;异步模式&#xff09; 2.将PA9设置为USART1_TX&#xff0c;PA10设置为USART1_RX。 3.配置Parameter Settings. Baud R…...

车载ADB:让汽车更智能的桥梁

随着科技的不断进步&#xff0c;汽车行业也在迅速迈向智能化。车载Android系统&#xff08;通常称为Android Auto&#xff09;正在变得越来越流行&#xff0c;而Android Debug Bridge (ADB) 作为连接和调试这些系统的桥梁&#xff0c;也变得尤为重要。在本文中&#xff0c;我们…...

HarmonyOS-高级(一)

文章目录 一次开发、多端部署自由流转 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;HarmonyOS专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月09日12点19分 一次开发、多端部署 布局能力 自适应布局 拉伸能力均分能力占比能力缩放…...

【优选算法-滑动窗口】长度最小的子数组、无重复字符的最长子串、最大连续1的个数、将x减为0的最小操作数、水果成篮

一、长度最小的子数组 题目链接&#xff1a; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目介绍&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, .…...

Leetcode 每日一题 202.快乐数

目录 题意 算法思路 过题图片 算法实现 代码解析 复杂度分析 题目链接 结论 题意 判断正整数 n 是不是快乐数。 快乐数定义&#xff1a; &#xff08;1&#xff09;每次将正整数替换为它每个位置上的数字的平方和。 &#xff08;2&#xff09;重复这个过程直到这个数…...

SEC_ASA 第一天作业

拓扑&#xff1a; 实验需求&#xff1a; 注意&#xff1a;在开始作业之前必须先读“前言”&#xff0c;以免踩坑&#xff01;&#xff01;&#xff01;&#xff08;☞敢点我试试&#xff09; 按照拓扑图配置VLAN连接。 注意&#xff1a;ASA防火墙的 Gi0/1口需要起子接口&#x…...

Fluss:面向实时分析设计的下一代流存储

摘要&#xff1a;本文整理自阿里云智能 Flink SQL 和数据通道负责人、Apache Flink PMC 伍翀&#xff08;花名&#xff1a;云邪&#xff09;老师&#xff0c;在 Flink Forward Asia 2024 主会场的分享。主要分享了一种专为流分析设计的新一代存储解决方案——Fluss&#xff0c;…...

【一本通】质因数分解

【一本通】质因数分解 C语言实现C 语言实现Java语言实现Python语言实现 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 已知正整数n 是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 输入 输入只有一行&#xff0c;包含一个正…...

vue2+html2canvas+js PDF实现试卷导出和打印功能

1.首先安装 import html2canvas from html2canvas; import { jsPDF } from jspdf; 2.引入打印插件print.js import Print from "/assets/js/print"; Vue.use(Print) // 打印类属性、方法定义 /* eslint-disable */ const Print function (dom, options) {if (…...

【Python网络爬虫 常见问题汇总】

目录 1. 爬取图片出现403解决办法&#xff1a;设置请求头中的Referer字段 2.关于干坏事的问题后续不定期更新 欢迎共同探讨学习进步 1. 爬取图片出现403 问题出自案例9&#xff0c;已解决。 【Python网络爬虫笔记】9- 抓取优美图库高清壁纸 当在爬取图库图片时遇到 403 错误…...

Java SpringBoot 项目怎样在 IDEA 中运行、部署

大家好&#xff0c;我是程序员徐师兄&#xff0c;今天为大家带来的是Java SpringBoot 项目怎样在 IDEA 中运行、部署。Java 项目的安装部署教程&#xff0c;包括软件的下载&#xff0c;软件的安装。该系统采用 Java 语言开发&#xff0c;SpringBoot 框架&#xff0c;MySql 作为…...

GAMES101:现代计算机图形学-笔记-10

今天来聊一些基本的概念&#xff1a;相机&#xff0c;棱镜与光场。 众所周知&#xff0c;成像的方法有两种&#xff1a;合成与捕获。 像我们之前所学的内容如光栅化&#xff0c;如光线追踪&#xff0c;本质上都是合成图像的方法&#xff0c;他们只是在计算机中模拟来成像。 那…...

【前端面试】Http篇

1. HTTPS 概念 加密&#xff08;Encryption&#xff09; 防止数据被截获 数据完整性&#xff08;Data Integrity&#xff09; 防止数据篡改 身份验证&#xff08;Authentication&#xff09; 验证网站的真实性 2. HTTPS 与 HTTP 的区别 HTTP 是明文传输&#xff0c;HTTPS 是…...

ZZCMS2023存在跨站脚本漏洞(CNVD-2024-44822、CVE-2024-44818)

ZZCMS是一款用于搭建招商网站的CMS系统&#xff0c;由PHP语言开发&#xff0c;可快速搭建&#xff1a;医药招商、保健品招商、化妆品招商、农资招商、孕婴童招商、酒类副食类等招商网站。 国家信息安全漏洞共享平台于2024-11-14公布其存在跨站脚本漏洞。 漏洞编号&#xff1a…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...