参考书籍:《软件性能测试过程详解与案例剖析》第二版——作者:段念
响应时间:
(1)应用系统从请求发出开始到客户端收到相应所消耗的时间
(2)应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间
PS:由于浏览器的行为是既定的,所以仍然采用第二种方式来描述响应时间
并发用户数:
(1)业务并发用户数:同一个时间段内访问系统的用户数量,该概念一般在性能测试(Performance Testing)方法中使用,用于从业务的角度模拟真实的用户访问
PS:重点是弄清楚会有多少用户会在同一时间段内访问被测试的系统
(2)服务器并发用户数:从服务器端承受的压力出发,描述的是同时向客户端发出请求的客户,该概念一般结合并发测试(Concurrency Testing)结合使用,体现的是服务器端承受的最大并发访问数
PS:这两种“并发”概念最根本的不同是什么呢?假设第一种用户每秒点击一次,第二种每五秒点击一次,两种情况下服务器承受的压力是完全不同的,而采用后一种“并发”的概念时,如果两种情况具有相同的足底啊并发用户数,则说明这两种情况下服务器承受的最大压力是相同的。而系统承受的最大并发访问数可以通过对服务器的日志分析得到。
日志分析工具:AWStats:http://awstats.sourceforge.net/
用于估算并发用户数的公式(仅供参考)
平均用户并发数:C=n*L/T
峰值并发用户数:C›≈C+3√C
其中,C是平均并发数,n是用户从登陆到退出系统的时间段,L是系统使用时间段的平均值,T是使用系统的时间段数值,C›指并发用户数的峰值
对于企业内部使用的web系统,还有精度更小的一种公式
平均用户并发数:C=n/10
峰值用户并发数:C›≈r*C
其中,r值一般取2—3.这种方法要求不太严格,只有很少数据支持分析的性能测试中使用
假设有一个QA系统,该系统有3000用户,平均每天有400个用户要访问系统,对于一个普通用户来说,一天只在8小时内使用该系统, 且一次只用4个小时,那么C(平均并发数)= 工作人数*工作时间/规定的工作时间= 400*4/8=200,而峰值并发用户数:C›≈C+3√C ,套入公式:C›≈200+3*√200 = 242
吞吐量:
.吞吐量直接体现系统的性能承载能力,是指单位时间内系统处理的客户请求的数量。
对于交互式应用来说,吞吐量指标反应的是服务器承受的压力。
一般来说,请求数/每秒OR页面数/每秒来衡量
从业务角度来说,访问人数/天OR处理的业务数/小时来衡量(PV、UV)
从网络角度来说,字节数/天来考察网络流量
Web系统的性能测试中,吞吐量指标可以在两个方面发挥作用
1.协助设计性能测试场景,以及衡量性能测试场景是否达到预期的设计目标
2.协助分析性能瓶颈
3.没有遇到瓶颈之前,吞吐量和并发用户之间存在的关系可以用下面的公式表达:
F=N(vu)*R/T
F表示吞吐量,N表示VU的个数,R表示每个VU发送的请求(点击)数量,T表示性能测试所用的时间
不同并发用户数量情况下,对同一系统施加相同的吞吐量,很可能得到不同结果
PS:大部分性能测试中,单击数(Hits)指客户端发出的HTTP的请求数量,而不是指用户在页面上的一次单击事件。
比如:一次单击事件请求页面A,页面A包含3张图片和一个框架(Frame),则这次单击共产生了5个Hits(包括对页面A本身的请求)
性能计数器(Counter)
定义:描述服务器或者操作系统性能的一些数据指标
作用:监控、分析
分析系统可扩展性,进行性能瓶颈的定位时,计数器取值非常关键
相关指标:资源利用率:系统各种资源的使用情况
思考时间(Think Time)
休眠时间:用户操作时间每个请求的间隔时间
体现在脚本中,就是操作之间放一个Think函数,使脚本在执行两个操作之间等待一段时间
公式F=N(vu)*R/T吞吐量是VU数量N,请求数R和时间T的函数,其中,R又可以用时间T和用户的思考时间Ts来计算:
R=T/Ts (请求数=时间/请求间隔时间)
推荐一个计算思考时间的方法:
1.首先计算出系统的并发用户数
2.统计出系统平均的吞吐量
3.统计出平均每用户发出的请求数量
4.根据上面的公式得出请求时间