【性能测试】12_JMeter _JMeter定时器

文章目录

  • [一、同步定时器(Synchronizing Timer) [集合点]](#一、同步定时器(Synchronizing Timer) [集合点])
    • [1.1 介绍](#1.1 介绍)
    • [1.2 案例](#1.2 案例)
    • [1.3 注意事项](#1.3 注意事项)
  • [二、常数吞吐量定时器(Constant Throughput Timer)](#二、常数吞吐量定时器(Constant Throughput Timer))
    • [2.1 案例](#2.1 案例)
    • [2.2 思考题](#2.2 思考题)
  • 三、固定定时器
  • 四、总结

一、同步定时器(Synchronizing Timer) [集合点]

提示: 在Jmeter中叫做同步定时器, 在其他软件中又叫集合点。

yacas 复制代码
思考?
1. 如何模拟多个用户同时抢一个红包?
2. 如何测试电商网站中的抢购活动、 秒杀活动?

1.1 介绍

SyncTimer的目的是阻塞线程, 直到阻塞了n个线程, 然后立即释放它们。

yacas 复制代码
同步定时器相当于一个储蓄池, 累积一定的请求, 当在规定的时间内达到一定的线程数量, 这些线程会在同一个时间点一起并发, 所以可以用来做大数据量的并发请求。

实现原因:设置同步定时器,有请求要发出时,同步定时器会暂缓请求发送,一直到积攒的请求数达到要的数量时,将所有的请求同步发送出去,形成绝对的并发(更大的压力负载)

添加方式: 测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Synchronizing Timer

1.2 案例

yacas 复制代码
需求:模拟一个时间点上,30个用户同时访问百度首页(峰值访问)

场景:秒杀、微信抢红包、抢购...(服务器访问量 瞬时暴增)

1、添加线程组, 设置线程数=30

2、添加HTTP请求

3、在HTTP请求--->添加同步定时器

4、添加监听器-聚合报告

1.3 注意事项

问题: 当用户数不能整除集合点组件的一组用户数属性时, 如果超时时间是 0, 会导致程序挂起,怎么避免挂起?

实现:

  • 方案1: 点击 stop 强行终止, 但是不建议
  • 方案2: 修改一组用户数, 能够做到整除(治标不治本)
  • 方案3: 修改超时时间, 不设置为 0, 即便一组用户数填充不满, 只要超时, 也会执行(建议)

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

  • 常数吞吐量定时器可以让JMeter以指定数字的吞吐量(以每分钟的样本数为单位, 而不是每秒) 执行。吞吐量计算的范围可以为指定为当前线程、 当前线程组、 所有线程组。
  • 注意:常数吞吐量定时器只是帮忙达到性能测试的负载(压力)要求,本身不代表性能有bug/无bug。对于bug的分析需要通过响应时间来判断。
  • 添加方式: 测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> Constant Throughput Timer

2.1 案例

bash 复制代码
1、场景:一个用户以 20QPS (20 次/s) 的频率访问百度首页, 持续一段时间, 统计运行情况 。 
# 没有特殊说明时,一般 QPS==TPS

2、作用:控制每秒 向服务器发送HTTP请求的数量。  
3、目的:测试系统服务器 每秒是否能达到指定的QPS。

1、添加线程组, 循环次数设置成 "永远"。

2、添加HTTP请求--->添加常数吞吐定时器

3、添加监听器-聚合报告

2.2 思考题

思考题:测试百度服务器是否能达到80QPS

  • 测试结论:百度服务器 无法达到80QPS
  • 结论:目前业界内,优秀的服务器 (单用户测试),QPS大约在40-60之间。

三、固定定时器

  • 在jmeter中,实现一个功能可以有多种方法
  • 固定定时器,与线程组属性中 启动延时功能比较,固定定时器的时间单位更精准(单位:毫秒),固定定时器可以针对某一个请求定时。
  • 添加方式: 测试计划 --> 线程组--> HTTP请求 --> (右键添加) 定时器 --> 固定定时器

四、总结

  • 所有的定时器都是针对某一个请求的。
  • 是在请求上定时的。
相关推荐
少云清12 小时前
【性能测试】13_JMeter _JMeter分布式
分布式·jmeter·性能测试
先鱼鲨生1 天前
JMeter工具的使用
测试开发·jmeter·性能测试
少云清1 天前
【性能测试】11_JMeter _JMeter逻辑控制器
jmeter·性能测试
少云清1 天前
【性能测试】10_JMeter _JMeter连接数据库(重点)
数据库·jmeter
普通网友2 天前
Jmeter和Postman那个工具更适合做接口测试?_postman和jemter哪个更适合接口测试
测试工具·jmeter·postman
steem_ding2 天前
压测TPS
jmeter
少云清3 天前
【性能测试】9_JMeter _JMeter录制脚本(了解)
jmeter·性能测试
少云清3 天前
【性能测试】8_JMeter _JMeter跨线程组关联
jmeter·性能测试
Wpa.wk4 天前
性能测试 - 搭建线上的性能测试环境参考逻辑图
java·经验分享·测试工具·jmeter·性能测试