【问题标题】:How to set relative file path in include controller of Jmeter?如何在 Jmeter 的包含控制器中设置相对文件路径?
【发布时间】:2020-02-07 09:58:02
【问题描述】:

我正在尝试调用由可重用采样器组成的测试片段。我想使用包含控制器在我的其他脚本中调用测试片段,我想通过在包含控制器中提供相对路径来实现这一点,它在设置测试片段的绝对路径时工作,但如果提供相对路径则会出错。

我在用户定义变量中设置的路径如下:(文件夹结构基于 Maven 项目)

../../../src/test/resources/testData

以下是我得到的错误:

以下是我在用户定义的变量配置中为测试片段设置的路径:

下面是包含控制器的图像,我在其中尝试使用相对/动态路径调用测试片段:

【问题讨论】:

  • 您是否尝试删除Login TestFragment.jmx 中的空间?
  • 是的,它和我之前给出的文件名相同,现在我有了正确的驼峰式文件名,但仍然面临问题。

标签: jmeter jmeter-5.0 jmeter-maven-plugin


【解决方案1】:

根据Include Controller 文档:

此元素不支持文件名字段中的变量/函数

但是,如果定义了属性includecontroller.prefix,则内容将用作路径名的前缀。

所以你有以下解决方法:

  1. 考虑使用Module Controller 将外部.jmx 文件嵌入到主文件中
  2. 或使用OS Process Sampler 将“包含”脚本作为单独的进程运行,.jtl 结果文件可以通过Merge Results 工具与“父”结果文件合并

【讨论】:

    【解决方案2】:

    TLDR;

    ForEach 控制器(testFragmentName) -> 切换控制器(testFragmentName) -> [IncludeController1(existingPath1),IncludeController2强>(existingPath2)]

    简介和我的数据

    所以...我一直在研究这个主题并且不喜欢任何建议的解决方案,因为我想完全控制该项目。

    我的想法是在 json 中定义套件,例如:

    {
        "Suites": [
            {
                "name": "ExampleTest",
                "testFragments": [
                    "Login",
                    "HomePage",
                    "Logout"
                ]
            }
        ]
    }
    

    定义了测试及其模块后,我将进入选定的测试计划。

    测试计划要素、要点

    使用带有文件协议的 HTTP 请求来获取带有要提取数据的 json 文件:

    属性/变量输入: 套件
    Json 路径: $.Suites[?(@.name in [${suites}])].testFragments.*

    现在我准备这样的测试结构:
    |为每个
    | - 开关
    | - - 包括1
    | - - 包括2
    ...

    ForEach 控制器

    切换控制器

    包括控制器
    唯一要做的就是用现有的路径名定义每个包含控制器,这样就不会发生错误。我不建议使用includecontroller.prefix,因为它几乎没用。

    整个操作需要将交换机控制器内的所有外部 jmx 测试片段定义为具有正确名称的包含控制器(交换机控制器需要知道选择哪个控制器)。

    结论

    在我看来,这是值得的,因为您可以使用外部属性(“套件”或您想要的其他属性)来运行预定义套件。

    它并不完美,但它允许通过简单的属性输入进行完全模块化和外部控制。

    PS. Include Controller is obviously a strong contender for the worst design of functionality ever.

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 2011-12-08
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多