1.并发数
PV / PV time * 因数
单一场景:所有用户在同一时刻做同一种操作。(一般用于验证程序或数据库的并发能力)
狭义上:指同一个时间点执行相同的操作(秒杀)
理解:并发用户,一直增加人,一旦这些人同时做一个事,那就是并发用户
复合场景:多个用户对测试系统发起多个请求,请求种类不同。(一般用于总体大规模测试)
广义上(企业中常用):如果是3个人,有的登录了,有的登录进入做其他
理解:同一时间点,发起的请求不相同也可以,对于服务器来说,同时处理3个事情。处理了不同事情,也是并发。
2.集合点:
loadrunner里有一个设置集合点,jmeter也有一个集合点的设置。
本来有10个人,并发用户,这10个人,有个人跑前面了,有的人跑后面了,中间立一个杆子(设置集合点,数据自己定,这里定为3),跑过来等着,没跑过来的接着跑,只要有3个人就可以继续跑了,一定要等3个人,才能继续跑。
真正的三个人做一件事。同一时间做相同请求。
集合点有一个策略,需要自己定。
集合点可以最大压力、并发。
3.并发用户数(重要指标)
同一时间点,执行相同请求的用户数
并发用户数:真正对系统产生压力的用户,同一时间用户进行了操作。
系统用户数、在线用户数、线程数
系统用户数:系统内注册的用户数,也可能是僵尸用户。
在线用户数:登录系统的用户,可能对系统产生压力的用户,因为有登陆后什么都不做的用户。
线程数:就是核心数,跟人的脑子一样,核心数2就说明CPU有两个脑子。脑子越多解决问题速度越快。CPU的核心数越高处理速度就越高。核心数2通俗地说就是双核CPU了。但自超线程技术问世后,一个核心可以同时2个线程了。使CPU性能上升百分之40。
线程与进程
https://blog.csdn.net/weixin_42981419/article/details/86162071
4.事务(Transaction)
指一个客户机像服务器发送请求然后服务器作出反应的过程
并没说一个请求,也没说同一个请求
如果加上发送同一个请求,那这一个接口就是一个事务,一个事务就是一个接口请求
如果不加,就是一个人(客户机),发起多个请求,一个事务就是3个请求,登录,购物,支付,也是一个事务。
一个事务可以是一个请求,也可以是多个请求。
jmeter,默认一个接口请求就是一个事务,当前这个接口的指标值
jmeter,也可以设置一个事务下,多个接口请求,加上事务控制器,这个业务的性能指标值(多个接口)
请求、接口、事务
5.响应时间(RT)重要指标
从发起请求到收到请求响应的时间
发送请求网络传输时间+服务器处理时间+返回响应网络传输时间
响应时间 = 网络延迟 + 应用程序响应时间
用户点击按钮 -> 手机发出请求 -> 经过运营商网络 -> DNS域名解析 -> 到达机房 -> 经过防火墙 -> 被应用服务器接收 -> 处理用户请求 -> 访问数据库查询 -> 返回HTML结果 -> 手机接收到数据 -> 页面渲染
我们可以把控的:接收用户请求、处理用户请求、访问数据库、(页面渲染)
6.TPS\QPS最主要指标
TPS(Transactions per Second):服务器每秒处理事务数,衡量服务器处理能力的最主要指标,是事务数,不是请求数。
累计执行次数 / 测试执行秒数(每秒通过事务数(TPS))
直接反映系统性能的指标,该值越大,说明系统性能表现越好,但每个系统都有TPS上限,它并不随着并发用户的多少而改变。
一般情况下, 及格的 tps = 并发数 / 0.3,也就是响应时间低于300ms。
企业里QPS(Queries per Second):服务器每秒处理事务数,衡量服务器处理能力的最主要指标 每秒查询率 大
无法用jmeter或lr这个来得到,这个是企业的,一个接口需要查询好多次,就出现好多个请求,Queries。
差异:一个Transactions可能有多个Queries,如访问网页
7.吞吐量(Throughput)
衡量网络,上行、下载都一样,就是等于TPS,网络足够宽,默认是一个请求一个事务,两个数值上相等。网络足够宽,一个事务多个请求,吞吐量不等于事务,1tps 3个吞吐量
单位时间内系统处理的请求数量,能直接反应服务器承受的压力水平。(事务/s)
如:港口吞吐量,一年5千万标准集装箱
8.吞吐率
单位时间通过的数据平均速率(KB/S)
港口日吞吐率,年吞吐量/365天
9.点击率(Hit per Second)
每秒点击数
10.思考时间
每个用户进行操作之间的间隔时间,可以更真实的模拟用户操作。 比如在贴吧发帖过快,会被提示:“两次发帖时间的间隔不能小于15秒。”
11.资源利用率 重要
(16核或32核的服务器,要看16核的使用率,不能只看一个,单核是100%都可以,不要达到80%的使用率,16*80%,4个核的闲置)
指服务器资源的使用程度,比如服务器(应用及数据库)的cpu利用率,内存利用率,磁盘利用率
内存利用率,不要超过80%
磁盘I/O
系统资源
- CPU:一般不允许超过60%。
- CPU Average:每个cpu核上等待的事务数,一般在top里查看,正常情况数值不可以超过cpu的物理核数。
- 内存:只要不是free太少,一般不用在意,重点观察jvm的内存。
- 硬盘IO: 现在的应用读多写少,对于IO需求不高,但是要注意log输出的影响。
- 网络:一般很少出现网卡跑满的情况,一般中间件TFS、Tair的性能测试会遇到
性能测试分类