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.