性能测试需求分析有哪些?怎么做?

news2025/1/11 10:59:22

目录

性能测试必要性评估

常见性能测试关键评估项如下:

性能测试工具选型

性能测试需求分析

性能测试需求评审


性能测试需求分析与传统的功能测试需求有所不同,功能测试需求分析重点在于从用户层面分析被测对象的功能性、易用性等质量特性,性能测试则需要从终端用户应用、系统架构设计、硬件配置等多个纬度分析系统可能存在性能瓶颈的业务。

性能测试必要性评估

任何项目在开展性能测试活动前都需要进行必要性评估。通过必要性评估活动,确认被测对象是否有必要实施性能测试活动,千万不可为了性能而性能。

通常情况下,必要性评估可以通过设定不同条件、不同权重进行分析,将评估项分为关键评估项和一般评估项两种。关键评估项,只要有一项符合,则必须开展性能测试,而一般评估项,可通过加权计算,超过60分,则需开展性能测试。

软件测试活动中,根据测试要求可分为功能测试与非功能测试。非功能测试,通常指的即是性能测试。当然,具体情况具体分析。

性能测试:性能测试必会的混合压测场景及分布式压测场景实战,你学会了吗?_哔哩哔哩_bilibiliicon-default.png?t=N4P3https://www.bilibili.com/video/BV1Jc411G7ac/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

 

常见性能测试关键评估项如下:

1. 被测对象需经过主管部门或监管单位审查、认可,需提供性能测试报告。目前,很多企业的软件产品在正式上市对外销售、应用时,政府机关、主管部门或监管单位,可能需要其出具功能测试报告、性能测试报告,甚至是第三方测试报告,这种情况下,必须进行性能测试;

2. 涉及财产生命安全的系统。通常情况,电商系统、金融业务系统、医疗健康评估,涉及用户或行方资金交易,生命安全类的,需要进行性能测试;

3. 首次投产的大型系统,具有大量用户使用的核心业务;

4. 系统核心数据库、业务逻辑、软硬件升级。与历史系统对比,系统核心数据库、业务逻辑调整、软件硬件设备升级,同样需要实施性能测试;

5. 历史版本存在重大非功能缺陷或风险较大的未评估项;

6. 业务量、用户量、节点增长30%以上。系统升级后,业务量、用户量、应用节点,增长量在30%以上的,具体数值可根据实际情况调整。应用节点增长一般指甲方因业务需求,增加应用节点,银行拓展分行、分中心、分公司、营业网点等;

7. 系统架构发生重大变化。不同的系统架构可能存在较大的性能差异,因此在系统架构发生变化后,必须实施性能测试,并且在此过程中,无法通过类推的思路推断架构变化后的系统性能;

8. 生产环境非功能严重缺陷修复后。生产环境在使用过程中产生重大非功能性缺陷成功修复后,需重新开展性能测试活动,以验证修复活动是否对生产环境造成不良影响。

以上仅仅列出笔者在日常性能测试活动参考的关键评估项,对于不同行业,不同测试对象可能存在的不同的关键评估项,读者可自行增减。

常见的性能测试一般评估项,主要从单次版本考虑,如果是平台性的,则为关键评估项,如果是单次版本,单个组件或业务,则从以下几个一般评估项评估权重:

1. 是否在平台中处于核心位置(15分);

2. 是否有升级,且升级内容中包含了外部系统对接接口、支付接口、Web Service调用接口等与其他系统关联接口(20分);

3. 是否存在部署方式调整或优化(15分);

4. 是否增加了性能风险较高的调整(20分);

5. 是否存在客户要求必须测试的组件或业务流程(20分);

6. 是否涉及多个功能缺陷的修复,且流程发生较大变化(10分)。

如果上述一般评估项,总计分值超过60分,则需进行性能测试。

以本ECShop平台为例,通过针对上述关键评估项及一般评估项的评估,满足关键评估项中的第三条:首次投产的大型系统,具有大量用户使用的核心业务”,因此本ECShop平台的性能测试活动必须开展。

性能测试工具选型

通过测试必要性评估,确定了需要对被测对象实施性能测试后,则需要考虑采用哪种性能测试方式。根据被测对象的业务特性和架构设计,可以采用以下两种方式开展有效的性能测试活动。

如果被测对象为批处理方式实现,并且在数据库中设立起始与终止标识字段,则可以利用存储过程或发起批处理的方式进行,资源监控可以利用监控脚本如python脚本、shell脚本或其他监控工具,最终统计时,以结束时间减去开始时间,则可获得交易时间,并可根据每笔交易获得平均交易时间,相对来说较为方便。

如果被测对象不是批处理模式,且可能存在大量数据交互,则可能需要采用专业的性能测试工具来实现。一般而言,业内常用的性能测试工具主要要开源的Jmeter和商用的HP公司的LoadRunner。

Jmeter是个开源的性能测试工具,目前在市场中的热度很高,不依赖于界面,功能测试的脚本同样可以作为性能测试脚本运行,对测试工程师技术技能要求不高,而且提供了参数化、函数、关联等功能便于脚本的优化与扩展。

LoadRunner在商用领域一枝独秀,很多年保持排前的市场占有率,与Jmeter相比,LoadRunner具有强大的脚本开发功能、完善的函数库及结果分析功能。对测试工程师技术要求相对较高,但因其在业内流行很多年,LoadRunner应用的资料相对于Jmeter较多,便于学习与应用。

企业在选择性能测试工具时,如有条件可以自己根据实际测试需求自定义开发测试工具,也可以选择市场上常用的测试工具,通常选择时需考虑以下几个问题:

1. 能否自定义开发,更符合实际测试需求;

2 商用的测试工具所需的成本,企业能否承受;

3. 采购的测试工具是否提供了完善的服务、细致的培训;

4. 团队人员能否掌握测试活动所需的工具技能。

开源是行业趋势,本次案例项目用开源性能工具Jmeter实施性能测试。

性能测试:

性能测试必会的混合压测场景及分布式压测场景实战,你学会了吗?_哔哩哔哩_bilibiliicon-default.png?t=N4P3https://www.bilibili.com/video/BV1Jc411G7ac/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75              

性能测试需求分析

与功能测试需求分析一样,性能测试同样需要针对被测对象进行需求分析。一般而言,用户或产品团队设定性能测试需求时,仅会表述字面意义上需求,如“系统TPS需达到300以上,单笔交易时间不超过3秒”等。需要性能测试工程师结合用户需求及性能测试活动本身需求进行显性与隐性性能测试需求的分解与提取。

随着互联网技术的飞速发展,互联网应用架构越来越复杂,运营系统涉及的利益相关方越来越多,因此,在性能测试工作实施过程中,需从不同的用户层面分析待测需求。

确定性能测试的必要性后,性能测试工程师主要从以下两个用户方确定性能测试需求:

业务用户

1. 用户频繁使用,且存在大量用户使用的业务流程;

2. 交易占比较高,日常占比在80%以上甚至更高的业务流程;

3. 特殊交易日或峰值交易占比80%以上甚至更高的业务流程;

4. 性能较差且有过调整的业务流程;

5. 特殊业务场景;

6. 核心业务发生重大流程调整的业务流程。

以上从业务用户层面,考虑的可能需要进行性能测试的点。实际实施过程中,如果可能,可向终端用户调研。

项目团队

1. 曾经测过性能后调整了架构设计的业务;

2. 逻辑复杂,关键的业务;

3. 可能消耗大量资源的业务;

4. 与外部系统存在接口调用,且有大量数据交互的业务;

5. 调用第三方业务组件,逻辑复杂的业务。

以上从项目开发角度考虑可能需要进行性能测试业务流程,性能测试工程师需对被测对象深入了解,并且需要研发团队配合。

除上述两种用户,还可能包括运营团队,调研未来业务发展规划,系统需满足未来业务需求的可能性。

性能测试需求评审

确定性能测试需求后,如有必要,需进行某种程度的测试需求评审活动。性能测试需求评审与功能测试需求评审类似,都需关注需求本身的可测性、一致性及正确性。

可测

软件可测性,通常理解为软件本身是否具备实施测试的条件,是否便于发现缺陷及定位缺陷。

在一定的时间及成本范围内,构建测试环境,设计及执行测试用例,测试工程师能够相对便捷的发现、定位缺陷,从而协助研发人员解决对应的缺陷,无论是功能测试,还是性能测试,都需要被测对象具备上述的可测试特性。

性能测试活动与功能测试活动有个显著的特点是被测对象运行环境要求不同。实施功能测试时,只要被测对象能够在合理的运行环境中正常运行即可,即使测试环境与生产环境可能存在较大的差异,性能测试则不同,一定需模拟尽可能真实的运行环境。当测试环境与实际生产环境差异较大时,性能测试结果往往不被接受,如果在性能测试实施过程中,无法搭建相对真实的测试环境,即可认为被测对象不具备性能的可测性。

一致性

性能测试需求一致性,主要关注用户需求、生产需求、运营需求几个方面。通过对性能测试需求的分析,判断本次测试需求是否满足用户需求规格说明书中明确列出的性能需求项。生产需求,则是关注被测对象运行的真实性,从而在测试结束后能够提供相对准确的数据依据。

运营需求,需以历史数据或者现今运营数据为基础,规划未来业务发展的可能性,从而使得被测对象性能指标具有一定的冗余度。

通过性能测试需求评审活动,确定本次性能需求与上述的关注点一致。

正确性

在可测性与一致性得到保证的基础上,需针对性能测试指标进行验证,从而保证后续实施活动中所关注的各个项目需求、场景及指标的正确性,从而尽量减少返工、重新设计的风险。

通过可测性、一致性及正确性的评估,最终确定本轮性能测试需求,并以此作为后续测试实施活动的输入。

性能测试:

性能测试必会的混合压测场景及分布式压测场景实战,你学会了吗?_哔哩哔哩_bilibiliicon-default.png?t=N4P3https://www.bilibili.com/video/BV1Jc411G7ac/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

 

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

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

相关文章

【Go语言从入门到实战】并发篇

Go语言从入门到实战 — 并发篇 协程 Thread vs Groutine 相比之下,协程的栈大小就小很多了,创建起来也会更快,也更节省系统资源。 一个 goroutine 的栈,和操作系统线程一样,会保存其活跃或挂起的函数调用的本地变量…

2023 年面向初学者的 5 大自由写作技巧

在这篇文章中,我们将讨论初学者的自由写作技巧 译自:https://jitendra.co/freelance-writing-tips-for-beginners/ 比较平易近人,在做独立站并且自己写原创时候可以参考下,面对的甲方爸爸不同而已 最初的兼职活动最终成为我生活中…

Docker下安装MySQL,PostgreSQL,SQL Server(包含离线和在线安装)

1 MySQL 1.1 离线安装 1.1.1 加载镜像 使用ftp工具将安装包上传至服务器最大目录下,这里以根目录为最大目录举例 键入加载镜像命令:docker load -i 镜像包名称 docker load -i mysql80.tar使用docker images命令查看已经加载的镜像,如上…

【利用ChatGPT学习英语口语(包括如何安装插件的详细教程)】

内容目录 一、插入ChatGPT语音播放插件1. 打开谷歌浏览器——右上角三点——更多工具——扩展程序2. 点击扩展程序三个横杠——打开chrome 应用商店3. 搜索Voice Control for ChatGPT——点击如下图第一个——添加至Chrome——添加扩展程序4. 成功安装,打开ChatGPT有…

【大数据hive】hive视图与物化视图使用详解

目录 一、hive中的视图 二、hive视图语法与操作 2.1 数据准备 2.2 创建视图 2.2.1 创建普通的视图 2.2.2 基于视图创建视图 2.3 查看视图定义 2.4 使用视图 2.5 删除视图 2.6 更改视图属性 2.7 更改视图定义 三、使用视图的好处 3.1 只将真实表中特定的列数据提…

线程同步模式的设计思路

👳我亲爱的各位大佬们好😘😘😘 ♨️本篇文章记录的为 JDK8 新特性 Stream API 进阶 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉。 …

ISCC2023 擂台misc wp

刚想起来发 文章目录 雪豹哦?摩斯密码?ඞG9的钢琴曲BNG听你心跳里的狂Brain Games user-id:芝士雪豹 雪豹 这道题没啥意思,存粹为了套拿450分。知识点属于重复知识点,见谅: 拿到附件,用360解…

分布式网络通信框架(十)——Mprpc框架使用示例

发布一个服务提供远程调用方法的流程 若想要发布一个服务提供一些远程调用方法,步骤如下: 先在protobuf文件中添加参数和返回值的message 类型,然后再添加希望提供的服务 service 类型(如UserServiceRpc)和 其中的方…

傅里叶级数和傅里叶变换之间的关系推理及应用

傅里叶级数和傅立叶变换是傅里叶分析的两个主要工具,它们之间有密切的关系。 什么是傅里叶级数 傅里叶级数是将一个周期函数分解为一系列正弦和余弦函数的和。它适用于周期性信号,可以将周期函数表示为一组振幅和相位不同的谐波分量的和。傅里叶级数展…

【ChatGPT】ChatGPT快速生成短视频

1.chatGPT剪映 chatGPT生成文本后通过剪映图文成片 这次用了new bing:Chatbot AI 在线网页版 (atmob.cn) 打开剪映-图文成片 把new bing生成的文本粘贴过来,点击生成视频。 生成好了,是这样 剪映自动生成的,最后还是得手工改改&…

ChatGPT生成Excel统计公式

🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉 ChatGPT生成Excel统计公式 文章目录 🍐问题引入🍐具体操作🐳结语 🍐问题引入…

如何使用 service account 获取 keycloak 的用户信息

Keycloak 是一个开源的权限管理和认证系统。使用 Keycloak 可以让开发者专注于解决业务的核心问题。获取用户信息是权限管理和认证系统需要的基本功能。Service Account 是OAuth 2.0推荐的系统服务使用的账户,开发者可以通过 Keycloak 的 Service Account 来让自己的…

【嵌入式烧录/刷写文件】-3.2-S19/Hex文件转换为Bin文件

案例背景(共6页精讲): 该篇将告诉您:如何使用Vector HexView工具,对一个Intel Hex或Motorola S-record(S19/SREC/mot/SX)文件转换为bin文件。 目录 1 Intel Hex,Motorola S-record(S19/SREC/mot/SX),Bin文件之间的差…

基于SpringBoot养老院管理系统

目录 一、项目介绍 二. 运行环境 三、项目技术 四、部署项目 五、项目运行 六、项目展示 五、项目下载 一、项目介绍 基于springboot的养老院管理系统拥有多种角色账号:管理员和用户 管理员:管理员管理、用户管理、健康管理、病例方案管理、药品…

计算机网络面试八股文

网络分层结构 计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。最全面的Java面试网站:最全面的Java面试网站 五层模型:应用层、传输层、网络层、数据链路层、物理层。 应用层&a…

文生视频综述

文字生成视频当前挑战 和发展现状_哔哩哔哩_bilibili今天我们聊了什么是 text to video,它的原理和目前的研究进展。text to video 是一种将文本转换为视频的技术,它可以通过图像处理、语音识别和自然语言处理等技术来实现。目前,text to vid…

【C语言】刷题训练营 —— 每日一练(十三)

文章目录 前言 BC123 小乐乐找最大数BC124 小乐乐是否被叫家长BC125 小乐乐转换成绩BC126 小乐乐算多少人被请家长BC127 小乐乐算最高分BC128 小乐乐计算求和BC129 小乐乐计算函数BC130 小乐乐查找数字BC131 KiKi学程序设计基础BC132 KiKi算期末成绩完结 前言 大家好&#xff…

计算机体系结构标量处理机

先行控制技术 缓冲深度的设计方法 以先行指令缓冲栈为例。 假设缓冲深度为 D 1 D_1 D1​,考虑以下两种极端情况。 (1)先行指令缓冲栈已经充满,此时指令流出速度最快,例如连续分析RR型指令 ,设这种指令序…

[元带你学: eMMC协议详解 12] Speed Mode 选择

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 2000字, 介绍了各种Speed Mode 选择的方法, 需要按照一定的步骤, 重点需要掌握HS400, High Speed 和 HS20…

python中的流程控制语句

文章目录 if-else语句代码演示: if-elif-else语句代码演示1:代码演示2: while 循环语句循环语句练习1.求100以内所有的奇数之和2.求100以内所有7的倍数之和,以及个数3.求1000内的水仙花数4.获取用户输入的任意数,判断是…