我有一个Jenkins奴隶女巫在移动设备上运行的葫芦测试(android,ios)。要分别在哪些机器(适用于iOS的Android或适用于Android的Linux)上运行测试,我还使用 Throttle Concurrent Builds Plug-in 。通过这种方式,我将设备连接到的Android或Mac Jenkins奴隶分开。
我使用映射表和自编写的bash脚本按名称调用设备并对此特定从属执行测试。映射表映射是设备ID(或iOS的IP)的名称。
架构如下:
[Master]--(Slave-iOS)---------iPhone6
| |--------------iPhone5
|
|--------(Slave-Android)-----HTCOne
|--------------Nexus
|--------------G4
要将设备移交给bash脚本,我使用 Jenkins矩阵项目插件,这样我就可以创建一个设备和测试用例列表,如:
HTCOne Nexus G4
Run x x x
Delete x x x
CreateUser x x x
遗憾的是,此列表只能按顺序执行。现在我也希望在多个设备上并行构建测试,反之亦然。
我搜索一个处理设备分配的Jenkins插件。如果一个触发器需要特定设备,它应该等到可以访问该设备并且可以执行测试。该插件应该与Jenkins中的shell执行集成。
如果它可以与Matrix Project插件结合使用,那将是一大优势!
到目前为止我所看到的:
我找到的相关问题,虽然有所帮助但没有解决问题:
答案 0 :(得分:4)
如果Throttle Concurrent Builds Plugin在多配置项目中无法正常工作,请尝试 Exclusion Plugin具有动态资源名称,例如: SEMAPHORE_MATRIX _ $ {NODE_NAME}
然后添加构建步骤“关键块启动”(以及可选的“关键块结束”步骤),这将保持此构建块执行,直到SEMAPHORE_MATRIX _ $ {NODE_NAME}未在任何其他作业上使用,包括当前矩阵儿童工作。
(...仅当SEMAPHORE_MATRIX _ $ {NODE_NAME}可用时才构建要运行的步骤...)