Jmeter性能测试系列-性能测试需求分析

news2024/11/26 4:31:14

性能测试需求分析

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

性能测试必要性评估

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

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

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

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

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实施性能测试。

性能测试需求分析

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

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

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

业务用户

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

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

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

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

5. 特殊业务场景;

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

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

项目团队

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

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

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

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

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

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

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

性能测试需求评审

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

可测性

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

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

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

一致性

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

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

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

正确性

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

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


     【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

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

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

相关文章

搭建网站并内网穿透实现公网访问本地SQL Server数据库【无公网IP内网穿透】

文章目录 前言1. 安装网站运行和发布必备软件2. 安装PHPStudy3. 安装wordpress4. 进入wordpress安装程序,进行网页编辑和设置5. 安装URL插件6. 安装Cpolar7. 创建自己的数据隧道 前言 在普通电脑用户看来,建立自己的网站总是一件高大上的事情&#xff0…

【Redis实践篇】使用Redisson 优雅实现项目实践过程中的5种场景

文章目录 1.前言2.使用方式1. 添加Redisson依赖:2. 配置Redis连接信息3. 使用场景3.1. 分布式锁3.2. 限流器(Rate Limiter)3.3. 可过期的对象(Expirable Object)3.4. 信号量(Semaphore)3.5. 分布…

安装docker的报错问题

先关闭安全机制 systemctl stop firewalld.service setenforce 0 安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里云镜像云 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装d…

python列表中的元素去重

方法:利用set()函数。 list_t1 [ab, 3, 4, 4, a, ab] list_t2 list(set(list_t1))print(list_t2) print(list_t1)结果: 练习:字符串去重后,重新排序。‘3,6,7,7,2’ 变成 ‘2,3,6,7’ # 参数: # str1 字符串&…

bilibili倍数脚本,油猴脚本

一. 内容简介 bilibili倍数脚本,油猴脚本 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 就是在 (function() {use strict;// 在这编写自己的脚本 })();倍数脚本,含解析 // UserScript // name bi…

STABLE DIFFUSION模型及插件的存放路径

记录下学习SD的一些心得,使用的是秋叶大佬的集成webui,下载了之后点击启动器即可开启,文件夹中的内容如下 主模型存放在models文件下的stable-diffusion文件夹内,一些扩展类的插件是存放在extensions文件夹下

Django框架 靓号管理(增删改查)

Django框架 靓号管理(增删改查) 新建一个项目 backend 使用pycharm创建app startapp app项目目录 C:\code\backend ├── app | ├── admin.py | ├── apps.py | ├── migrations | ├── models.py | ├── tests.py | ├── views.…

win11电脑查找已连接打印机ip的方法

此方法适用于驱动打印机,windows 11操作系统。 方法一:直接查看法 首先大家可以看看自己的打印机有没有lcd屏幕。有些直接在屏幕显示ip;另一种进入菜单,然后可以在里面的选项中显示“ip地址”。 方法二:设置中查看 …

Java课题笔记~ SpringMVC概述

1.1 SpringMVC简介 SpringMVC 也叫Spring web mvc。是Spring 框架的一部分,在Spring3.0 后发布的。 1.2 SpringMVC的优点 基于MVC 架构 基于 MVC 架构,功能分工明确。解耦合。 容易理解,上手快,使用简单 就可以开发一个注解…

【数据分享】2001-2022年我国省市县镇四级的逐月最高气温数据(无需转发/Shp/Excel格式)

气象数据是在各项研究中都非常常用的数据!之前我们分享过来自于国家青藏高原科学数据中心的1901-2022年1km分辨率的逐月平均气温栅格数据,以及基于该栅格数据处理的Shp和Excel格式的2001-2022年我国省市县镇四级的逐月平均气温数据(可查看之前…

执行Lua脚本后一直查询不到Redis中的数据(附带问题详细排查过程,一波三折)

文章目录 执行Lua脚本后一直查询不到Redis中的数据(附带详细问题排查过程,一波三折)问题背景问题1:Lua脚本无法切库问题2:RedisTemlate切库报错问题3:序列化导致数据不一致问题4:Lua脚本中单引号…

docker安装redis7-单机版

下载redis镜像 redis镜像各版本参考:redis镜像 ,这里以redis7.0.5为例 docker pull redis:7.0.5 创建挂载目录 挂载目录按照自己挂载的路径去创建对应的目录即可 mkdir -p /root/data/redis/conf(自己的挂载路径) mkdir -p /root/data/redis/data(自…

如何部署Zabbix监控服务

目录 一、zabbix概念 二、zabbix 监控原理 三、部署Zabbix服务 第一步 关闭防火墙和安全机制 第二步 获取Zabbix下载源 第三步 更换Zabbix阿里源 第四步 安装依赖环境 第五步 安装SCL服务 第六步 修改源配置文件 第七步 安装Zabbix依赖环境 第八步 安装Zabbix所需的…

【springboot启动报错】java: 错误: 无效的源发行版:17

报错截图 解决方案 第一步:编辑配置,改为想用的jdk版本 第二步:文件--->项目结构,改为对应的SDK 第三步:文件--->设置--->构建、执行、部署--->编译器--->Java编译器,修改目标字节码版本 第…

SAP 超级BOM物料语法报表(SAP配置BOM攻略七)

我需要一个报表,输入超级BOM,把其中的物料的语法相关性展现出来,CS12和CS03都没有这个清单功能。网上很多CS_BOM_EXPL_MAT_V2函数的使用了,我也来一篇我的吧。 *&----------------------------------------------------------…

Golang下载安装

目录 1. 下载压缩包 2. 解压 3. 查看SDK是否安装成功 4. 配置环境变量 5. 查看环境变量是否配置成功 1. 下载压缩包 官网下载地址: All releases - The Go Programming Language Windows64位选择如下下载: 2. 解压 解压后内容如下: …

对话教授丨中国石油大学(华东)理学院:课赛结合打造有学科特色的数据科学与大数据技术专业

2015 年,教育部公布新增“数据科学与大数据技术”专业,首批本科专业 2016 年入学;此后,32 所、250 所、196 所……迄今为止,全国各地已有 700 余所高校开设此专业。 中国石油大学(华东)&#x…

【日常积累】Linux之init系统学习

init系统简介: Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 pid 为 1 的 init 进程,这个进程是系统的第一个进程,它负责产生…

ROS相关技术(概念版)

重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。 一、参考资料 ROS官网 二、相关介绍 ROS学习笔记3:ROS架构(了解) ROS介绍 1. ROS简介 ROS是一项由通信机制、开发工具、应…

(三)Unity开发Vision Pro——入门

3.入门 1.入门 本节涵盖了几个重要主题,可帮助您加快visionOS 平台开发速度。在这里,您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接,以及 PolySpatial XR 开发时的一些开发最佳实践。 2.开发与迭代 有关先决条件、开…