性能测试知识入门
-
思维差异
a.功能测试、自动化测试:
输出:找bug 预期结果与实际结果进行比较
隐藏的前提:模拟的都是1个用户的操作
b.性能测试:
不是模拟1个人…模拟多个人同时
关注:多个人操作时,响应时间,响应速度。有多少成功,多少失败,响应时间,消耗资源(cpu、内存)。
接口调用服务器的性能测试中,一定是多人同时操作,才是性能测试。
c.性能概念
100个人同时登陆接口进行登陆,性能中的avgRT应该在多少,是可以被接受的?
–可接受的范围1.5S
渲染数据,页面性能:由于有多接口,js渲染等等。
课程重点在于接口调服务器的底层性能,能接受的范围在1.5S之内。
1.5S的来源:APDEX用户满意度指数,响应时间衡量满意标准。
事务:一个请求行为,并不一定只有一个接口,所以,一个事务可能是多个接口。
是从发起,到网络传输,收到响应。
jmeter:默认情况下,1个接口请求一次,认为是一个事务,transation。
也可以是通过事务控制器挂载多个接口请求,合并成为一个事务。性能测试:通过工具,模拟多用户发起请求,获取性能指标值。
用工具来模拟多个人的方式很多,线程,进程。 也可以进程和线程的组合方式。协程
线程:使用进程的资源来干活;进程底下干活的(具体干活的,手,头等)jmeter\LR
进程:资源拥有者,资源消耗比较大 一个运行的程序(人,也可以干活,但是很麻烦)LR
协程:线程的子集 pyhton–locust
python里没有真正的多线程,是用协程实现的,是伪多线程。
进程+线程:ngrinder
没有进程是不存在线程的,资源全部来自于进程。
一个程序至少有一个进程,可以没有线程,但一般至少一个线程。
性能指标:
平均响应时间 avgRT 90% 90%的响应时间在这个时间点之下。
TPS:服务器每秒处理的事务数。–衡量服务器处理能力的最主要的指标。
吞吐量:网络中每秒传输的事务数。
1.没有网络瓶颈时,tps数值=吞吐量数值
2.如果网络有瓶颈,tps数值!=吞吐量数值
吞吐率:每秒钟能通过多少kb数据。
服务器资源利用率:cpu、内存、io的利用率
io:磁盘读写,网络数据的换入换出
并发用户数:同一时间发起请求 用户数
广义并发:同一时间发起请求(相同、不相同)
狭义并发:同一时间发起相同请求
集合点:集合多个人在同一时间发起相同请求
并发用户数100 发起请求 一秒钟会发起多少请求?
(请求的频率)不知道,所以1秒钟总请求量,不知道。
负载测试:逐步增加并发用户数,确定系统所能承受的最大拐点区间。
区间怎么判断?–有没有报错?tps下降?响应时间变长(此时tps无上升无下降)?
50tps:服务器每秒能处理50个事务
50t/s60s60=1小时处理的事务数 18W 300tps
18W*8h=144W
先找拐点区间,再找具体值
压力测试:在一定的性能压力下,持续运行一个比较长的时间。看系统各项资源的稳定性。
关键词:较大压力+较长时间