性能测试(二)在什么阶段进行性能测试 ?进行性能测试需要哪些步骤?指标有哪些?
一、在什么阶段开展性能测试工作?
二、性能测试需要哪些步骤?
三、性能测试的指标?
四、理发店模型和曲线拐点模型
五、做好性能测试需要掌握的知识
一、在什么阶段开展性能测试工作?
一般情况下,是在被测系统已完成功能测试、系统趋于稳定的情况下,才会进行性能测试。
我个人认为是有条件的话是第一轮冒烟就可以进行,学校扩建地例子,如果研发架构选择不对,会造成一定的问题,一般来说研发做好功能之后就要针对一些常驻稳定的功能进行负载测试再到压力测试,增加功能后继续进行负载测试再进行压力测试。
二、性能测试需要哪些步骤?
![](https://img2020.cnblogs.com/blog/971787/202106/971787-20210614162044545-11162449.png)
![](https://img2020.cnblogs.com/blog/971787/202106/971787-20210614162100883-814975180.png)
三、性能测试基本指标
1、响应时间
a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。
c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)
d) 响应时间-负载对应关系:
图中拐点说明:
1、响应时间突然增加
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
2、吞吐量
a)定义:单位时间内系统处理的客户端请求的数量
b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。
另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。
c)计算方法:Throughput = (number of requests) / (total time).
d)吞吐量-负载对应关系:
图中拐点说明:
1、吞吐量逐渐达到饱和
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
3、并发数:
并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
系统用户数:系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
4、资源利用率
a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
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)
- 常用抓包工具
- 性能测试工具