压力模型

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模式施压的方式不同,故压测数值上的设置也会不同。

说明 无论选取何种压测模式,各场景最大值的总和不可超过该账户下对应资源包的最大VU、RPS。
参数描述
流量模型并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。
  • 手动调速:并发数是固定的。对应的压力预估图是一条平直线,即设置多少并发数,会一直按这个并发数来进行压测。
  • 均匀递增:默认均匀递增,并发数以每分钟相同数量的递增方式来进行压测。对应的压力预估图是一条斜直线。
  • 阶梯递增:并发数以阶梯递增的方式来进行压测。就是对系统并发的压力呈现阶梯性增加的过程,每个时间段并发数都要增加一个数量值,最终达到一个预期并发数,然后保持该并发数,持续运行一段时间。对应的压力预估图是阶梯形式的曲线图。
最大并发虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。
起始百分比流量模型选择的是手动调速时,需要配置该项。举例说明:当最大并发设置为100,起始百分比设置10%时,会以10个并发数启动压测,压测过程中,最高可以手动调速到100;若不选择手动调速,就会以10个并发数一直压测到结束。
起始RPSRPS模式下,需要设置全局的起始RPS。
最大RPS

RPS模式下,摸底的是服务端吞吐能力,故需要给压测场景设置全局的起始RPS最大RPS

RPS模式的流量模型是按从起始RPS最大RPS均匀递增的模型。

压测时长设置压测的时间长度。
递增时长全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。
递增阶梯数完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。
是否指定循环默认,循环是JMeter特有的,指每个并发是否需要循环执行。并需要设置循环次数,指定每个并发需要循环执行几次。在RPS模式下,可以指定循环。
循环次数每个循环的并发执行次数。在指定循环后,需要设置循环次数。