分享好友 最新动态首页 最新动态分类 切换频道
爆肝整理,企业级性能测试-性能方案设计详细总结(一)
2024-12-25 13:56


1、需求分析

测试目的

为什么测?目的在于测试系统相关性能能否满足业务需求。

通常分以下两种情况
1)新项目上线
2)老项目优化
如果是老项目优化,可考虑是否存有历史测试方案,如果有可以参考,或许可以省事很多。

测试对象

要测啥

测试对象可以归结为“业务功能”。测试前,需要了解我们需要测试的业务功能(不深入细节)有哪些,比如“购买商品”、“寄送快递”。

有没有必要测
需求来源哪里,有没有数据支撑测试这个需求的必要性

通常,可以从以下几个方面考虑
1)是否核心功能,是否要求严格的质量
2)是否常用、高频使用的功能
3)可能占用系统较多资源的功能
4)使用人数多还是少
5)在线人数多还是少

拆分对象

先从业务上来分,实现这个完整的功能包含哪些流程、环节

举例:购买商品
登录->搜索商品->提交订单->支付订单->退出

指标分析

分析性能需求指标(如“支持300人并发登录”)是否合理
有必要测试这个需求,考虑需求指标是否合理?有没有数据支撑

通常,支撑数据可以从以下方面考虑
1)采样时间段内系统使用人数
2)采样时间段内系统在线人数
3)采样时间段内系统(页面)访问量
4)采样时间段内请求数

常用分析思路
1)2/8法则,2/8法则:80%的业务量在20%的时间里完成。这里,业务量泛指访问量,请求数,数据量等
2)正态分布
3)按比例倍增
4)响应时间2-5-8原则

就是说,一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快
当用户在2-5秒之间得到响应时,会赶紧系统的响应速度还可以
当用户在5-8秒以内得到响应时,会赶紧系统的速度很慢,但是还可以接受
而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟糕透了,或者认为系统已经失去响应。

注意:这个要根据实际情况,有些情况下时间长点也是可以接受的,好比12306

举例
某公司后台监控,根据一段时间的采样数据,分析得出日高峰时段(11:00-14:00)用户下单请求数平均为1000,峰值为1500,根据这个计算并发请求数

时段:3个小时-> 3 x 60 x 60 = 1080s
业务量:1500
吞吐量:1500 * 80% / (1080 * 20%) = 5.56请求数/s

假设用户下单遵循正态分布,那么并发请求数峰值会肯定大于上述估算的吞吐量

注意
1)2/8原则计算的结果并非在线并发用户数,是系统要达到的处理能力(吞吐量
2)如果要求更高系统性能,根据实际情况,也可以考虑1/9原则或其它更严格的算法
3)以上估值只是大致的估算,不是精确值

举例
想了下,暂时没想到啥好的例子,大致就说一些涉及到数据量的性能测试,比如报表统计,或者是大数据挖掘,查询等,怎么去估算数据量

数据生命周期
一般来说,数据都是有一定的生命周期的,时间的选取需要结合数据周期考虑。这里假设3年后系统性能仍然需要满足业务需求。

数据增长率
如果是老项目,可以考虑对应功能主表历史数据存放情况

这里假设按年统计,比如第一年10000,第二年15000,第三年20000,第四年25000,那么我们得出,以第一年为基准,数据增长率分别为0.5,1,1.5,每年在上一年的基础上,以5000的速度增长

预估3年后,数据增长率为3,需要测试数据量为(1+3)x 10000 = 40000

注意
1)实际数据一般是没上面举例那么规律的,只能大致估算数据增长率。
2)一些大数据量的性能测试除了和数据量相关,还涉及到数据分布等,比如查询,构造数据时需要结合实际,尽量贴近实际。

3)不同业务模块,涉及表不一样,数据量要求也是不一样的,需要有区别的对待。

如果是新项目,那就比较不确定了,除非能收集相关数据。

2、系统分析

结合需求分析中第3点,分析系统架构。从功能实现上来看,怎么实现这个完整功能的。通常这些业务功能操作都对应着一个或多个请求(可能能是不同类型的请求,比如http, mysql等),我们要做的是找出这些

1)请求顺序、请求之间相互调用关系
2)数据流向,数据是怎么走的,经过哪些组件、服务器等
3)预测可能存在性能瓶颈的环节(组件、服务器等
4)明确应用类型IO型,还是CPU消耗性、内存消耗型->弄清楚重点监控对象
5)关注应用是否采用多进程、多线程架构->多线程容易造成线程死锁、数据库死锁,数据不一致等
6)是否使用集群/是否使用负载均衡

了解测试环境部署和生产环境部署差异,是否按1:1的比例部署
通常建议测试时先不考虑集群,采用单机测试,测试通过后再考虑使用集群,这样有个比较,比较能说明问题

3、业务分析

1)明确要测试的功能业务中,功能业务占比,重要程度。
目的在于,明确重点测试对象,安排测试优先级,建模,混合场景中,虚拟用户资源分配,针对不同业务功能施加不同的负载。

2)明确下“需求分析-指标分析”中相关业务功能所需基础数据及数据量问题,因为那块需求分析时可能只是大致估算下,评估指标是否合理,需要认真再分析下

4、用例设计

1)用例设计
通常是基于场景的测试用例设计
单业务功能场景
运行测试期间,所有虚拟用户只执行同一种业务功能某个环节、操作

混合业务功能场景
运行测试期间,部分虚拟用户执行某种业务的某个环节操作,部分虚拟用户执行该业务功能的其它环节

或者
运行测试期间,部分虚拟用户执行某种业务功能,部分虚拟用户执行其它业务功能

:这里用例没说到多少用户去跑,跑多久等,这里只是把他当作相同场景用例下的的一组组测试数据了。

2)事务定义
根据用例合理的定义事务,方便分析耗时(特别是混合业务功能场景测试,进而方便分析瓶颈。

比如,购买商品,我们可以把下订单定义为一个事务,把支付也定义为一个事务。

3)场景监控对象
针对每条用例,结合“系统分析”第4)点,明确可能的压力点(比如数据库、WEB服务器,需要监控的对象,比如tps,耗时,CPU,内存,I/O等

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

奋斗是生命的底色,只有不断努力,才能铸就辉煌人生,让自己的存在在时间的长河中留下浓墨重彩的一笔。

不要畏惧失败,因为它是成功的前奏;不要停止追求,因为奋斗是成长的动力;只有坚持不懈,才能实现自己的价值,书写人生的壮丽篇章。

最新文章
郑州搭建利器盘点,轻松打造专属个性化
郑州搭建工具大全为您提供多样化选择,涵盖从基础到高级的搭建工具,让您轻松打造个性化,实现个性化定制,助力企业或个人快速上线。郑州搭建工具大盘点挑选理想搭建工具的技巧互联网的蓬勃发展使得建设成为企业和个人关注的焦点,在郑州,
甘肃职高名单_甘肃省职业中等学校排名
对于刚刚踏出初中校门的学生和家长来说,选择一所合适的职业高中无疑是一个重要的决定。甘肃省内的职高学校种类繁多,如何从中筛选出一所适合自己孩子发展的学校呢?本文将结合“甘肃职高名单”来帮助大家理清选择学校时应关注的几个关键因
百度凤巢推广4大管理技巧
  去年12月1日,百度正式启用推出凤巢推广系统,随之而来的问题就是中小企业如何有效提升百度凤巢系统的关键字排名管理技巧。大型的企业可能已经配备相关的部门,每日都在做分析、做客户体验分析。可是对于中小企业来说,一方面资金有限
[彩民周刊]博彩老头排列五15047期:次位独杀码3
  第1位走势  在重心左移的过程中,小号0、1至少有一个会出现回补机会,大号7在出现两次偏大遗漏之后,也有希望在近期出现升温表现。  定胆:107  杀号:9  第2位走势  小号0的现身有可能使得本号位稍显短缺的0路号码出现更多
阿里巴巴国际站排名规则是什么?排名规则解读
阿里巴巴国际站是属于大批发商家的地盘,海外的大卖家通常会选择国际站进行交易,如果,商家想要获得订单就需要让店铺排名靠前,那国际站排名的规则是什么?接下来,我们就来好生的介绍下。排名规则解读现在自然排序规则权重,已经向信保大
亚马逊产品的自然排名规则是什么?跨境电商关键词排名
 英国亚马逊 在亚马逊上,产品的自然排名是检验产品曝光率和销量的重要因素之一。尽管亚马逊没有公布其检索排名算法的具体细节,但根据观察和经验,它能够产生一些可能影响自然排名的因素:跨境电商关键词排名  1. 关键词契合度  标
python爬虫常用基础程序
第1个爬虫程序: main.py第2个爬虫程序: main2.py第3个爬虫程序: main3.py第4个爬虫程序: main4.py​​​​​​​第5个爬虫程序: main5.py测试代码1: main6.py​​​​​​​ 测试代码2:p
与马有关的成语故事汇总
与马有关的成语故事汇总  1. 九方皋相马  秦国国君穆公问伯乐:你的家族有能相马的人吗?伯乐回答说:我的后辈都是下等的才能.于是推荐了九方皋.穆公召见了他,让他出去找马,三个月后他回来说:已经找到了,在沙丘.穆公问是什么样的马?九
十大良心手机传奇游戏有哪些 耐玩的传奇游戏前十名2023
今天小编就给大家解答一下十大良心手机传奇游戏有哪些,都是2023年度超级好玩的传奇系列,在这里你可以重温当年的热血传奇,快叫上兄弟一起热血攻沙吧!热门推荐:关注18183传奇频道,体验更多经典传奇游戏。红月战神-0.1折火龙单职业上线就
解读郑州十大舆情危机公关公司排行榜
在当今信息飞速传播的时代,舆情的力量不容小觑。郑州,这座充满活力与机遇的城市,众多的企业、机构和组织面临着复杂多变的舆情环境,而郑州舆情公关公司犹如一盏明灯,在这片领域中发挥着至关重要的作用。郑州舆情拥有专业的团队,他们精
相关文章
推荐文章
发表评论
0评