一个用于网站自动化测试的生态系统实现
作者:网络转载 发布时间:[ 2014/3/12 14:16:44 ] 推荐标签:自动化测试 网站 测试代码
我在Jenkins的这些个job配置起来还是比较繁琐的,要细讲又可以另外写一篇文了。这里特别提到两个很实用的插件吧:
(1)Parameterized Trigger Plugin(https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin):可以在一个build step中触发其它project的build。

它有用的是这个“Block until the triggered projects finish their builds”选项,勾上的话Jenkins能在所有trigger的project完成build之后(而非仅仅trigger其它project的build,不等它们完成继续下一个build step)再继续下一个build step,做到真正的依次执行每个build step。

(2)NodeLabel Parameter Plugin(https://wiki.jenkins-ci.org/display/JENKINS/NodeLabel+Parameter+Plugin):在所有“Possible nodes”标有指定标签(“Label”)的Jenkins节点(是Jenkins master或Jenkins slave)上触发指定project(被触发的project是参数化的)。
比如我有一个project叫“StartClassicROLATServiceOnAllNodes”,它有一个build step是这样设定的:

再来看看“StartClassicROLATServiceOnASingleNode”这个project的设定:

这个project有一个Node类型的参数,参数名“NodeX”与之前Label Factory中的“NodeX”对应,“Possible nodes”选的是“ALL”,那么列出的所有node(master、10.107.122.152、10.107.122.153、10.107.122.154)都在判断范围之内(判断其是否有“Node”标签,有则执行project)。
另外,列出的所有node我都为其加了一个“Node”标签。

这样,当我trigger “StartClassicROLATServiceOnAllNodes”之后,会在master、10.107.122.152、10.107.122.153、10.107.122.154这4个node上同时执行“StartClassicROLATServiceOnASingleNode”。

sales@spasvo.com