码迷,mamicode.com
首页 > 其他好文 > 详细

负载、性能测试和容量测试的关系和区别

时间:2015-04-17 10:54:23      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

性能测试:

举例说明:

针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。

负载测试:负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。

强度测试:强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。

容量测试:确定系统可处理同时在线的最大用户数.

性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。

关注点:how much和how fast

负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。

关注点:how much

强度测试(Stress Test): 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括

Spike testing:短时间的极端负载测试

Extreme testing:在过量用户下的负载测试

Hammer testing:连续执行所有能做的操作

容量测试(Volume Test):确定系统可处理同时在线的最大用户数

关注点:how much(而不是how fast)

容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要表现实际的使用。

其中,容量测试、负载测试、强度测试的英文解释为:

Volume Testing = Large amounts of data

Load Testing = Large amount of users

Stress Testing = Too many users, too much data, too little time and too little room

性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?

负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?

强度测试,是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?

     压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的叶面3秒钟内响应;

所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。

     性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。

概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;

比如我们说某个网站的性能差,严格上应该说‘在N人同时在线情况下,这个站点性能很差)

 

1.强度测试或压力测试

强度或压力测试是在一种需要异常数量、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。异常情况,主要指那些峰值、极限值、大量数据的长时间处理等,包括:

连接或模拟了最大(实际或实际允许)数量的客户机;

所有客户机在长时间内执行相同的、性能可能最不稳定的重要业务功能;

已达到最大的数据库大小,而且同时执行多个查询或报表事务

当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;

运行可能导致虚存操作系统崩溃或大量数据对磁盘进行存取操作的测试用例等。

压力测试可以分为稳定性测试和破坏性测试:

稳定性压力测试。在选定的压力值下,持续运行24小时以上的测试。通过压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等。

破坏性压力测试。在压力稳定性测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来.

在压力测试中,会给程序加上一些跟踪机制(如log、日志等),然后查看监视系统、服务器等性能的日志文件是必要的,找出问题出现的关键时间或检查测试运行参数,通过分析问题或参数从而有目的地调整测试策略或测试环境,使压力测试结果真实地反映出软件的性能。

2.性能测试

系统的性能指标,一般赢在产品需求文档中有明确定义,有三种形式描述软件系统的性能指标:

给出产品性能的主要指标,如在100000记录中查询一个特定数据的时间为0.5秒。

以某个已发布的版本为基线,如比上一个版本的性能提高30-50%。和竞争对手的同类产品比较。

性能测试,根据其目的分为:产品性能质量测试,通过测试,决定产品是否达到产品规格书所要求的性能指标(非功能性需求)

基准值测试,通过对当前产品的性能测试,确定产品具体的性能指标,建立性能指标基准。基准值, 作为后继产品发布的性能参考(在新版本中,性能指标要求只升不降)或和竞争对手产品比较的参考。性能规划测试,通过不断的测试,确定所需要的硬件配置(内 存、CPU、网络等)、软件配置,以满足实现定义的性能指标要求。这种测试,对于软件系统的部署是非常有意义的。同时,也可以进一步了解硬件参数、软件参 数对系统性能的影响程度,从而保证系统具有很好的扩充性或事先制定较好的系统增容的计划。

性能测试的方法,主要有:

稳定压力加载,一次性将负载加到某个水平,持续一段时间,也称为flat测试。逐渐加载或交替加载到某个负载水平,也称为“ramp-up”测试。

性能测试,一般都通过测试工具来模拟人为的操作而进行。性能测试的重点在于测试环境的建立、前 期数据的设计与后期数据的分析。因为性能测试需要获得一定特定条件下(如100、200、500、1000个实时的连接)的系统占用资源(CPU、内存 等)数据或系统行为表现,而且还要依靠测试工具或软件系统记录下这些指标变化的数据结果。例如,如果对一个Browser/Server结构的网络实时在 线的培训系统软件进行测试,系统性能焦点是在不同数量的并发连接下,服务器的CPU、内存的占用率、客户端的响应时间等,如表1所示。

表1 HTTP连接性能表

 

HTTP

1´5

1´50

1´100

1´300

1´500

1´600

1´700

1´800

1´900

……

10´5

60´5

CPU (%)

1.2

2.5

4.5

11

20

20

28

23

25

… 

4

24

物理内存(M)

55

45

38

38

32

48

75

46

37

… 

178

232

虚拟内存(M)

836

841

831

855

865

858

867

874

884

… 

871

1,472

加入时间(s)

12.04

12.14

11.6

15.48

126.1

104.76

168.1

123.7

218.11

… 

12.01

9.17

建会时间(s)

12.01

11.35

12.38

13.32

13.63

14.06

16.35

14.98

17.68

… 

10.9

11.39

延时(s)

…….

断开时间(s)

8.58

9.11

7.94

9.09

8.26

8.35

8.46

11.41

11.1

… 

8.79

8.22

 

测试过程中,并发连接的不断增加(负载的增加)在系统性能上的表现越来越明显。在系统性能测试 时,加载过程中,每到一个测试点时须让系统平稳运行一段时间后再获取数据,以消除不同测试点的相互影响。从表中可以看出,同样是300个用户,1´300 与60´5的性能表现差别很大,加载的方式对系统性能影响也较大,所以,尽量模拟不同的加载方式来进行系统的性能测试。除此之外,还可以测试TCP、 HTTPS等不同连接方式下的数据,进行比较。通过比较和分析,可以清楚知道系统的性能状况,以及什么样的条件下系统性能达到最佳状况、什么地方是性能的 瓶颈。性能测试要求测试环境应尽量与产品运行环境保持一致,应单独运行,尽量避免与其他软件同时使用。

 

通过性能测试,如果找到了系统的极限或苛刻的环境中系统的性能表现,在一定的程度上,我们完成 了负载测试和容量测试。容量可以看作系统性能指标中一个特定环境下的一个特定性能指标,即设定的界限或极限值。容量测试目的是通过测试预先分析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),

如某个电子商务网站所能承受的、同时进行交易或结算的在线用户数。知道了系统的实际容量,压力测试、容量测试和性能测试的关系

压力测试可以看作是容量测试、性能测试和可靠性测试的一种手段,不是直接的测试目标。压力测试 的重点在于发现功能性测试所不易发现的系统方面的缺陷。而容量测试和性能测试是系统测试的主要目标内容,也就是确定软件产品或系统的非功能性方面的质量特 征,包括具体的特征值。容量测试和性能测试更着力于提供性能与容量方面的数据,为软件系统部署、维护、质量改进服务,并可以帮助市场定位、销售人员对客户 的解释、广告宣传等服务。

压力测试、容量测试、性能测试,测试的方法相似、相通,在实际测试工作中,往往结合起来进行,以提高测试效率。一般会设置专门的性能测试实验室,完成这些工作。即使用虚拟的手段模拟实际操作,所需要的客户端有时还是很大的,所以性能测试实验室的投资较大。

 

 

 

 

性能测试指标-中英对照

 

1、SQL数据库:

1 User 0 Connections (用户连接数,也就是数据库的连接数量);

2 Number of deadlocks/Sec/-Total (数据库死锁)

3 Memory\ Availalle Mbyte 内存监控 (可用内存)

4 Physicsdisk \disk time \-Total(磁盘读写总时间)(出现瓶颈时检查读磁盘的时间长还是写磁盘的时间长)

5 Butter Caile hit(数据库缓存的选取命中率)

6 数据库的命中率不能低于92%

2、Web Server:

1 Processor \ Processon time \ Tatol cpu时间

2 Memory \ Availalle MbyteAvai 应用服务器的内存

3 Requst Quened 进入HTTP队列的时间;队列/每秒

4 Total request 总请求数时间

5 Avg Rps 平均每秒钟响应次数= 总请求时间 / 秒数

6 Avg time to last byte per terstion (mstes)平均每秒迭代次数;上一个页面到下一个页面的时间是你录入角本的一个过程的执行

7 Http Error 无效请求次数

8 Send 发送请求次数字节数

3、Webload的压力参数:

1 Load Size(压力规模大小)

2 Round Time(请求时间)

3 Rounds (请求数)

4 Successful Rounds(成功的请求)

5 Failed Rounds (失败的请求)

6 Rounds Per Second (每秒请求次数)(是指你录入角本的任务在一秒中执行的次数,类似Avg time to last byte per terstion (mstes))

7 Successful Rounds Per Second(每秒成功的请求次数)

8 Failed Rounds Per Second(每秒失败的请求次数)

9 Page Time 页面响应时间

10 Pages (页面数)

l1 Pages Per Second (每秒页面响应数)

l2 H it Time(点击时间)

l3 Hits(点击次数,也可以是请求次数,不过有一些不一样)

l4 Successful Hits (成功的点击次数)

l5 Failed Hits (失败的点击次数)

l6 Hits Per Second (每秒点击数)

l7 Successful Hits Per Second (每秒成功的点击次数)

l8 Failed Hits Per Second (每秒失败的点击次数)

l9 Attempted Connections (尝试链接数)

20 Successful Connections(成功的连接数)

2l Failed Connections(失败的连接数)

22 Connect Time(连接时间)

23 Process Time(系统执行时间,一般用来显示CPU的运算量,服务器端与客户端都要记录)

24 Receive Time(接受时间)

25 Send Time(请求时间)

26 Time To First Byte ()

27 Throughput (Bytes Per Second)()

28 Response Time(回应时间)

29 Response Data Size()

30 Responses()

31 Transactions per second(每秒处理事务数) http连接Get or Post方法的事务数

32 Rounds per second(每秒完成数) 每秒完全执行Agenda〔代理〕的数量

33 Throughput(吞吐量)(bytes per second〔每秒字节数〕) 测试服务器每秒传送的字节数

34 Round Time 完成一次事务所用的必要时间,单位是秒

35 Transaction Time是完成一次事务的必须时间。事务:包括连接时间,发送、响应和处理时间。

36 Connect Time 客户端到测试服务器的一个连接完成的时间,单位秒(包括建立和收到的TCP/IP时间)

37 Send Time 是将事务写入测试服务器的缓冲必要时间 ,单位秒

38 Response Time 是客户端请求接受测试服务器响应的必要时间,单位秒

39 Process Time 处理数据的必要时间

40 Load Size 负载测试时开启的虚拟客户数量〕

41 Rounds 在测试会话期间执行议程脚本的时间数

42 Attempted Connections 尝试连接测试服务器的数量

43 HTTP Response Status 每一个http响应被结束的时间数量

44 Response Data Size 由测试服务器发送的响应大小,单位字节。

 

 

网站压力测试指标

1. 响应时间

2.点击数

3.吞吐量(任一秒上从服务器获得的数据量)

4.并发用户.

5.资源利用率(内存.CPU的利用率)

6.每秒连接数(每秒打开的新的TCP/IP连接数)

负载、性能测试和容量测试的关系和区别

标签:

原文地址:http://www.cnblogs.com/haust/p/4434044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!