内容简介:性能测试基础知识
参考书籍:《软件性能测试过程详解与案例剖析》第二版——作者:段念
1、定义
对响应时间的评估、分析,结合应用的架构和实现细节找出问题,并最终确认问题得到解决的过程
2、影响软件性能的因素
网络环境、数据库服务器、应用服务器、业务逻辑的实现方式、系统采用的架构、代码的优化程度、使用者的使用方式等
3、测试模型
通用的软件测试过程模型(PTGM)、敏捷软件测试模型(ATPM)
4、软件性能测试的应用领域
能力验证、规划能力、性能调优、瓶颈发现、性能基准比较
一:基础篇
1、软件性能测试的基本概念
1.1 性能是一种指标(软件性能对其及时性要求的符合程度)
性能的及时性用响应时间或者吞吐量表示
响应时间:对请求做出响应所需要的时间
例子:交互式的应用(web):用户感受到的响应时间
非交互式的应用(嵌入式或者银行等业务处理系统):系统对事件产生响应的time
1.1.1 用户视角的软件性能
端→端
用户操作——数据操作请求——(应用服务器)服务端响应——返回数据——用户端
1.1.2 管理员视角的软件性能
服务器资源使用状况是否合理 资源利用率
数据库资源使用状况是否合理 资源利用率
系统能否可以实现扩展 系统可扩展性
系统的最大并发,压力是多少
并发:最多能支持多少用户访问 系统容量
压力:最大的业务处理量
系统可能的瓶颈在哪里 系统可扩展性
更换什么设备能提升系能 系统可扩展性
能否支持7*24小时的业务访问 系统稳定性
1.1.3 开发视角的软件性能
架构设计是否合理 系统架构
数据库设计是否存在问题 数据库设计
代码是否存在性能方面的问题 代码
系统中是否存在不合理的内存使用方式 代码
系统中是否存在不合理的线程同步方式 设计与代码
系统中是否存在不合理的资源竞争 设计与代码
1.1.4 web前端性能
Web应用的前端响应时间:页面加载时间
其中包括:
1.对HTML的解析读取
2.对页面图片及CSS等文件的获取和加载
3.客户端脚本(JavaScript)的执行时间
4.对页面进行展现所花的时间
1.2软件性能的几个主要术语
1.2.1
合理的响应时间取决于实际用户需求
1.2.2
并发用户数:N数值的用户同时访问系统
1.服务器实际承受的压力不只取决于并发用户数,还取决于用户的业务场景
2.服务端承受的最大并发访问数取决于并发用户数+业务场景
业务场景:通过服务器日志的分析得出的结果
日志分析方法:对服务器日志进行分析,了解系统用户的使用状态,计算出服务器承受的最大并发用户数量
特点:准确度/可信度高
适用:internet应用(无法估算用户量和行为方式)
推荐日志分析工具:AWStats:http://awstats.sourceforge.net/
这是一个基于 Perl 的日志分析工具,可对Apache/IIS的日志进行分析,还有良好的扩展支持
用于估算并发用户数的公式(仅供参考)
平均用户并发数:C=n*L/T
峰值并发用户数:C›≈C+3√C
其中,C是平均并发数,n是用户从登陆到退出系统的时间段,L是系统使用时间段的平均值,T是使用系统的时间段数值,C›指并发用户数的峰值
对于企业内部使用的web系统,还有精度更小的一种公式
平均用户并发数:C=n/10
峰值用户并发数:C›≈r*C
其中,r值一般取2—3.这种方法要求不太严格,只有很少数据支持分析的性能测试中使用
1.2.3 吞吐量
定义:单位时间内系统处理客户请求的数量
一般来说,请求数/每秒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本身的请求)
1.2.4性能计数器(Counter)
定义:描述服务器或者操作系统性能的一些数据指标
作用:监控、分析
分析系统可扩展性,进行性能瓶颈的定位时,计数器取值非常关键
相关指标:资源利用率:系统各种资源的使用情况
1.2.5思考时间(Think Time)
休眠时间:用户操作时间每个请求的间隔时间
体现在脚本中,就是操作之间放一个Think函数,使脚本在执行两个操作之间等待一段时间
公式F=N(vu)*R/T吞吐量是VU数量N,请求数R和时间T的函数,其中,R又可以用时间T和用户的思考时间Ts来计算:
R=T/Ts (请求数=时间/请求间隔时间)
推荐一个计算思考时间的方法:
1.首先计算出系统的并发用户数
2.统计出系统平均的吞吐量
3.统计出平均每用户发出的请求数量
4.根据上面的公式得出请求时间
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
标签: 性能测试
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Remote
Jason Fried、David Heinemeier Hansson / Crown Business / 2013-10-29 / CAD 26.95
The “work from home” phenomenon is thoroughly explored in this illuminating new book from bestselling 37signals founders Fried and Hansson, who point to the surging trend of employees working from hom......一起来看看 《Remote》 这本书的介绍吧!