一、面向目标:Arrivals Thread Group
需求:要做一个秒杀, 能支持1000个人同时秒杀,我们的系统不能崩溃。
1秒内的人数的运行是有先后的,1000个人在1秒钟内启动,运行完毕一次就停掉了。
由图可以看到,有的response是几十毫秒或者几百毫秒都可以处理完毕。有时候几十毫秒处理完毕后就停掉了,所以没办法保证有一千个人的。
可以理解为:1000个人访问我们系统,持续运行,系统不能崩溃,响应时间也不能过长。运行的时候,有些人运行得很慢,有些人运行得很快,但是不能出现报错。
用户对秒杀的理解:我要在1秒钟内收到处理结果,也就是1000tps。只要服务器1秒钟能够处理1000个事务,不管有多少人。发过来1000个事务,就处理掉一千个事务。
1秒钟产生1000个线程数,导致服务器压力特别大,服务器出现异常,服务器出现异常是因为请求量特别大而出现的,并不是服务器的处理能力不行。
因为在做性能测试之前,并没有持续向服务器发起请求。
真实的情况,在秒杀之前,肯定有很多人已经登上了服务器了。
绝对不是服务器处于空闲的状态,突然来了1000个秒杀。
二、面向目标:Concurrency Thread Group
你说这个系统能不能支持100个并发用户?
100个人登录系统,每个接口的请求响应时间要5秒多钟才给你返回回来,用户的角度来说,是不能被接受的。
说明这个系统不能支持100个并发用户数。
三、波浪型场景:Ultimate Thread Group(终极线程组)
有时间规律:波浪型Ultimate Thread Group 终极线程组。
第二行,起始时间 要 大于等于 前一行的所有时间之和(例如上班和下班,中间是有上班停顿的时间,这个时间是可以不操作的,那么就把“初始化延迟启动时间”设置的久一些)。
阶梯线程组每次只能设置相同步长的,如果要设置不同步长,如何设置?
这波浪型场景也是可以设计阶梯线程组的。
补充
不同的企业追求的性能指标不一样,有的企业的项目追求tps值,有的企业的项目追求最大并发用户数,不同的企业的项目求的不一样。
Arrivals Thread
:达到多少率,tps。
Concurrency Thread
:达到多少人,并发数。
ngrinder只能设置固定人数,因为它是自动分配的。
脚本链接:
链接:https://pan.baidu.com/s/1wROVT9dNH-Y-Bm2xTYVPYA?pwd=1234 提取码:1234
文章中的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。「文章是清菡编写的,如有转载,请标明出处!」