开发如父,测试如母,为了孩子能茁壮成长,母亲想教育孩子也可能能力不够,父亲更严厉能力更强,母亲指出孩子错误,父亲纠正孩子错误。
一、性能测试的基本概念
1、为什么要做性能测试?
1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。 2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。--------------------- 作者:Iam柒年 来源:CSDN 原文:https://blog.csdn.net/qq_37884273/article/details/82389312 版权声明:本文为博主原创文章,转载请附上博文链接!2、什么是软件性能
定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出的及时性。
性能关注的是软件的非功能特性,性能测试的介入在功能完成之后。另外,由定义中的及时性可知性能测试是一种指标,可以用时间或其他指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
性能测试的定义:通过自动化工具模拟多种正常、峰值以及异常负载条件来对系统的各项指标进行测试。
3.不同群体眼中的性能
不同的人由于人生观、世界观、价值观以及教育背景、只是体系、人生阅历的不同,对于同一事物或问题的不同看法可能不同。对于软件性能也如此,不同的人由于视角的不同,所关注的点也可能不同。
- 用户眼中的性能
- 开发眼中的性能
- 系统管理员眼中的性能
- 测试眼中的性能是什么样的呢?
测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:
1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。
2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。
性能测试包括:负载测试、压力测试、强度测试、并发测试、疲劳强度测试、大数据量测试等
1.负载测试:逐步增加系统负载,测试系统性能的变化,并最终确定性能指标的情况下,系统所能承受的最大负载量的测试。
2.压力测试:目的发现在什么条件下系统的性能变得不可接受,并通过对应应用程序施加越来越大的负载,直到发现应用程序性能下降的拐点。
6.大数据量测试(独立数据量测试和综合数据量测试)
独立数据量测试:针对某些系统储存、传输、统计、查询等业务进行单用户大数据量测试。
批处理任务是指一次操作将对数据库中大量数据进行互斥访问的数据库事务。
性能测试常见术语:
1)响应时间:对请求相应所需要的时间
响应时间-负载对应关系:
图中拐点说明:
1、响应时间突然增加
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
2)并发用户:所有的用户在同一时刻做同一件事情或操作
并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
系统用户数:系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
3)吞吐量:单位时间内系统处理用户请求的数量
b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。
另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。
c)计算方法:Throughput = (number of requests) / (total time).
d)吞吐量-负载对应关系:
图中拐点说明:
1、吞吐量逐渐达到饱和
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
4)页面访问量(PV page view):页面被刷新的数量,PV高不代表访问量高
5)业务成功率:成功的业务数占总业务数的百分比
6)资源利用率:系统各种资源的使用状况,资源的实际使用量/总的资源可用量
b) 通常需要关注的服务器资源如下:
1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制
2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。
3、磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。
4、网络:
c)资源利用-负载对应关系:
图中拐点说明:
1、服务器某荐资源使用逐渐达到饱和
2、通常可以利用拐点来进行性能测试分析与定位
5、其它常用概念:
a) TPS:Transactions Per Second,每秒事务数
b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的
c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.
d)PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。
UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)
六、理发店模型和曲线拐点模型
上面介绍了很多性能测试中的基本概念,比较抽象,可以通过 或 来帮忙我们更好的理解这些概念。这里不做详细介绍了,需要的可直接查看原文。
七、做好性能测试需要掌握的知识:
- 掌握一门编程语言
- 掌握计算机原理和操作系统知识
- 良好的网络基础
- 掌握数据库知识
- 中间件(apache,tomcat)
- 常用抓包工具
- 性能测试工具
性能测试的内容:
1.应用在客户端性能的测试
2.应用在网络上性能的测试
3.服务端
作者:
出处: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。