我使用Jenkins作为构建版本,并且编写了一些测试脚本,需要在构建编译之后运行。 我想节省一些时间,所以我必须并行运行测试脚本。我怎样才能做到这一点?在Jenkins中运行并行作业
编辑:好的,我明白知道,我需要一个单独的工作为每个测试(4次测试中,我需要4个职位,对吧?) 所以,我这样做,并通过父作业我跑这个职位。 (使用“构建其他项目”插件)。 但我没有设法汇总结果(使用汇总下游测试结果)。在下游作业完成之前,父作业会退出。 我该怎么办?
谢谢。
我使用Jenkins作为构建版本,并且编写了一些测试脚本,需要在构建编译之后运行。 我想节省一些时间,所以我必须并行运行测试脚本。我怎样才能做到这一点?在Jenkins中运行并行作业
编辑:好的,我明白知道,我需要一个单独的工作为每个测试(4次测试中,我需要4个职位,对吧?) 所以,我这样做,并通过父作业我跑这个职位。 (使用“构建其他项目”插件)。 但我没有设法汇总结果(使用汇总下游测试结果)。在下游作业完成之前,父作业会退出。 我该怎么办?
谢谢。
詹金斯并不真的让你平行运行。然而,你可以将你的构建分成不同的工作来实现这一点。它看起来像这样。
虽然这是一个很大的问题。更好的选择是在运行测试的脚本中进行并行处理,即运行单个脚本,然后并行运行测试。如果这是不可能的,你将不得不分裂成不同的工作。
你看过Jenkins JOIN插件吗?我没有使用它,但我相信这是你正在尝试完成的。
迈克 -
正如我上面写的,我需要在Jenkins中同时运行一些测试。我可以在同一个项目中使用詹金斯的“后期制作动作”一个接一个地执行它们(不是并行的)。但我需要平行运行它们。我不想在我的perl脚本中做这件事,我需要詹金斯去做。现在更清楚了吗?谢谢:) – user1836185
编辑我的答案,希望能回答你的问题。 – mikew
加入的问题是我需要创建一个加入作业。我需要的主要工作将等待测试结果,所以它可以发送只有一个邮件与构建兰特的测试结果.. – user1836185
其实你可以,但你需要背后的一些编码。 就我而言,我在jenkins上执行了并行测试。
1)与应该做一个测试运行的小套房
2)编辑这份工作的奴隶名单上运行(如果您有适当的参数创建一个小的工作环境)
3)编辑此版本允许并发建立
现在最困难的部分。
4)创建一个小型java程序,用于计算每个要运行的作业的参数列表。
5)迭代通过列表并在新线程上启动新的Jenkins作业。
将运行间有Thread.sleep(5000)
为了避免通信错误
6)加入螺纹
在每个作业结束时,我将结果发送到共享位置,以执行一些在所有测试结束时进行报告。
对于开始参数的詹金斯工作中使用CLI
我打算让我的代码尽可能通用和发布它,如果任何人都需要它。
可以使用https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin与这样的代码
平行(
// job 1, 2 and 3 will be scheduled in parallel.
{ build("job1") },
{ build("job2") },
{ build("job3") }
)
可以使用以下的任一种:
谢谢,但我还是有一点问题,当构建成功,只有测试失败,詹金斯标志着整个建设成为“不稳定”。如果我将它分解为两个作业,构建作业将会成功,只有运行测试的作业将会变得不稳定。这对我来说是个问题。 和我有很多测试,我是否需要为每一个创建一个单独的作业? – user1836185
你需要单独的工作。关于另一个问题,你可以运行一项工作,收集所有的结果,并在一切完成后给出正确的结果。 –
但比第一份工作还是会成功的吧?我不确定我是否理解上一份工作的目的.. – user1836185