如何在 jmeter 中并发 运行 个线程
How to run threads concurrently in jmeter
您好,我创建了一个包含 10 个事务控制器的线程组,每个控制器都有多个 HTTP 请求采样器。
现在要根据要求确定瓶颈,每个事务控制必须一个接一个地运行。
例如:30 个线程 - 注册并登录。发送报告和注销是场景。
因此,对于每个操作,我都创建了 1 个事务控制器,其中包含所需的 http 采样器请求。首先我需要 运行 注册 30 个用户。在获得所有 30 个用户的响应后,只有登录事务控制器应该 运行。等等.. 一个接一个。
我尝试创建多个线程组,但我在每个组中获取安全令牌。因此,如果我创建多个线程组,我将无法在另一个线程组中调用一个线程组的变量值。
所以如果有人知道解决方案请帮助我,我是 jmeter 的初学者...
如果您希望仅当所有 30 个用户都完成 "register" 交易时才开始 "login" 交易,您需要:
- 在 "register" 和 "login" 事务控制器之间添加 Test Action 采样器
- 添加一个 Synchronizing Timer 作为 Test Action 采样器的子项,并将
Number of Simultaneous Users to Group by
设置为 30
这样测试操作采样器将充当 "rendezvous point",因此所有 30 个线程都将 "meet" 在那里,这样您将确信所有 30 个线程在开始登录之前已完成注册。
示例测试计划:
这可以仅使用 JMeter 的 'Synchronizing Timer' 元素来实现。请在下面找到此元素的简要说明:
- 同步计时器:当您有意要在特定步骤暂停 users/threads 直到达到此元素中提到的用户计数时使用此元素
您可以按照以下结构创建脚本:
- 注册请求的事务控制器
- HTTP 注册请求 1
- HTTP 注册请求 2
- 登录请求的事务控制器
- HTTP 注册登录1
- 同步计时器[根据您的要求将 'Number of Simulated Users to Group by' 设置为 30 和超时 [建议设置的值为“300000”,即 5 分钟]。不要将超时设置为“0”,否则如果任何用户在上一步中失败,您的测试将永远保持 运行 状态]
- HTTP 注册登录2
- HTTP 注册登录3
注意:在上面的示例中,您可以看到我已将同步计时器添加为登录事务控制器下的第一个 HTTP 采样器请求的子项。
当测试到达'HTTP Register Login1'时,那么在发送这个请求之前,它会执行同步定时器,等待所有用户完成注册动作。
对于初学者来说,RedLine13 的以下博文对于快速入门 JMeter 非常有用:
https://www.redline13.com/blog/kb/
另外,使用同步定时器肯定会增加响应时间,因为这个定时器会暂停测试,直到所有用户都到达该步骤,然后再执行登录操作。由于所有 30 个用户将同时执行登录操作,因此与一些用户进行注册而其他用户进行登录的情况相比,响应时间会更长。
如果您有任何问题,请告诉我。
您好,我创建了一个包含 10 个事务控制器的线程组,每个控制器都有多个 HTTP 请求采样器。
现在要根据要求确定瓶颈,每个事务控制必须一个接一个地运行。
如果您希望仅当所有 30 个用户都完成 "register" 交易时才开始 "login" 交易,您需要:
- 在 "register" 和 "login" 事务控制器之间添加 Test Action 采样器
- 添加一个 Synchronizing Timer 作为 Test Action 采样器的子项,并将
Number of Simultaneous Users to Group by
设置为30
这样测试操作采样器将充当 "rendezvous point",因此所有 30 个线程都将 "meet" 在那里,这样您将确信所有 30 个线程在开始登录之前已完成注册。
示例测试计划:
这可以仅使用 JMeter 的 'Synchronizing Timer' 元素来实现。请在下面找到此元素的简要说明:
- 同步计时器:当您有意要在特定步骤暂停 users/threads 直到达到此元素中提到的用户计数时使用此元素
您可以按照以下结构创建脚本:
- 注册请求的事务控制器
- HTTP 注册请求 1
- HTTP 注册请求 2
- 登录请求的事务控制器
- HTTP 注册登录1
- 同步计时器[根据您的要求将 'Number of Simulated Users to Group by' 设置为 30 和超时 [建议设置的值为“300000”,即 5 分钟]。不要将超时设置为“0”,否则如果任何用户在上一步中失败,您的测试将永远保持 运行 状态]
- HTTP 注册登录2
- HTTP 注册登录3
- HTTP 注册登录1
注意:在上面的示例中,您可以看到我已将同步计时器添加为登录事务控制器下的第一个 HTTP 采样器请求的子项。
当测试到达'HTTP Register Login1'时,那么在发送这个请求之前,它会执行同步定时器,等待所有用户完成注册动作。
对于初学者来说,RedLine13 的以下博文对于快速入门 JMeter 非常有用:
https://www.redline13.com/blog/kb/
另外,使用同步定时器肯定会增加响应时间,因为这个定时器会暂停测试,直到所有用户都到达该步骤,然后再执行登录操作。由于所有 30 个用户将同时执行登录操作,因此与一些用户进行注册而其他用户进行登录的情况相比,响应时间会更长。
如果您有任何问题,请告诉我。