我怎样才能独家访问Jenkins代理的所有遗嘱执行人?

我怎样才能独家访问Jenkins代理的所有遗嘱执行人?,jenkins,Jenkins,我想最大限度地利用我的代理,我有各种类型的代理和各种需求的工作 我们有两类代理: 只有一个执行器的虚拟机 物理机器,有五个执行器 我们有三种一般类型的工作: 与桌面交互的自动化用户界面测试 产品性能(定时)测试 功能回归测试 以下是标准: 性能测试必须以独占方式访问物理代理 UI测试是对时间敏感的,因此它们还应该具有对其上运行的任何代理的独占访问权限 功能回归测试可以在任何地方、任何数量的执行器上运行 我可以使用“作业权重”插件,它会导致作业的特定构建占用特定数量的节点。我还可以使用

我想最大限度地利用我的代理,我有各种类型的代理和各种需求的工作

我们有两类代理:

  • 只有一个执行器的虚拟机
  • 物理机器,有五个执行器
我们有三种一般类型的工作:

  • 与桌面交互的自动化用户界面测试
  • 产品性能(定时)测试
  • 功能回归测试
以下是标准:

  • 性能测试必须以独占方式访问物理代理
  • UI测试是对时间敏感的,因此它们还应该具有对其上运行的任何代理的独占访问权限
  • 功能回归测试可以在任何地方、任何数量的执行器上运行
我可以使用“作业权重”插件,它会导致作业的特定构建占用特定数量的节点。我还可以使用“节流并发构建”插件,它可以限制每个节点并发运行的构建数量。然而,我找不到一个有效的组合

例1:
  • UI测试限制为每个代理一次生成
  • 工作权重为5的性能测试
问题1:
  • 功能测试可以在与UI测试相同的代理上运行
例2:
  • UI测试和功能测试限制为每个代理一个生成(共享限制类别)
  • 性能测试的权重为5
问题2:
  • 功能测试现在仅限于每个代理一个执行者,因此不能最大化物理代理
例3:
  • 将性能和UI测试设置为作业权重5
问题3:
  • UI测试将不再使用虚拟机代理
如果“作业权重”插件有一个“Max”设置(只使用代理上的所有执行器),那么这个问题就会消失。然后,我可以将UI和性能测试设置为作业权重为“Max”,并使用它来完成


关于如何将这些标准与Jenkins及其插件当前的局限性结合起来,有什么建议吗?

最后,我们就是这么做的。所有代理人每人有五名遗嘱执行人

作业权重大约发生了一点变化:

  • 功能测试的权重为1
  • 性能测试的权重为5
  • UI测试的权重为5
然后,我们使用throttle插件创建了两个类别,根据标签进行节流:

  • 每个1个\u任何\u代理将与该类别关联的任何作业限制为一次仅在代理上运行一个作业
  • 每虚拟机1个虚拟机代理将与该类别关联的任何作业限制为一次仅在虚拟机代理上运行一个作业,但不限于物理代理
我们将1_per_any_代理限制类别应用于性能和UI测试,并将1_per_vm_代理限制类别应用于功能测试

现在,功能测试可以在物理代理上同时运行五个构建,但仅限于在虚拟代理上运行一个构建。在运行性能测试或UI测试时,它们不会运行,因为这些作业的权重为5