【发布时间】:2015-03-13 02:40:43
【问题描述】:
我在测试过程中使用事务控制器,我有 5 个事务控制器。现在我想指定每个事务控制器之间的思考时间(计时器),比如 300 毫秒。
当我添加常量计时器时,每个采样器需要 300 毫秒的思考时间来处理,因此整体响应会有所增加。
有没有其他方法可以只给事务控制器而不是单独的采样器提供思考时间?
【问题讨论】:
标签: jmeter jmeter-plugins
我在测试过程中使用事务控制器,我有 5 个事务控制器。现在我想指定每个事务控制器之间的思考时间(计时器),比如 300 毫秒。
当我添加常量计时器时,每个采样器需要 300 毫秒的思考时间来处理,因此整体响应会有所增加。
有没有其他方法可以只给事务控制器而不是单独的采样器提供思考时间?
【问题讨论】:
标签: jmeter jmeter-plugins
您可以按以下方式解决它:
将以下代码放入后处理器的“脚本”区域:
Thread.sleep(300L);
将事务控制器配置为
请参阅Using JMeter's Transaction Controller 指南以获取更详细的说明。
【讨论】:
我可以想到 2 个选项来提供所需的解决方案:
1) 最简单的方法是将计时器置于以下事务控制器的第一个请求中。 或 2) 在 Controller 的末尾添加 Test Action 可以在 Sampler 下找到,您可以在其中提供 PAUSE 时间(以毫秒为单位)。
希望这会有所帮助。
【讨论】:
添加测试操作并选择暂停。将此设置为 0 毫秒,然后将高斯随机计时器添加到测试操作中。以这种方式配置计时器将允许您在有或没有暂停的情况下运行测试(用于调试),配置为计时器的测试操作在单击“开始无暂停”时不会被跳过,而附加到测试操作的高斯计时器则会。
【讨论】:
最好的方法是通过录制控制器上的“为孩子添加思考时间”。这将在每个控制器之间插入一个“思考时间”动作。然后在每个 Think Time 操作中指定持续时间(以毫秒为单位)。
通常,我会使用 ${thinkTime} 作为持续时间,然后在您可以添加到项目顶部的“用户定义的变量”配置元素中指定 thinkTime = 10000 或类似值。
思考时间是在事务控制器之间,而不是在控制器中的请求之间。
我正在使用 jmeter 5.3。
【讨论】: