【性能测试】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请求 --> (右键添加) 定时器 --> 固定定时器

四、总结

  • 所有的定时器都是针对某一个请求的。
  • 是在请求上定时的。
相关推荐
brucelee1861 小时前
使用 JMeter 进行 API 压力测试完整指南
jmeter·压力测试
Echoo华地4 小时前
Gatling压测案例
java·jmeter·压力测试·并发·scale·压测·gatling
chenjingming6661 天前
jmeter处理接口返回中文乱码的问题
jmeter
chenjingming6661 天前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
洛_尘1 天前
测试9:性能测试--工具篇(JMeter)
jmeter
夜晚打字声1 天前
7(七)Jmeter吞吐量设置
jmeter
chenjingming6661 天前
jmeter导入浏览器上按F12抓的数据包
前端·chrome·jmeter
K 旺仔小馒头1 天前
【项目】博客系统测试报告
自动化测试·功能测试·性能测试
爱编程的小吴4 天前
JMeter从入门到精通:一站式掌握性能测试
jmeter
老神在在0015 天前
JMeter 博客系统全链路性能测试实战:从脚本搭建到压测报告
jmeter