在测试计划中运行一次 Beanshell 预处理器

Aut*_*33k 5 jmeter beanshell

我有一个 Bean shell 预处理器,它最终根据用户传递的值设置一些全局变量,例如主机名和路径。

bean shell 设置的变量将被所有线程组使用。

目前,我已将 BS 预处理器放置在线程之外,并且它运行完美。 在此输入图像描述

问题是它为每个线程运行,这对性能不友好

我只希望它在测试计划开始时运行一次以提高性能。

我尝试将其放入安装线程中,但它不起作用。

除了 BS 预处理器之外,还有其他东西可以提高性能吗(它只为整个计划运行一次,而不是为每个线程运行一次)。

Dmi*_*i T 4

  1. 您可以将其放在If Controller下并使用以下条件:

    ${__BeanShell(vars.getIteration() == 1)} && ${__threadNum} == 1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可以使用setUp Thread Group,它是为执行预测试操作而设计的,但在这种情况下,将所有出现的vars.put()to更改props.put()为 JMeter 变量范围仅限于当前线程组,并且 Properties 对于整个 JVM 实例来说是全局的。有关更多信息,请参阅如何在不同线程组中使用变量指南