我们如何在 Groovy 中使用内置的 jmeter 函数?

How can we use built-in jmeter functions in Groovy?

我似乎花了太长时间试图发现一种获取信息的方法,例如 machineName 我想在两种不同的编程语言中使用 https://jmeter.apache.org/usermanual/functions.html,在 Groovy 代码(而不是 BeanShell 等),并在 Java.

在groovy中,我尝试使用ctxvarsprops都没有用。

同样,如果发现如何在 Java 采样器中执行相同的操作,那就太好了。据我所知,我可以获得一些信息,例如使用 JMeterContextService.getContext().getThreadNum() 的线程号,但我还没有找到 interact/use JMeter 主要功能的方法。

一种方法可能是重新实现这些功能,尤其是在描述它们的地方,例如"The machineName function returns the local host name. This uses the Java method InetAddress.getLocalHost() and passes it to getHostName()" 但我希望没有必要...

谢谢。

  1. 最好的选择是将函数调用放在 "Parameters" 部分,并在脚本正文中将其 return 值作为 Parametersargs[0] 引用,例如

    def machineName = Parameters
    

  2. 您可以通过 MachineName class 的实例来完成,例如:

    def machineName = new org.apache.jmeter.functions.MachineName().compute()
    
  3. 您可以使用 JMeterUtils 帮助程序 class 来做到这一点,例如:

    def machineName = org.apache.jmeter.util.JMeterUtils.getLocalHostName()
    
  4. 最后(但不推荐这样做,因为编译脚本的缓存将不可用)您可以将任何 JMeter 函数内联到脚本主体中

    def machineName = '${__machineName()}'
    

有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It