Jenkins多配置项目处理并发设备使用情况

lon*_*ony 5 testing mobile jenkins calabash

案件

我在移动设备(android,ios)上有一个Jenkins奴隶女巫运行的葫芦测试.要分别运行测试的机器(适用于iOS的Android或适用于Android的Linux),我还使用了Throttle Concurrent Builds插件.通过这种方式,我将设备连接到的Android或Mac Jenkins奴隶分开.

我使用映射表和自编写的bash脚本按名称调用设备并对此特定从站执行测试.映射表映射是设备ID(或iOS的IP)的名称.

架构如下:

[Master]--(Slave-iOS)---------iPhone6
 |             |--------------iPhone5
 |            
 |--------(Slave-Android)-----HTCOne
               |--------------Nexus
               |--------------G4
Run Code Online (Sandbox Code Playgroud)

要将设备移交给bash脚本,我使用Jenkins Matrix Project插件,它允许我创建一个设备和测试用例列表,如:

          HTCOne Nexus G4
Run         x     x     x
Delete      x     x     x
CreateUser  x     x     x
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这个列表只能按顺序执行.现在我还希望在多个设备上并行构建测试,反之亦然.

我搜索一个处理设备分配的Jenkins插件.如果一个触发器需要特定设备,它应该等到可以访问该设备并且可以执行测试.该插件应该与Jenkins中的shell执行集成.

如果它可以与Matrix Project Plugin结合使用,那将是一个很大的优势!

到目前为止我所看到的:

  • 排除-插件,
  • Throttle Concurrent Builds插件,[用于指定slave]
  • 锁定和锁存插件,对于目前为止列出的所有插件,我不知道如何将它们链接到矩阵配置并动态获取设备.我也不知道如何将锁定的资源信息放入我的脚本中.
  • Port Allocator插件,未经测试但似乎有同样的问题
  • 外部资源调度程序,似乎只分配一个资源,如果它是矩阵配置,则找不到任何内容.

我找到的相关问题,虽然有所帮助,但没有解决问题:

Noa*_*nos 3

如果Throttle Concurrent Builds Plugin在多配置项目中无法按要求工作,请尝试 使用动态资源名称的 排除插件,例如: SEMAPHORE_MATRIX_${NODE_NAME}

在此输入图像描述

然后添加构建步骤“关键块开始”(以及可选的“关键块结束”步骤),该步骤将保持此构建块执行,直到 SEMAPHORE_MATRIX_${NODE_NAME} 未在任何其他作业(包括当前 Matrix 子作业)上使用。

在此输入图像描述

(...仅当 SEMAPHORE_MATRIX_${NODE_NAME} 可用时才运行构建步骤...)


归档时间:

查看次数:

691 次

最近记录:

9 年,11 月 前