【问题标题】:how to stop thread for a particular condition in jmeter?如何在jmeter中停止特定条件的线程?
【发布时间】:2016-07-14 07:27:56
【问题描述】:

我正在一个有多个选项的网站上进行测试。

**例如,**

假设在主页(第一个采样器)上,我们有两个选项选项 A 和选项 B。因此,如果我选择选项,它将导航到另一个页面 (第二个采样器)并向我展示有关选项 A 和来自的一些结果 这些结果我将点击任何结果并转到下一个 页面(第三个采样器)。

但是当我在主页(第一个采样器)上单击选项 B 时,没有显示结果(在第二个采样器中),所以我不希望它导航和执行第三个采样器。

如果选项B的结果页面没有结果,我想停止执行。我应该如何在JMeter中实现。

【问题讨论】:

    标签: jmeter performance-testing


    【解决方案1】:

    为此,您需要使用以下代码在您的选项 B 上添加 Beanshell post-processor

    import org.apache.jmeter.threads.JMeterContextService;
    
    String prevResult = JMeterContextService.getContext()
                            .getPreviousResult().getResponseDataAsString();
    
    if(prevResult == null || prevResult.isEmpty()) // | ---> ||
          JMeterContextService.getContext().getThread().stop();
    

    这将检查先前的响应,如果它为空则停止当前线程。如果 response 不为空,则继续执行测试。

    【讨论】:

    • 实际上,这些选项是在我点击其中任何一个后生成的下一个请求中附加的。不同的选项没有不同的采样器。那么我应该把这个 BeanShell 后处理器放在哪里?跨度>
    • 您在问题中写道,第二个采样器将导航到另一个页面,并且您希望在那里获得有效响应,因此您应该在其上添加后处理器。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多