当前位置: 首页 > 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…...

终极Mac菜单栏整理指南:用Ice让你的桌面从此清爽高效

终极Mac菜单栏整理指南&#xff1a;用Ice让你的桌面从此清爽高效 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 你是否厌倦了Mac菜单栏上密密麻麻的图标&#xff1f;是否经常因为找不到需要的应用图…...

TQVaultAE终极指南:解锁泰坦之旅无限仓库与装备管理新境界

TQVaultAE终极指南&#xff1a;解锁泰坦之旅无限仓库与装备管理新境界 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾在泰坦之旅的冒险中&#xff0c;面对满仓的传…...

别再死记硬背了!用这三个等效模型,轻松搞定二极管电路分析(附典型例题)

二极管电路分析的三大等效模型实战指南 在电子工程和嵌入式开发领域&#xff0c;二极管作为基础元件却常常成为初学者的"拦路虎"。面对复杂的二极管电路&#xff0c;很多人陷入死记硬背的困境——记住各种电路的输出结果&#xff0c;却无法理解背后的分析逻辑。这种学…...

WindowResizer:突破Windows窗口限制的精准尺寸控制工具

WindowResizer&#xff1a;突破Windows窗口限制的精准尺寸控制工具 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在Windows桌面环境中&#xff0c;应用程序窗口尺寸管理是影响工…...

OpenIPC固件构建与君正T31平台刷机实战指南

OpenIPC固件构建与君正T31平台刷机实战指南 【免费下载链接】firmware Alternative IP Camera firmware from an open community 项目地址: https://gitcode.com/gh_mirrors/fir/firmware OpenIPC是一个基于Buildroot的开源IP摄像头固件项目&#xff0c;为海思、君正、全…...

51单片机LCD12864显示中文,别再傻傻用字库了!手把手教你自定义取模显示任意汉字

51单片机LCD12864深度定制&#xff1a;从零实现任意汉字点阵显示的艺术 在嵌入式开发领域&#xff0c;LCD12864液晶屏因其性价比高、接口简单而广受欢迎。但当我们需要显示公司Logo、特殊符号或艺术字体时&#xff0c;标准中文字库的局限性就暴露无遗。本文将彻底打破这种限制&…...

AI伦理决策:从技术中立到可执行框架的工程实践

1. 项目概述&#xff1a;当代码开始“思考”对错最近和几个做AI产品落地的朋友聊天&#xff0c;话题总绕不开一个越来越现实的困境&#xff1a;我们开发的智能体&#xff0c;在帮用户做决策时&#xff0c;到底该不该、以及能不能有自己的“道德判断”&#xff1f;比如&#xff…...

AI原生运维体系必须跨越的3道生死线:数据治理、模型可观测性、人机协同SLA(SITS 2026闭门研讨纪要)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生运维体系构建&#xff1a;SITS 2026智能运维专场精华 AI原生运维&#xff08;AIOps Native&#xff09;已从概念验证迈入生产就绪阶段。SITS 2026智能运维专场首次提出“感知-推理-执行-进化”四…...

DAY 4.链表中环的入口节点

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、链表中环的入口节点二、代码实现2.结论总结前言 一、链表中环的入口节点 思路&#xff1a;使用快慢指针&#xff0c;都从头节点出发&#xff0c;快指针一次…...

从示波器到数据记录仪:基于STM32H7+AD7606+J-Scope的实时波形采集系统搭建全流程

基于STM32H7与AD7606的高性能数据采集系统设计与实战 1. 系统架构设计理念 现代工业监测和实验室数据采集对信号采集系统提出了更高要求——需要同步捕获多通道模拟信号&#xff0c;并实现实时可视化分析。基于STM32H7高性能微控制器与AD7606 ADC模块的组合&#xff0c;配合J-S…...