Jmeter - 定时器

同步定时器(Synchronizing Timer)

位置 :HTTP请求 -> 定时器 -> Synchronizing Timer
概念:当需要进行大量用户的并发测试时,为了让用户能真正的同时执行,添加同步定时器,用户阻塞线程,知道线程数达到预先配置的数值,才开始执行取样器的操作
测试绝对并发,比如秒杀,抢购等场景, 结果要用聚合报告查看

简单使用案例:模拟50个用户同时访问报百度
线程组配置:

定时器配置:

超时时间:必须配置,当用户数量达不到模拟用户组的数量时,线程会一直阻塞,配置超时时间
后,当等待时间大于该时间时,不再继续等待。也不能配置的太小,如果太小当用户数达不到模拟用户组的数量时,
请求就会发出

聚合报告:

固定定时器

作用:延迟接口请求发送
位置:测试计划 -> 线程组 -> HTTP请求 -> 定时器 -> 固定定时器

参数介绍:

  • 线程延迟(毫秒): 将作用域中的接口请求,延迟多少秒发送

常数吞吐量定时器( Constant Throughput Timer)

应用场景: 负载测试(按需求,单位时间发送指定数量的接口请求-吞吐量)
作用: 让JMeter按指定的吞吐量执行,以每分钟为单位。既:控制线程执行频率的东西,每分钟执行的次数是控制的,超过次数,线程就要等一等
位置: 测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Constant Throughput Timer

参数介绍:

  • Target throughput(in samples per minute): 目标吞吐量。注意这里是每个用户每分钟发送的请求数

案例要求:

  • 模拟用户真实的业务场景要求: 20 QPS

这里需要注意配置项:Calculate Throughput based on

如果选择只有此线程: 目标吞吐量 * 60 / 线程数

  • 如果线程数设置为1,则目标吞吐量设置为 20 * 60 / 1 = 1200
  • 如果线程数设置为10, 则目标吞吐量设置为 20 * 60 / 10 = 120 (10 个用户发1200个请求, 一个用户就是120)

如果选择所有线程,线程组中的线程数配置就没有用,只要配置为:目标吞吐量 * 60 即可

设置完成后可以结合线程组-调度器 指定按设置的QPS 运行执行时长

RPS:
https://cloud.tencent.com/document/product/1484/82575

多线程压测模型:

1.并发较小: 线程数 + ramp-up
2.并发较高: 分布式集群压测,或者 使用 常数吞吐量定时器

posted @ 2022-02-24 09:43  chuangzhou  阅读(156)  评论(0编辑  收藏  举报