本章大纲
响应时间
并发用户数
吞吐量
系统性能计数器
思考时间
响应时间
性能测试的指标可以用四个字来概括:
多 - 并发量 - 能够支持最大用户访问量
快- 延时,响应时间 - 页面响应时间有多快
好- 稳定性(长时间运行)- 越多越快运行的好,可持久运行
省 - 资源使用率 - 资源要省
思考时间:用户操作的时候都有一个等待时间,所以做自动化是需要加一个思考时间。
响应时间:对请求作出响应所需要的时间,是用户感知软件性能的主要指标
原理:
用户操作时会发送一个http请求到服务器 -> web服务器接受到这个请求后需要查找文件,在这个时候,有一个网络接受时间和服务器处理时间 -> 如果需要查找数据,需要登录、密码做对错验证,登录后台去反馈、查找消息,这个时候会有一个N2(网络时间)发过去。如果web服务器与data服务器在同一台电脑上,就没有N2/N3了,通过ping ip/域名 就可以查看N2网络时间。
用户感知的感应时间:是端到端的时间
响应时间包括:
用户客户呈现时间
请求/响应数据网络传输时间
应用服务器处理时间
数据库系统处理时间
响应时间多少合理?
对于web系统/app,普遍接受的响应时间标准为 2/5/8s
2s之内响应客户 是非常好的
5s之内响应客户 是可以接受的
8s之内响应是能接受的响应 上限
并发用户数
用户数概念:
系统用户数:软件系统注册的用户是用户数
注册用户数对系统有影响但不大,主要影响磁盘、内存(存储上面影响内存)、cpu也有影响,所以在做测试之前要部署这部分用户数据,也就是性能测试之前要构造与真实环境差不多的环境。
对磁盘影响的原因:磁盘里有磁头,注册时需要找空白的地方才可写入。
系统注册用户量:1、影响磁盘空间,磁盘空间满和空对系统查询有很大影响。2、系统性能测试要做初始化环境。
总结:没有经过初始化的子女给你拿环境是没有用的环境
如果做性能服务器不在本地,在海外/其他城市,该如何解决?(网络)
需要找公司运维:linux注入网络延时的方法,通过网络延时来解决
如果数据有特定要求,该怎么办?
将线上数据dump一份/通过脚本创建测试使用的数据
在线用户数:某段时间内访问的用户数,这些用户是在线的;不一定同时做某一件事
对内存影响最大,cpu、磁盘影响不大
web-session(会话)--存储在内存中的
cpu,时间片:每个进程给一个固定的时间,查看状态好不好,切下一个切下一个才保证电脑上每个进程公平执行。
初始化环境:warm up(热机)--磁盘进入内存的过程:1、让磁盘掉入内存。2、让内存接近真实环境
并发用户数:某个时间内向软件系统提交请求的用户数;场景不一定是同一个
并发:用于从业务的角度模拟真是用户同时访问
并发数:同时访问系统的用户数
在c/s或b/s结构的应用,系统的性能主要有服务器决定。服务器在大量用户同时访问时,压力最大
并发分为:
严格并发:同一个人在同一时间做同一件事,如:秒杀/拼团
广义并发:同一时间做不同的事情,如:在同一时间,对多个接口做不同场景的测试
你测试一下这个web系统的性能,看能支持多少并发?
在确定并发用户数之前,必须对用户的业务进行分解,分析出其中的典型场景(用户最常用,最关注的业务操作),然后基于场景获得其并发用户数。
常见场景:访问网站首页、登录功能、核心业务功能、个人中心
平均并发用户数的计算:C=nL/T
C -- 平均的并发用户数
n -- 平均每天访问用户数(login session)
L -- 一天内用户从登录到退出的平均时间(login session的平均时间)
T -- 考察时间长度(一天内多长时间有用户使用系统)
并发用户数峰值计算:
C^约等于C + 3*根号C
示例:
一个oa系统有3000个用户,平局每天大约有400个用户访问该系统,对于一个典型的用户来说,一天只有8小时内使用该系统,且从登录到退出该系统的平均时间为4小时。
C=nL/T=400*4/8=200
C^=C + 3根号C=200+3根号C
如果系统不熟悉,并发用户数咋算?
并发用户数量的统计的方法目前还没有准确的公示
不同系统会有不同的并发特点
例如oa系统统计并发用户数量的经验公式为:使用系统用户数量*(5%~20%)
吞吐量
性能测试:单位时间内系统处理用户的请求数
从业务角度看:吞吐量可以用:请求数/秒、页面数/秒、人数/天 或 处理业务数/小时等单位来衡量用 请求数/秒 或 页面数/秒 来衡量。
从网络角度看:吞吐量可以用:字节/秒来衡量。
对于交互式应用来说,吞吐量指标反映的是服务承受的压力,它能够说米昂系统负载能力。
吞吐率:将单位时间变成1s就是吞吐率--TPS每秒事务数
以不同的方式表达的吞吐量可以说明不同层次的问题?
以字节/秒的方式:主要是受网络基础设施、服务器架构、应用服务器制约等方面的瓶颈。
以请求数/秒的方式:主要是受应用服务器和应用代码的制约体现的瓶颈。
计算
没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用一下公试计算:
F=VUR/T=1001/5=20
F -- 吞吐量
VU -- 虚拟用户个数
R -- 每个虚拟用户发出的请求数
T -- 性能测试所用的时间
系统性能计数器
性能计数器:描述服务器或操作系统性能的一些数据指标,比如:内存、cpu、磁盘等资源使用率等。
思考时间
Think Time:从业务角度来看,这个时间是指用户进行操作时每个请求之间的时间间隔。
在做性能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。