性能测试的指标可以用四个字来概括:
* 多:并发量(能够支持最大用户访问量)
* 快:延时、响应时间(页面响应时间有多快)
* 好:稳定性--长时间运行(越多越快运行的好,可持久运行)
* 省:资源使用率(资源要省)
响应时间对请求做出响应所需要的时间,是用户感知软件性能的主要指标。响应时间包括:
* 客户端呈现时间(端到端)
* 请求/响应数据网络传输时间
* 应用服务器处理时间
* 数据库系统处理时间
客户感知的响应时间是端到端的,从发出请求到页面呈现出来的时间,是以上时间的总和。通过 ping 命令可以查询到上面几个响应时间。响应时间合理范围:对于一个web系统,普遍接收的响应时间标准为2/5/8秒。
* 2 秒之内响应客户是非常好的
* 5 秒之内响应客户是可以接受的
* 8 秒是客户能接受响应的上限
性能拐点并发用户数用户数的概念
* 系统用户数:软件系统注册是用户总数(影响磁盘空间〔初始化性能环境〕)/内存/CPU)
* 在线用户数:同时登陆系统在线的用户数量(影响内存)
* 并发用户数:对某一操作或者功能,同时进行访问的用户数量
🏻平均并发用户数的计算:C=nL/T
* C:平均并发用户数
* n:平均每天访问用户数(login session的平均时间)
* L:一天内用户从登录到退出的平均时间(login session的平均时间)
* T:考察时间长度(一天内多长时间有用户使用系统)
🏻并发用户数峰值计算:C≈C+3*根号C 适用场景:有数据统计做支撑。❓ 如果系统不熟悉,并发用户数咋算? 并发用户数量的统计方法目前还没有准确的公式,不用系统会有不同的并发特点。 例如 OA 系统统计并发用户数量的经验公式为:使用系统用户数量*(5%~20%)吞吐量❓ 如何看吞吐量?
* 从性能测试角度看:指单位时间内系统处理用户的请求数
* 从业务角度看:吞吐量可以用 请求数/秒、页面数/秒、人数/天或处理业务数/小时 等单位来衡量
* 从网络角度看:吞吐量可以用 字节/秒 来衡量
* 对交互式应用来说,吞吐量指标反应的是服务器承受的压力,它能说明系统的负载能力
* TPS:每秒事务数
以不同方式表达的吞吐量可以说明不同层次的问题
* 以 字节数/秒 方式:表示主要受网络基础设施、服务器架构、应用服务器制约等方面的瓶颈;(硬件)
* 以 请求数/秒 方式:表示主要是受应用服务器和应用代码的制约体现出的瓶颈。(软件)
🏻吞吐量计算:F=VU*R/T
* F:表示吞吐量
* VU:表示虚拟用户个数
* R:表示每个虚拟用户发出的请求数
* T:表示虚拟测试所用的时间
当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系实例:采用 100 个并发,每个 VU 间隔 1 秒发出一个请求,计算吞吐量吞吐量:F = 100 * 1 / 1 = 100❓ 吞吐量出现性能瓶颈的可能原因有哪些?
* 硬件原因:
* 增加服务器
* CPU/磁盘内存是否满了
* 网络原因
* 网络拥塞丢包(增加带宽)
分析下图吞吐量达到瓶颈的原因是什么?用户数达到 300 时,吞吐量出现拐点,之后的曲线趋于水平,几乎无增长,这可能是网络拥塞丢包所致,需要增加带宽,因为如果是硬件 CPU 或 磁盘内存空间 不足的话,拐点后面的曲线不会这么平,会有波动系统性能计数器描述服务器或操作系统性能的一些数据指标。比如:CPU、内存、磁盘等资源使用率等。思考时间Think Time:从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔。目的是在做性能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念来更加真实的模拟用户的操作。因为用户操作的时候都有一个等待时间,所以做自动化需要加一个思考时间。CPU,时间片初始化环境:warm up 热机,磁盘进入内存的过程,让内存接近真实环境。