Jmeter不';t解释器machineName()变量

Jmeter不';t解释器machineName()变量,jmeter,jmeter-plugins,Jmeter,Jmeter Plugins,我面临一个奇怪的问题。我需要一个jmeter来生成jtl和日志文件,其中文件名将是jmeter运行的主机名。对于这个任务,我发现内部变量“\uu machineName()”,在我的例子中,它可以工作,但只能部分工作。以下是示例: jmeter-l${{uu machineName()}.jtl-j${{uu machineName()}.log 但结果有点奇怪: ${uuuu machineName()}.log 328-15-09-2020-15-02-42-95r4v.jtl 它只适用于j

我面临一个奇怪的问题。我需要一个jmeter来生成jtl和日志文件,其中文件名将是jmeter运行的主机名。对于这个任务,我发现内部变量“\uu machineName()”,在我的例子中,它可以工作,但只能部分工作。以下是示例:
jmeter-l${{uu machineName()}.jtl-j${{uu machineName()}.log

但结果有点奇怪:
${uuuu machineName()}.log 328-15-09-2020-15-02-42-95r4v.jtl

它只适用于jtl文件!我尝试了其他变量,得到了相同的结果。
你有没有遇到过这样的问题

附加信息:jmeter的执行被包装在脚本中,该脚本将所有属性作为字符串接收并仅执行它,因此关于使用shell命令的想法将不起作用。结果将如下所示:
`hostname`.log
${HOSTANME}.log

工作流程:

  • Python为jmeter执行生成带参数的字符串。我用的是金贾。守则的一部分:
  • Python调度Kubernetes作业并将带有属性的字符串传递给jmeter
  • 带有jmeter的容器在这里有入口点脚本,它设置了一些Java参数并启动jmeter。jmeter接收具有以下属性的字符串的部分:
  • Jmeter使用特定参数执行测试并写入日志。就在这里,我遇到了一个问题,${uu machineName()}对-l(jtl log)param正常工作,而对-j(log)param不工作

  • 该函数将不会执行,因为它位于shell和日志系统之间,您需要修复shell脚本以便能够执行shell命令

    如果出于某种原因,您无法修改shell脚本,那么应该可以更改JMeter日志记录配置,使其包含

    必要的更改(位于JMeter安装的“bin”文件夹中)

  • 添加此块以定义读取底层OS环境变量的
    HOSTNAME
    属性

    <Properties>
        <Property name="HOSTNAME">${env:HOSTNAME}</Property>
    </Properties>
    
    
    ${env:HOSTNAME}
    
  • 更改此行:

    <File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
    
    
    
    对于这一点:

    <File name="jmeter-log" fileName="${HOSTNAME}.log" append="false">
    
    
    

    因此,下次启动测试时,JMeter将使用计算机主机名作为文件名创建日志文件,而不必通过命令行参数传递


  • 更多信息:

    很遗憾,我无法访问Jmeter配置。我有传入的属性,然后生成带有所有参数的字符串来运行Jmeter,并且只有在将该字符串传递给Jmeter执行之后。从我的角度来看,有一件很重要的事情我想提一下,这个函数可以工作,但只对jtl文件有效,对于日志文件,这个变量或其他变量都不能工作。这是我说的最奇怪的事。那你想要什么?如果您需要帮助,您需要展示您的脚本及其使用方式,否则继续讨论没有意义问题的负责人已更新。希望足够理解。如果是Python,只需将
    ${{uuu machineName()}
    更改为,它就会传递到执行此脚本的机器的脚本主机名。
    <File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
    
    <File name="jmeter-log" fileName="${HOSTNAME}.log" append="false">