JMeter-如何在多个隔离的测试计划中共享groovy脚本

时间:2019-09-12 17:25:03

标签: groovy jmeter jsr223

我有很多常用的常规功能,可以在不同的“测试计划”中重复使用。我想将它们保存在单独的脚本文件中。我不想创建jar。如何以最小的模糊度将这些文件导入JMeter JSR223断言,预处理器和后处理器中?这些或多或少是模块化功能,出于明显的原因,我想将它们分开。

我尝试使用JSR223的“脚本文件”部分。但这似乎只是为了覆盖脚本。

如何在JSR 223断言/预处理器/后处理器中使用外部Groovy脚本文件?

3 个答案:

答案 0 :(得分:1)

如果您想在不同的jsr223元素中使用一堆函数,则可以:

  1. 在测试计划中,创建一个初始JSR223预处理器(或采样器)并定义您的功能:
    def sum(Integer a, Integer b) {
        return a + b
    }

    def isA(Integer x, Integer y) {
    }

    def isB(Integer x, Integer y) {
    }
  1. 然后使用闭包将它们作为对象:
    vars.putObject('sum', this.&sum)
    vars.putObject('isA', this.&isA)
    vars.putObject('isB', this.&isB)
  1. 在脚本的任何其他JSR223元素中,您可以使用类似的功能:
    def sum= vars.getObject(‘sum’);
    println sum(2, 2);

答案 1 :(得分:0)

我不太了解Script file选项为何对您不起作用,您可以将Groovy代码另存为文件系统上的文件,并通过“脚本文件”输入对其进行引用。

随便。

您可以像使用任何其他测试元素一样使JSR223测试元素模块化:

答案 2 :(得分:0)

您可以在 {JMETER_HOME}/bin/utility.groovy 脚本文件中定义 Groovy 函数。

或者,您可以在自己的 Groovy 脚本中定义该函数,并在 groovy.utilities=bin/utility.groovy 文件中设置属性 user.properties

例如,在 Groovy 脚本中添加以下内容

def getRandomRangeOption() {
    Random random = new Random()
    random.nextBoolean() ? "Between" : "Except"
}

您可以使用

调用该函数
${__groovy(getRandomRangeOption())}

来自 JMX 中的任何地方。