我可以使用 Jenkins Slaves 在不同的操作系统上进行自动化测试吗?

Can I use Jenkins Slaves for automated testing on different operating systems?

我正在使用 Jenkins 设置 CI 工作流程。我有各种代码库,我希望能够在从 Windows Server 2012 到 2003 以及 Red Hat 等不同操作系统上进行测试。

我想知道使用 Jenkins slaves 是否是一个有效的解决方案。

具体问题如下:

  1. 如果 master 执行项目,项目定义在哪里 vs 作业在哪里执行?
  2. 如果我想执行一项测试我不想在 masters 操作系统上支持的语言的工作(想想 Windows 上的 Ruby),我是否还需要制作掌握该语言以便定义工作,例如通过安装相关插件?
  3. 如果我在 VM 中定义一个 运行ning 的从站并且我停止 VM,当 VM 恢复时,我是否必须 运行 某种启动任务在从机上,或在主机上执行预执行任务,在我可以开始项目之前重新注册从机 运行ning on the slave?
  4. 当从任务完成并报告结果时,这些结果是否存储在主服务器上,以便我可以关闭从服务器并仍然可以访问之前的测试 运行 结果和趋势信息?

在此先感谢您的任何建议。

  1. 如果 master 执行项目,项目定义在哪里 vs 作业在哪里执行?

作业在Master上定义和存储,它们在Slave机器上执行。您可以使用标签定义哪些作业在哪些从站上执行。

  1. 如果我想执行一个测试我不想在 masters 操作系统上支持的语言的工作(想想 Ruby 在 Windows 上),我是否还需要制作掌握该语言以定义工作,例如通过安装相关插件?

大师不需要了解构建环境。如果您使用适当的构建环境设置从站,那应该没问题。主人只是委托工作等等。

  1. 如果我在 VM 中定义一个 运行ning 的从站并且我停止 VM,当 VM 恢复时,我是否必须 运行 某种启动任务在从站上,或在主站上执行预执行任务,在我可以开始项目之前重新注册从站 运行ning on the slave?

这取决于您将 Slave 连接到 Master 的方式。例如,如果您使用启动方法连接 Windows 机器:"Let Jenkins control this Windows slave as a Windows service"。当从站重新在线时,它应该自动重新连接。但是,要使其正常工作需要进行一些设置。

  1. 当从任务完成并报告结果时,这些结果是否存储在主服务器上,以便我可以关闭从服务器并仍然可以访问之前的测试 运行 结果和趋势信息?

控制台日志保存在主机上。这可能就是你想要的。

希望对您有所帮助:)