将测试脚本分发给具有相同构建的从属服务器

时间:2012-10-10 15:12:52

标签: jenkins

我们当前的设置包括一个控制多个从机的主机。通常,主服务器会根据列表向从服务器发出测试脚本。哪个机器完成一个脚本或空闲,它将继续在列表中。所有这些都针对相同的单个构建进行测试。

我们正朝CI方式迈进,并希望做一些类似于我们目前计划的事情。我认为它可以工作相同,主人将建立,然后分发给奴隶进行测试。怎么做?

编辑:为了澄清我的立场,我之前没有使用过Jenkins,因此对它缺乏了解。在让我陷入遗忘之前,我只需要有人指出我正确的方向,而不是要求勺子饲料解决方案。

2 个答案:

答案 0 :(得分:15)

由于您没有接受hyde的回复,我假设您正在寻找更详细的答案。首先,如果您是Jenkins的新手,我强烈推荐Jenkins: The Definitive Guide。詹金斯并不难以使用,但它很难开始。这本书提供了一个很好的导游,从一开始就运行Jenkins安装的一些更复杂的部分。现在回答你的问题。 Jenkins允许您快速尝试,而无需真正安装"它,所以跟随这里。您还需要访问第二台计算机来制作临时从站(不用担心,没有真正的安装,所以只需使用同事的计算机)。

这些说明看起来很长,但这只是因为我走过了每一步。这不会花费太多时间。此外,我们可以随时点击Jenkins所有字段旁边的小问号。顺便说一句,当我引用某些内容时,请键入引号内的内容,而不是引号本身。

  1. 转到Meet Jenkins并向下滚动到“启动”按钮以启动Jenkins而不安装任何内容。
  2. 转到http://localhost:8080/。看!詹金斯正在跑步!
  3. 在左侧,点击管理Jenkins ,然后点击管理节点项。
  4. 点击左侧的新节点。将其命名为" Foo",选择" Dumb Slave",然后单击OK。
  5. 设置"执行者#"到1(它是你希望这个奴隶同时运行的构建数量)。
  6. 设置"远程FS root"到" c:\ jenkins"或" / tmp" (这将在从属计算机上创建一些文件,因此请使用具有写入权限的目录。)
  7. 设置"标签"到"测试员"
  8. 设置"启动方法"通过Java Web Start"启动奴隶代理。 (你可能不想在制作中这样做,但它可以让我们快速培养一个奴隶。)
  9. 点击保存
  10. 点击左上角的 Jenkins 返回主页。
  11. 点击左侧的新作业
  12. 为工作命名"我的构建"并选择"自由式软件项目"然后单击“确定”。
  13. 选中重新确定此项目的运行位置,然后输入" master"对于标签(它甚至应该自动完成)。这使得构建仅在主服务器上运行。
  14. 点击底部添加构建步骤
  15. 如果您的主人(当前机器)是Windows机器,请选择"执行Windows批处理命令"否则,选择"执行shell"。
  16. 无论哪种方式,对于命令类型" echo Building"。这不是必要的,但它允许您看到构建确实做了一些您告诉它要做的事情。
  17. 点击屏幕底部的保存
  18. 你现在应该参加" Project My Build"页。点击左侧的立即构建链接。由于构建几乎没有任何作用,它几乎立即完成。历史记录中会显示一个带有蓝色圆圈的条目,表示构建成功。
  19. 返回主Jenkins屏幕并添加新作业
  20. 将此名称命名为#34;我的测试",将其设为另一个"自由式软件项目",然后单击确定。
  21. 再次,检查"限制此项目可以运行的位置",但制作标签" tester" (再次,它应该自动完成)。
  22. 向下滚动并再次点击添加构建步骤。选择" Windows批处理"或者" shell"取决于奴隶计算机(例如,您的同事的计算机)是什么。
  23. 键入" echo Testing"
  24. 点击底部的保存
  25. 现在是有趣的部分。转到你的另一台电脑(或告诉同事他们的头灯已打开并使用他们的电脑)。打开Web浏览器并转到http:// your-masters-ip-address :8080 /
  26. 点击管理Jenkins ,然后点击管理节点
  27. 点击 Foo ,然后点击启动按钮。点击任何安全/"你确定"警告,你应该看到一个小窗口说詹金斯是连接的。现在你的奴隶正在跑步。
  28. 返回主计算机,转到Jenkins主屏幕,然后点击构建列表中的我的测试
  29. 在左侧,点击立即构建。这将花费更长的时间,因为它必须联系奴隶并将作业分配出来,但它应该完成并将构建添加到历史记录中。
  30. 单击构建历史记录中的条目。然后,在左侧,点击控制台输出
  31. 日志应该说构建是在Foo上远程执行的,并且有echo语句。哇噢!我们现在有远程构建工作。
  32. 最后,我们将构建链接在一起。导航回到"我的构建"然后点击左侧的配置
  33. 在“构建后操作”部分中,单击添加构建后操作,然后选择“#34;构建其他项目"”。键入"我的测试"在现场(它应该自动完成)。单击“保存”。
  34. 转到Jenkins主屏幕,然后点击"我的构建"右侧的时钟/播放图标。如果仔细观察,您可能会看到作业出现在" Build Queue"或者#34; Build Executor Status"在左边。
  35. 等一下左右,然后刷新页面,你应该看到"最后成功"两次构建更新的时间。云应该分开,你应该听到天使在唱歌,但不要庆祝。
  36. 你现在有一位大师在做#34; build"和一个做“" test"”的奴隶,一个构建触发了测试。你可以添加更多的奴隶,只要他们有标签" tester",构建服务器就会自动分发。您还可以在构建之后进行许多测试,并使构建触发所有这些测试。这就是所有简单的东西,需要一些肘部油脂的东西让Jenkins运行你的构建和测试。从小处着手,继续前进。哦,说真的,去购买我所链接的那本书(它可以在死树和无DRM的电子书中找到,不,我没有与O' Reilly或作者有任何联系,它只是一本非常有用的书)所以你可以了解詹金斯能做什么,以及如何最好地适应你的系统和你想要的东西。

答案 1 :(得分:3)

这就是你的意思:

  1. 转到从属节点配置,并为slave提供适当的标签,如“unittest”。对所有要进行单元测试的从站重复此操作(请注意,如果需要,从站可以有多个标签)。

  2. 转到作业配置,勾选“限制此作业可以运行的位置”,在那里键入“unittest”。

  3. 另请阅读这些字段的帮助文本!

    对于更高级/复杂的CI设置,如果要参数化作业可以运行的位置,还要检查节点标签参数插件。