詹金斯:如何测试奴隶

时间:2016-01-05 21:29:31

标签: jenkins jenkins-slave

我正在为Jenkins构建环境的健全性测试创建Jenkins作业列表。我想创建工作层。第一层工作将检查环境,例如如果所有从站都已启动,那么第二层可以检查与其他工具(如GitHub,TFS,SonarQube)的集成,然后第三层可以运行一些典型的构建项目。在对Jenkins服务器进行任何重大更改后,此完整性测试还可用于验证环境。

我们在两台服务器上创建了大约10个从站,一台Windows和一台Linux。我知道我可以创建一个在特定从站上运行的作业,因此测试从站是否在线,但这样我需要创建10个作业来测试所有从站。有没有最好的方法来检查所有奴隶是否在线?

1 个答案:

答案 0 :(得分:3)

一种选择是使用Jenkins Groovy脚本来完成这样的任务。 Groovy plugin提供了Jenkins Script Console(一种有用的实验方法)以及将groovy脚本作为构建步骤运行的能力。如果您要使用脚本控制台进行定期维护,您还需要Scriptler plugin,它允许您管理您运行的脚本。

来自管理Jenkins - > 脚本控制台,您可以编写一个groovy脚本,遍历从站并检查它们是否在线:

for (node in Jenkins.instance.nodes) {
  println "${node.name}, ${node.numExecutors}"
  def computer = node.computer
  println "Online: ${computer.online}, ${computer.connectTime} (${computer.offlineCauseReason})" 
}

完成基本检查后,您可以在Scriptler中创建独立脚本,或者在特殊构建中定期运行这些检查。

通常需要一些迭代来确定要检查的正确属性集。正如我在another answer中所描述的那样,您可以编写函数来内省可用于编写脚本的对象。因此,通过一些试验和错误,您可以开发一个脚本来执行您想要运行的检查。