明确几个用户数的区别。
并发用户数vs 系统用户数 vs在线用户数
- 并发用户数,是性能测试的源动力。
-
系统用户数 :只要在产品中注册了就是系统用户,系统用户不一定对产品有请求压力(可能注册后再也不用了)
-
在线用户数:不一定注册,在访问产品的用户,对产品也不一定有请求压力(挂机的情况)。
- 行业中,对于在线用户数,一般认为只有5%-10%对产品有真正的请求压力。
响应时间
从一个请求发起时间点开始,到收到响应的时间之差。一般使用的都是平均响应时间。
不包括收到响应之后前端的渲染展示时间。
浏览器兼容性测试:选择不同浏览器内核的,不同内核的前端渲染时间有差异。
jmeter无法做前端的性能测试。
jmeter中90%的响应时间、95%的响应时间、99%的响应时间
90%的响应时间:90%的请求的响应时间小于等于这个时间的。(100个请求,90个请求响应时间<1.5s)
95%的响应时间
99%的响应时间
指标 | 释义 | |
---|---|---|
TPS | 服务器,每秒处理的事物数 | |
QPS | 服务器,每秒查询次数 | |
RPS | 发起方,每秒请求次数 | |
HPS | 发起方,每秒点击次数 | 一般用在有界面的性能测试才说。 |
吞吐量 | 网络中,每秒传输的事务数 | |
吞吐率 | 网络中,每秒传输的字节数KB/s | |
服务器资源利用率 | cpu 内存 io 网络 |
TPS:服务器每秒处理的事务数
并发用户数*频率*1s=1秒钟的并发量
- 如:并发用户数为5,频率为2,时间1s =10。10tps-----服务器要在1秒钟内把10个并发全部处理掉,才能保证频率为5。
- 假设频率不变,增加并发用户数,那总的情况量就会增大,tps值也会更大。
- 当总请求量达到服务器的处理能力是,频率就会下降。
tsp/并发用户数=频率。(每个人每秒钟发起的请求数)
每个请求的平均耗时=1/频率数
频率越高,每个请求的平均响应时间越短---性能也就越好
频率越高,服务器处理的总量就会越高---性能越好。
做性能测试,不应该去限制评论,否则无法真实的反映服务器的性能。
所以在jmeter中,一般不加定时器(集合点)
http协议,每个用户的请求,一定是收到钱一个请求的响应之后,才会发起下一个请求。
事务
jmeter中,默认情况下,一个完整的请求就是一个事务
jmeter中,也可以通过事务控制器,控制多个请求为一个事务。
QPS:每秒的查询次数
服务器每秒查询多少次。(tps服务器每秒处理的多少次)
查询的次数 不一定等于服务器的事物数。----qps的数值不一定等于tps的数值。但两者之间是正比关系。
RPS:每秒的请求数
发起方,每秒请求多少次。
jmeter中,默认一个完整的请求就是一个事务。
所以数值上,rps有时候会等于tps,网络没有瓶颈的情况下,我们也会用rps当做tsp
(带宽不够,服务阻塞的的情况下,rps不等于tps)
hps:每秒的点击数
发起方的点击数
这个概念一般是有界面的性能测试才说。
tps qps rps hps都是来表达处理能力的,但是我们平常工作中,经常会把它们等价。
吞吐量
网络中,每秒传输的事务数
- 在没有网络瓶颈的情况下(如服务器返回阻塞,网络阻塞),吞吐量=tsp的数值。
- 在负载测试或者网络有瓶颈的测试,都不能把吞吐量当做tps
网络有瓶颈的情况下(如服务器返回阻塞,网络阻塞),吞吐量!=tsp的数值
性能测试要先做负载测试,负载测试逐步增加并发用户数,在执行的这一段时间,并发数是变化的
jmeter中只在聚合报告中看到一个吞吐量的值,那么做负载测试时,是无法看吞吐量的值的,不能反应tps的真实反应情况。
吞吐率
网络中,每秒传输的字节数
- B是大写的,小写b。1B=8byte 网络带宽100Mbps =102400kbps = 102400/8 KBps = 12800KBps 1M的带宽,理论上的最大值128KB/s
- 吞吐率有上行和下行两种。
上行和下行对我们生活的影响
带宽有:企业带宽和民用带宽
做性能测试时,尽可能用企业带宽,不要用家里的民用带宽。在家里会导致性能测试数据不准。
服务器资源利用率
做性能测试,一定要关注服务器资源利用率
服务器资源,不局限与硬件资源,cpu 内存 io 网络
需要使用监控,来监控服务器的各项资源使用情况。监控数据,有数据,才能分析问题
笼统的讲的是,硬件资源利用率
cpu 内存 io 网络 使用率不超过一个阈值 --一般80%
- cpu都是多核,是总体的80%,而不是某一个的80%