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.并发较高: 分布式集群压测,或者 使用 常数吞吐量定时器
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15930320.html