内容简介:性能测试基础知识
参考书籍:《软件性能测试过程详解与案例剖析》第二版——作者:段念
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.根据上面的公式得出请求时间
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
标签: 性能测试
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
马化腾自述-我的互联网思维
赵黎 / 石油工业出版社 / 2014-8-1 / 35
马化腾自述:我的互联网思维》讲述了些人说移动互联网就是加了“移动”两个字,互联网十几年了,移动互联网应该是个延伸。我的感受是,移动互联网远远不只是一个延伸,甚至是一个颠覆。互联网是一个开放交融、瞬息万变的大生态,企业作为互联网生态里面的物种,需要像自然界的生物一样,各个方面都具有与生态系统汇接、和谐、共生的特性。开放和分享并不是一个宣传口号,也不是一个简单的概念。开放很多时候被看作一种姿态,但是我......一起来看看 《马化腾自述-我的互联网思维》 这本书的介绍吧!