Jmeter实现多接口,多业务混合并发,各接口或业务的并发比例如何设置

文章讲述了如何在JMeter中使用方案一,通过创建多个线程组按照业务需求设置并发比例进行压力测试;以及方案二,利用吞吐量控制器来实现按接口请求比例分配并发用户。

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

方案1:在同一个测试计划下面,设置多个线程组,每个线程组的并发数可按需设计

jmeter一个测试计划可以添加多个线程组,我们把不同的业务放在不同的线程组中,通过控制线程数来控制业务占比。比如实际业务中需要线程组A、线程组B和线程组C的比例为:3:2:1,那么我们可以设置线程组A的线程数为90,线程组B的线程数为60,线程组C的线程数为30,这样就可以粗略的达到要求的比例。但是如果三个事务的响应时间不一样,最终完成的业务数也会有所差异。假设当前线程数的响应时间是完全一致的,才会有3:2:1的业务占比,当然这个是理想状态。

例如测试需求如下:对业务A、业务B、业务C、业务D、业务E,5个业务按并发比例要求进行100个用户并发的压力测试;

1.创建一个测试计划;

2.在该计划下添加5个线程组,分别是对业务A、业务B、业务C、业务D、业务E;

3.分别设置线程组业务A、业务B、业务C、业务D、业务E的线程数为:40、10、20、25、5(总并发量为100,按并发比例设置并发用户数)

方案二、创建一个测试计划-》右键线程组-》右键逻辑控制器-》选择吞吐量控制器

相关接口:

Name

比例

Method

API

处理中警情查询

40%POST-

已结案警情查询

30%POST-

受理端警情列表查询

30%POST-

### 使用 JMeter 进行混合场景压力测试 #### 创建多线程组 在单个 JMeter 测试计划下可以创建多个线程组来代表不同的用户行为模式。每个线程组内可包含特定于该类用户的接口取样器,从而允许模拟多种类型的交互操作[^1]。 对于希望更精确地反映真实世界负载情况的应用程序来说,这种方法非常有用,因为它能够同时运行若干独立但又相互关联的工作流。 #### 设置合理的间隔时间 当执行一系列连续的性能测试迭代时,在两轮之间安排适当的停顿期是非常重要的。这有助于让被测系统有足够的时间恢复到稳定状态,减少因累积效应而产生的偏差影响最终的结果分析[^2]。 #### 控制并发比例 针对存在多个并行业务流程的需求,可以通过调整各线程组中的虚拟用户数以及它们之间的相对权重来进行精准调控。具体而言,依据实际业务逻辑设定恰当的比例关系以确保所生成的数据流量分布合理且贴近实际情况[^3]。 #### 实现方式概述 以下是几种常见的用于构建复杂混合工作负荷的方法: - **按百分比分配请求**:按照预定义好的规则将总请求数划分给各个子任务; - **基于定时器调节频率**:利用内置自定义定时组件改变事务发生的速率; - **组合使用以上两者**:综合考虑数量与速度因素共同作用下的效果评估[^4]。 ```xml <!-- 示例 XML 片段展示如何配置两个具有不同特性的线程组 --> <jmeterTestPlan> <!-- ...其他配置... --> <hashTree> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController"/> <boolProp name="LoopController.continue_forever">false</boolProp> <intProp name="LoopController.loops">100</intProp> <!-- 配置第一个线程组的具体参数 --> </ThreadGroup> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"> <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController"/> <boolProp name="LoopController.continue_forever">true</boolProp> <intProp name="LoopController.loops">1</intProp> <!-- 配置第二个线程组的具体参数 --> </ThreadGroup> </hashTree> <!-- ...更多配置项... --> </jmeterTestPlan> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值