如何在Jmeter的include控制器中设置相对文件路径?
我试图调用一个由可重用采样器组成的测试片段。我想使用Include控制器在我的另一个脚本中调用测试片段,我想通过在Include控制器中提供相对路径来实现这一点,当设置了测试片段的绝对路径时,它会工作,但如果提供了相对路径,则会给出一个错误 下面是我在用户定义变量中设置的路径:(文件夹结构基于Maven项目) ../../../src/test/resources/testData 下面是我得到的错误: 下面是我在测试片段的用户定义变量配置中设置的路径: 下面是Include控制器的图像,我试图在其中使用相对/动态路径调用测试片段: 根据文件: 此元素d不支持文件名字段中的变量/函数 但是,如果定义了属性如何在Jmeter的include控制器中设置相对文件路径?,jmeter,jmeter-5.0,jmeter-maven-plugin,Jmeter,Jmeter 5.0,Jmeter Maven Plugin,我试图调用一个由可重用采样器组成的测试片段。我想使用Include控制器在我的另一个脚本中调用测试片段,我想通过在Include控制器中提供相对路径来实现这一点,当设置了测试片段的绝对路径时,它会工作,但如果提供了相对路径,则会给出一个错误 下面是我在用户定义变量中设置的路径:(文件夹结构基于Maven项目) ../../../src/test/resources/testData 下面是我得到的错误: 下面是我在测试片段的用户定义变量配置中设置的路径: 下面是Include控制器的图像,我
includecontroller.prefix
,则将使用内容作为路径名的前缀
因此,您有以下解决方法:
{
"Suites": [
{
"name": "ExampleTest",
"testFragments": [
"Login",
"HomePage",
"Logout"
]
}
]
}
定义了测试及其模块后,我转到选定的测试计划
测试计划要素、要点
使用HTTP请求和文件协议获取json文件,其中包含要提取的数据:属性/变量输入:套件
Json路径:
$.Suites[?([${Suites}]中的@.name])。testFragments.
现在我准备这样的测试结构:| ForEach
|-开关
|——包括1
|——包括2
… ForEach控制器
开关控制器
包括控制器
剩下要做的唯一一件事就是用现有的路径名定义每个Include控制器,这样就不会发生错误。我不建议使用
includecontroller.prefix
,因为它几乎毫无用处
整个操作需要将交换机控制器内的所有外部jmx测试片段定义为具有正确名称的Include控制器(交换机控制器需要知道选择哪个控制器)
结论
在我看来,这是值得的,因为您可以使用外部属性(“suites”或其他您想要的属性)来运行预定义的suites
它并不完美,但它允许通过简单的属性输入实现完全的模块化和外部控制
PS.Include Controller显然是有史以来最差功能设计的有力竞争者。
您是否尝试在Login TestFragment.jmx
中删除空间?是的,它与我之前给出的文件名相同,现在我的文件名是正确的驼峰格式,但仍然面临问题。