Azure devops Azure DevOps:使用不同的运行设置在agentpool中的代理上并行运行测试
我们已经设置了一个agentpool,其中有3个标记为并行运行测试的代理。我们希望使用Azure devops Azure DevOps:使用不同的运行设置在agentpool中的代理上并行运行测试,azure-devops,vstest,Azure Devops,Vstest,我们已经设置了一个agentpool,其中有3个标记为并行运行测试的代理。我们希望使用.runsettings文件的各种输入值来覆盖测试运行参数(OverrideTstrunParameters)&在各种代理上分发测试运行。e、 g 假设agentpool P1具有关联的代理A1、A2、A3。 我们需要代理A1配置测试运行参数executeTests=Functionty1,代理A2配置测试运行参数executeTests=Functionty2等 请告知我们是否可以使用executionPla
.runsettings
文件的各种输入值来覆盖测试运行参数(OverrideTstrunParameters)&在各种代理上分发测试运行。e、 g
假设agentpool P1具有关联的代理A1、A2、A3。
我们需要代理A1配置测试运行参数executeTests=Functionty1,代理A2配置测试运行参数executeTests=Functionty2等
请告知我们是否可以使用executionPlan和选项Multi-Agent或Multi-Configuration来实现此功能。不支持使用不同的运行设置甚至覆盖设置。测试任务期望它在所有代理之间保持一致。它将使用为第一个配置的选项来启动测试任务。例如,如果要传递一个覆盖变量$(Agent.Name),它将使用第一个代理名称,而不管是哪个代理拾取它
我们找到的唯一管理方法是在测试框架代码中处理它。我们没有从runsettings加载,而是在测试任务之前的一个步骤中在代理上设置环境变量。然后,我们的测试框架将从环境变量加载。不支持使用不同的运行设置,甚至不支持覆盖设置。测试任务期望它在所有代理之间保持一致。它将使用为第一个配置的选项来启动测试任务。例如,如果要传递一个覆盖变量$(Agent.Name),它将使用第一个代理名称,而不管是哪个代理拾取它
我们找到的唯一管理方法是在测试框架代码中处理它。我们没有从runsettings加载,而是在测试任务之前的一个步骤中在代理上设置环境变量。然后,我们的测试框架将从环境变量加载。因此,如果我没有误解的话,您想要的是使用多个配置将测试运行到多个代理中 如果是的话,我最好建议你可以申请管道,以实现你想要的 *注意:
Matrix
是仅支持YAML管道的新功能。如果你想在你的身边使用矩阵,你必须使用YAML来配置你的管道*
有关如何在此场景中应用矩阵,您可以参考以下简单示例:
strategy:
matrix:
execTest1:
agentname: "Agent-V1"
executeTests: "Functionality1"
execTest2:
agentname: "Agent-V2"
executeTests: "Functionality2"
execTest3:
agentname: "Agent-V3"
executeTests: "Functionality3"
maxParallel: 3
pool:
name: '{pool name}'
demand:
- agent-name -equals $(agentname)
...
...
有了这样的YAML定义,它可以使用不同的配置同时运行作业。另外,不同的配置会运行到指定的代理上
注意:请确保您的项目支持并行消费
有关更多详细信息,请参阅。如果我没有误解的话,您想要的是在多个代理中使用多个配置运行测试 如果是的话,我最好建议你可以申请管道,以实现你想要的 *注意:
Matrix
是仅支持YAML管道的新功能。如果你想在你的身边使用矩阵,你必须使用YAML来配置你的管道*
有关如何在此场景中应用矩阵,您可以参考以下简单示例:
strategy:
matrix:
execTest1:
agentname: "Agent-V1"
executeTests: "Functionality1"
execTest2:
agentname: "Agent-V2"
executeTests: "Functionality2"
execTest3:
agentname: "Agent-V3"
executeTests: "Functionality3"
maxParallel: 3
pool:
name: '{pool name}'
demand:
- agent-name -equals $(agentname)
...
...
有了这样的YAML定义,它可以使用不同的配置同时运行作业。另外,不同的配置会运行到指定的代理上
注意:请确保您的项目支持并行消费
有关更多详细信息,请参阅。通过执行以下操作,我可以在此处找到我的案例的解决方案
executeTests
的变量组&将各个变量组的名称、值分配为functionaty1、functionaty2
等覆盖测试运行参数
上面的测试是基于每个代理作业的可用设置并行运行的通过执行下面的操作,我在这里找到了一个解决方案
executeTests
的变量组&将各个变量组的名称、值分配为functionaty1、functionaty2
等覆盖测试运行参数
以上确实基于每个代理作业的可用设置并行运行测试您使用yaml build还是经典编辑器builds?@Shaykibaramczyk我们使用经典编辑器您使用yaml build还是经典编辑器builds?@Shaykibaramczyk我们使用经典编辑器不幸的是我们没有使用yaml Pipelines不幸的是我们没有使用YAML管道