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。
参数 | 描述 |
最大虚拟用户权重 | 该业务会话占全场景的权重。如业务会话1置为1,业务会话2置为3,则表示各自在场景中的最大虚拟用户总占25%和75%。 在虚拟用户模式下,设置业务会话级别的最大虚拟用户权重和起始百分比。虚拟用户模式模拟的是系统承载虚拟用户数(从客户端业务考虑),而场景中的多个业务会话(事务)之间一般有一定的业务比例和实际吞吐关系(如下单和加购按照业务评估是1:0.8),故只需在业务会话(事务)维度,依据比例关系,设置最大虚拟用户和起始虚拟用户。 |
起始百分比 | 该业务会话自身的起始比例,默认10%。 |
最大RPS | 在RPS模式下,摸底的是单API(接口)的服务端吞吐能力,故需要给每个API设置最大RPS与起始RPS。 |
起始RPS | 设置单API的起始RPS。 |
批量设置 | 虚拟用户模式和RPS模式均可以使用批量设置。
|