jmeter执行中的采样器依赖

Posted

技术标签:

【中文标题】jmeter执行中的采样器依赖【英文标题】:Sampler Dependency in jmeter execution 【发布时间】:2018-08-14 09:36:57 【问题描述】:

我想在 Jmeter 中有一些线程依赖。

假设我有两个 HTTP 请求:AB。 我想实现如果 request A 执行,那么只有 request B 必须执行的行为。

为什么我需要这个,在我的情况下,我必须将 request B 放在某个控制器中,该控制器将在 request A 之前执行strong> 执行。在这种情况下,我想在这些 HTTP 请求之间建立一些依赖关系。

希望您能理解我的担忧。 请帮助我意识到这一点。

【问题讨论】:

【参考方案1】:

使用带有表达式“$JMeterThread.last_sample_ok”的 IF 控制器。如果最后一个采样器通过,它将在其下运行采样器。

希望对你有帮助。

【讨论】:

你好...阳光明媚。感谢您的回复...实际上我需要的是我在一个控制器中有一个线程,在另一个控制器中有一个线程。就像我在问题中所说的那样..thnku @biyyapu 如果有帮助,请告诉我。如果是,那么您可以接受答案,请参阅 ***.com/help/someone-answers haa ...我实际上需要更准确。正如我在问题中所说的那样,我需要一些类似的东西,而我的查询与下一个线程的线程无关..我在一个控制器中有请求 A 并在另一个控制器中请求 B 以及其他一些请求......我需要做仅依赖这两个,并希望确保当我们建立依赖关系时,在请求 B 之后没有其他请求不会被执行。 您可以使用临界区控制器并将 A 和 B 都放入其中,然后在另一个更简单的控制器中休息,如果最后一个样本 Ok 检查。关键部分控制器将确保 B 将在 A 之后执行。如果这不是您正在寻找的内容,请分享一个快照以帮助我了解您的场景。顺便说一句,如果控制器也可以与其他控制器一起使用。 @sunny_teo..所以我正在尝试其他方法,如果这不起作用,正如你所说,我会附上屏幕截图..非常感谢你的支持..【参考方案2】:

最简单的实现方法是使用Inter-Thread Communication插件,用法如下:

    Request A 完成时,它应该使用 fifoPut 函数将某些内容放入 FIFO 队列中 请求 B 将存在于 If Controller 下,它将相应地使用 fifoSizefifoPop 函数检查 FIFO 队列大小或内容。

这种方式Request B 只会在Request A 完成其工作并将某些内容放入FIFO 队列时执行。

请参阅SynchronizationExample.jmx 测试计划了解参考实施细节。在尝试打开文件之前,您需要使用JMeter Plugins Manager 安装线程间通信插件

【讨论】:

thanku..Dmitri 我会试试,让你知道它是否工作正常..非常感谢

以上是关于jmeter执行中的采样器依赖的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter ExcelDataPreProcessor

jmeter测试元件--控制器

Jmeter----逻辑控制器(Logic Controller)

jmeter switch controller

JMeter接口测试-常见的逻辑控制器

JMeter-Switch控制器