PTS支持两种压力模式,分别为并发模式(即虚拟用户模式)和RPS模式(即Requests Per Second,每秒请求数,吞吐量模式)。 本文为您介绍这两种压力模式的区别,以便您根据自身业务场景选择更合适的压力模式。
并发模式
“并发”是指虚拟并发用户数,从业务角度,您也可以理解为同时在线的用户数。
应用场景
如果您需要从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发。
使用说明
- 并发模式下,您需要指定全场景的最大并发数,再设置各串联链路的并发权重。
- 串联链路内各API的响应速度不同(表现为响应时间不同),所以单位时间内API的并发数也会不同。API响应速度越快,单位时间内累积在API上的并发用户数越少。
假设,目前共有100个虚拟用户需要操作某个事务(即串联链路)。该串联链路中共有2个API,API 1的响应速度快而API 2响应速度慢。则更多的虚拟用户将会等待在API 2上,API 2则需要更多的线程资源来处理更多的虚拟用户请求。
RPS模式
RPS(Requests Per Second)是指每秒请求数。
应用场景
RPS模式即吞吐量模式,通过设置每秒发出的请求数,帮助您从服务端的角度出发,直接衡量系统的吞吐能力,免去从并发到RPS的繁琐转化,可快速实现压测。
使用说明
- API接口(如电商加购物车、下单等)主要用TPS(Transaction Per Second, 每秒事务数)来衡量系统的吞吐能力,选择该模式可以直接按照预期的TPS设置RPS。如果希望检验“下单”接口是否能达到500 TPS的预期,那么设置RPS为500,每秒发送500个请求,可检验系统的吞吐能力。
- 该模式下,请求无法及时响应时可能会导致较高的并发,异常情况请及时停止。
- 该模式仅支持非自动递增进行压测,即您需在压测过程中手工调速。具体操作,请参见手动调速模式下调速。
- 同一链路中,后一个API的RPS值需小于等于前一个API的RPS值。
基于您的实际业务考虑,一般正常业务链路转化模型应该为漏斗形状。例如,您的正常业务链路为:查看首页-查看商品详情-加入购物车-下单-付款。那么通常情况下,查看首页的用户数会比查看商品详情的用户数多,查看商品详情的用户数也会比加入购物车的用户数多,以此类推,所以后一个API的RPS值需小于前一个API的值,这样就比较符合漏斗模型。
配置量级及数据
设置好压测模式后,您还需要在施压配置页面设置压测起始量级与最大量级。
压测数值
每个API可以视为业务系统的一个节点,处理能力不同导致可承载的业务量也不一致。并发模式与RPS模式施压的方式不同,故压测数值上的设置也会不同。
参数 | 描述 |
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。
|
最大并发 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
起始百分比 | 当流量模型选择的是手动调速时,需要配置该项。举例说明:当最大并发设置为100,起始百分比设置10%时,会以10个并发数启动压测,压测过程中,最高可以手动调速到100;若不选择手动调速,就会以10个并发数一直压测到结束。 |
起始RPS | 在RPS模式下,需要设置全局的起始RPS。 |
最大RPS | 在RPS模式下,摸底的是服务端吞吐能力,故需要给压测场景设置全局的起始RPS与最大RPS。 RPS模式的流量模型是按从起始RPS到最大RPS均匀递增的模型。 |
压测时长 | 设置压测的时间长度。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
是否指定循环 | 默认是,循环是JMeter特有的,指每个并发是否需要循环执行。并需要设置循环次数,指定每个并发需要循环执行几次。在RPS模式下,可以指定循环。 |
循环次数 | 每个循环的并发执行次数。在指定循环后,需要设置循环次数。 |