gpt4 book ai didi

jmeter - 如何在Jmeter中获取jmeter脚本的目录

转载 作者:行者123 更新时间:2023-12-04 00:08:00 25 4
gpt4 key购买 nike

我有一个用 java 编写的自定义 jmeter 采样器,它将文件位置和文件路径作为参数,并基于这些创建一个 json 文件以发布到服务(基于模板文件)。由于我的脚本需要在具有不同目录结构的多个环境中运行,因此我需要在采样器中使用相对路径来指向我需要转换为有效 json 的文件。有没有办法让我的脚本所在的目录作为 jmeter 中的变量?我试过 ${user.dir},但它返回 jmeter 启动的目录,而不是我的脚本所在的目录。我可以引用另一个系统属性来获取此值吗?如果没有,有没有人以编程方式完成这个?

最佳答案

不久前我遇到了类似的情况,我不得不上传签名文件作为 POST 请求的一部分。这个签名文件与我的 JMeter 脚本所在的文件夹结构相关。

尝试使用以下 BeanShell 表达式(可以作为系统级属性访问)来解析 JMeter 测试用例所在/执行位置的相对路径。

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}
  • 您可以通过简单地附加文件名,在“随请求发送文件”字段中输入要发送/POST 的文件的名称。
    ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}fileName.sig
  • 一个更清晰的实现是将它声明为一个变量(局部或全局取决于范围)并在适当的字段中使用这个变量。
    absolutePath = ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}${absolutePath}fileName.sig

  • 注意:如果您打算将 JMeter 测试文件插入到持续集成系统(如 Jenkins)中,这种方法非常有用。它使您的测试用例更易于维护。

    关于jmeter - 如何在Jmeter中获取jmeter脚本的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com