性能测试 性能测试方案设计思路总结_授客

性能测试 性能测试方案设计思路总结_授客


性能测试方案设计思路总结

  By:
授客
QQ1033553122

 博客:


欢迎加入软件性能测试的交流
QQ群:7156436

一、需求分析

二、系统分析

三、业务分析

四、用例设计

五、测试策略

六、工具选取

七、网络分析

八、硬件配置

九、性能监控

十、实施测试

十一、结果分析

1.  
测试目的


为什么?其目的是检验系统我的相关性能。它通常分为两例:

1)新项目启动

2)老项目优化


如果这是一个古老的项目的优化,考虑是否有历史测试方案,如果有参考的话,它可以节省很多。

2.  
测试对象


你要测量什么?


测试对象可归结为业务功能。测试前,我们需要理解,需要测试的业务功能(没有什么细节,例如,买货、送快递。


有任何需要测量?


需求的来源?,没有数据来支持测试需求的必要性吗?


通常,从以下几个方面:

1)核心功能是否,是否严格的质量

2)这是常见的、高频率的使用功能

3)那会占用更多的系统资源的功能

4)人们使用更多或更少的数量

5)更多或更少的在线人数

3.  
拆分对象


从业务角度,完整的功能包括哪些流程、环节


举例:购买商品


登录
->搜索商品->提交订单->支付订单->退出

4.  
指标分析


需求指标性能分析(如支持
300并发登录)是合理的


测试这个需求是必要的。,考虑的要求是合理的吗?There is no data support?


通常,支持数据可以从以下几个方面考虑:

1使用时间抽样系统的人数

2时间的在线系统的采样周期数

3采样时间系统(页面)访问量

4时间数量要求采样周期

….


常见的分析思路:

12/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%) =
请求数/s


如果用户的命令服从正态分布,然后并发请求数会比估计的PE


注意
:

12/8计算结果的原则不是同时使用数,是系统实现的处理能力(吞吐量)

2、如果系统的性能提出了更高的要求,根据实际情况,也可以考虑1/9原则或其他更严格的算法

3、上述估值只是粗略估计,不是确切的价值


举例:


到下一个,不想一个很好的例子,大致说了一些性能测试数据相关,例如,统计,或大数据挖掘,查询等,如何估算数据量?


数据生命周期:


一般来说,数据有一定的生命周期,时间应选择联合循环的数据时,考虑。这里假设
3在系统的性能还需要满足业务需求。


数据增长率:


如果这是一个古老的项目,可以考虑的主要历史数据存储相应的功能


这里假设是年度统计,第一年
10000,第二年15000,第三年20000,第四年25000,所以我们得出结论,在第一年的基础,数据的增长率分别为。1,基于今年,以5000的速度增长


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


注意:

1、实际的数据通常是不那么例如法律之上,对数据增长率的粗略估计。

2、对于一些数据大量性能试验是量相关,数据分布关系,例如,查询,数据结构需要结合现实,尽量贴近实际。

3、不同的业务模块,涉及表是不一样的,数据量的要求也不同,需要采取不同的。


如果这是一个新项目,这是不确定的,除非你能收集相关数据。


结合需求分析
3点,分析系统的体系结构。从功能实现的角度,如何实现这个功能齐全。通常这些业务功能对应一个或多个请求(可能是不同类型的请求,比如http,
mysql
),我们要做的就是找到这些:

1)请求顺序、呼叫请求之间的相互关系

2)数据流向,数据如何走?,以后有什么成分、服务器等。

3)可能的性能瓶颈预测(组件)、服务器等。)

4)明确应用型IO型,还是CPU消耗性、内存消耗型->
明确重点监控对象

5)它涉及多过程的应用、多线程架构->
多线程是容易导致线程死锁、数据库死锁,数据不一致

6)是否使用集群/是否使用负载平衡


了解测试环境和生产环境的部署部署,是否按
1:1Proportional deployment


第一次测试时通常建议不考虑集群,采用单机测试,通过测试,然后再考虑集群的使用,这样的比较,比较能说明问题


参考阅读“浅谈
web网站架构的演进
”:

1)清除要测试的功能业务,企业的会计,重要程度。


目的在于

<1>明确关键的测试对象,安排优先

<2>建模,在混合场景,虚拟用户的资源分配,针对不同业务功能施加不同的负载。

2)定义需求分析相关业务功能指标分析所需基本数据量,因为需求分析可能只是一个粗略的估计,无论是评价指标是合理的,认真的再分析

1)用例设计


基于场景的测试用例设计

<1>
单一服务功能方案


试车期间,所有虚拟用户只执行具有业务功能的链接。、操作

<2>
混合业务场景


试车期间,一些虚拟用户执行某个操作有一定联系,的虚拟用户部分履行业务职能等方面


或者


试车期间,的虚拟用户执行一些业务功能,一些虚拟用户执行其他业务功能


注:这种情况下不说跑了多少用户,长期运行等。,这里只是把他当作同一场景的一组测试数据的情况下。。

2)事务定义


根据交易情况的合理界定,方便分析耗时(特别是混合业务场景测试),瓶颈分析。


比如,购买商品,我们可以定义为一个事务,付款也被定义为一个事务。

3)现场监测的对象


每个用例,在系统分析
4)点,明确可能的压力点(如数据库、WEB服务器),要监视的对象,比如tps,耗时,CPU,内存,I/O

1)先进行混合业务场景的测试,在考虑进行测试单一服务功能方案的测试

2)负载测试->
压力测试
->
稳定性测试
->
强度测试


注:如果测试稳定性,推荐至少时间
8小时;

3一步一步的压力


例如,开始之前
5分钟,20个用户,然后每5分钟,增加20个用户。


好处:不仅模拟真实环境更现实,和性能指标较为模糊,不知道服务器处理能力,你可以帮助我们建立一个通用的参考,通常情况下,随着用户数量的增加,服务器会随着压力的增加,如果服务器不够强,然后将无法处理请求、如果未能处理请求,在相应的运行结果图,运行曲线也会出现相应的形式,例如,从一个稳定的线性原工艺。,突然下降的极限、开始上下波动,通过分析我们可以得到近似的服务器处理能力,用于后续参考测试。

4)单点并发


例如,使用一个设置点,对并发测试的一部分,通常用于链路性能调优。。


常识:

a)
负载测试


该系统能保证正常运行
(它通常是满足一些系统的性能指标)的前提下,,让被测对象承担不同的工作量,最大处理能力评估被测物体和德

b)
压力测试


对不能保证系统的正常运行的前提,,让被测对象承担不同的工作量,评估的最大处理能力的被测对象可以P

c)
稳定性测试


该测试系统的长期稳定运行的能力。与疲劳强度试验的差异,稳定性试验的压力强度小,在大客户网站的总趋势的压力强度,在时间的过程中无法通过稳定性条件保证,需要增加应力强度测试,此时的压力强度将高于正常值。

d)
强度测试


通常在可怜的仿真系统、异常的资源配置下运行,需要降低系统工作环境资源
,网络带宽、网络带宽等,系统内存,数据锁等等,为了评估被测对象在资源的不足


注:疲劳强度测试是一种特殊的强度试验,主测试系统长时间运行后的性能,例如
7×24压力测试时间。

1)协议分析


一般的性能测试工具是基于协议的开发,所以,首先明确了协议的应用

2)工具选取

1)类型


开源工具、收费工具、自从研究工具

2)分析工具

<1>
了解工具的实现原理

<2>
By using asynchronous or synchronous


常识:

1.同步请求:发送呼叫请求,在你得到结果之前,呼叫不会返回。

2.异步请求:发送呼叫请求,在请求之前没有,调用立即返回。呼叫请求的处理程序将处理后的状态是COM、通知和回调通知对方。

<3>
使用长连接和短连接


七、

软件配置

1)操作系统


内核版本、
32
or 64
?

2)应用版本


为了保持一致性和在线应用程序的版本,特别是中间件、一个版本的一个组成部分,等等。,因为不同的版本,性能可能不一样

3)参数配置

<1>
负载均衡、反向代理配置参数

<2>
Web
服务器参数配置

<3>
数据库服务器配置参数

1)网络路由


通常排除网络瓶颈,它通常是建议在局域网测试。


通常,这是我想到的:

<1>
检查
hosts文件的配置


从终端电压测量机
(负载生成机)开始,到请求目的服务器,机器的hosts文件配置


通常,
hosts下列文件中:

WindowsC:\Windows\System32\drivers\etc\hosts

Unix/Linux/etc/hosts


小常识:

1、通常域名访问网站,首先通过DNS域名服务器域名(如)解析成IP地址,Then continue the follow-up visit。

2hosts域名和存储ip地址映射关系,如下

性能测试方案设计思路总结” 标题=性能测试性能测试方案设计思路总结” />


使用
hosts可以加快DNS,在进行DNS以前的请求,系统会检查他们的hosts如果地址映射文件,如果有映射的域名IP地址,不要对网络的要求DNS服务器,如果不再有已知的DNS
域名解析服务器。也就是说
hosts要求比DNS高,域名解析可以加速。

<2>
检查
DNS配置


不同
DNS,速度和精度不一样。,比如速度远比快,如果它是有用的DNS(特别是压力测量机),需要考虑是否是合适的

<3>
确保路由设置正确

2)网络带宽


如果在局域网中没有测试,可能需要估计所需带宽大约。。


如果测试是基于
UI层操作的操作,所以你要估计的平均页面大小,请求的数据通过浏览器的大小配备工具查看T。如果测试是基于接口层测试要求,可以通过工具响应数据大小来查看服务器。


然后根据所收集的页面
PV峰值、要求计算出峰数。


假设在
PV峰值、请求的峰值数=
1000
,峰值时段:8:00
– 12:00
,平均页面、请求大小200k


带宽
= 1000
x 80% / (20% x 4 x 3600s) x 200KB x /1024 x 8bit
,
单位MBps


注意:

这里涉及到浏览器的缓存和其他因素,估值可能不,大致估算。

1)CPU


型号,频率,核数

2)
内存

3)
磁盘


不同类型的磁盘,读写速度是不一样的

4)
网卡


不同的卡,传输速率是不一样的


注意:最好的硬件配置与亲的配置是一致的



注意:

1)
这里不仅是监控服务器性能监控指标,如
cpu,该交易还包括费时的监控等。

2)
记录测试各项性能指标数据之前,为了方便后续的测试



如果它是一个性能优化,性能测试结果的比较也需要一个版本的。



PDF下载:性能测试方案设计思路总结.pdf

加载中,请等一会儿。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Message *
Name*
Email *