JMeter 压测QPS

本文介绍了如何使用JMeter进行压力测试,重点在于新建测试计划、线程池配置,特别是通过定时器设置目标QPS。线程数、Ramp-up Period、Loop Count和Scheduler用于控制并发和持续时间,而定时器则用于设定每分钟的请求速率。通过调整这些参数,可以实现对系统性能的精确压测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建测试计划

在这里插入图片描述

新建线程池

在这里插入图片描述

  1. Number of Threads (users) : 并发数量,能跑多少量。具体说是一次存在多少用户同时访问
  2. Ramp-up Period(in seconds): 表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。
  3. Loop Count: 这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数 (forever 勾选将会一直执行)
  4. Scheduler:调度器,设置压测的启动时间、结束时间、持续时间和启动延迟时间。

新建定时器

在这里插入图片描述
Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的100 QPS ,这里的值应该是6000 。

Calculate Throughput based on :有5个选项,分别是:

  1. This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 targ
### 如何在JMeter脚本中设置和调整QPS #### 使用吞吐量控制器来控制QPS 为了实现特定的QPS,在JMeter测试计划中可以利用吞吐量控制器。通过配置此组件,能够精确地管理每秒钟发送到服务器的请求数量[^2]。 对于设定固定的QPS值,比如10QPS的情况,可以在测试脚本里加入吞吐量控制器,并对其进行如下参数化: - **目标吞吐量**:设为期望的QPS数值,即在此案例中的10次/秒。 - **执行方式**:选择“按线程”,这有助于更均匀地分配请求给各个虚拟用户。 - **最大并发数**:依据实际需求而定;某些情况下,可能仅需少量并发就能达成所需的QPS水平。 另外,还需注意的是Duration(持续时间)应根据具体应用场景合理规划,如一小时内保持稳定负载,则将其设为3600秒;如果是短周期内的高密度冲击型测试,则可能是较短时间内完成更多次数的操作,例如半小时内则设为1800秒。 #### 配置线程组以支持所需QPS 除了借助吞吐量控制器外,适当调节线程组里的基本属性同样重要。合理的线程数量、启动延迟以及循环计数均会影响最终能否顺利达到预期的QPS指标。通常来说,如果单个用户的响应速度快于所希望维持的间隔时间,那么增加更多的模拟用户可以帮助提高整体流量至指定级别。 ```java // 示例代码展示如何创建一个简单的HTTP请求并应用上述原则 ThreadGroup threadGroup = new ThreadGroup(); threadGroup.setNumThreads(10); // 设置初始线程数目 threadGroup.setRampUp(1); // 控制加速度, 即每隔多少秒启动一个新的线程 LoopController loopController = new LoopController(); loopController.setLoops(-1); // 表示无限循环直到手动停止或满足其他终止条件 ``` #### 查看与验证QPS效果 当完成了以上配置之后,可以通过查看聚合报告中的`Throughput`字段来确认是否达到了预设的目标QPS。该值代表了单位时间内成功处理了多少事务,也就是TPS (Transactions Per Second),它与QPS有着密切的关系——特别是在只涉及读取操作而不含写入的情况下两者几乎相等[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值