0

我正在使用 Jenkins 进行构建,并且我编写了一些测试脚本,我需要在构建编译后运行这些脚本。我想节省一些时间,所以我必须并行运行测试脚本。我怎样才能做到这一点?

编辑:好的,我知道我需要为每个测试一个单独的作业(对于 4 个测试,我需要 4 个作业,对吗?)所以,我做到了,并通过父作业我运行了这个作业。(使用“构建其他项目”插件)。但我没有设法汇总结果(使用汇总的下游测试结果)。父作业在下游作业完成之前退出。我该怎么办?

谢谢。

4

6 回答 6

1

您可以使用多作业插件。这将允许您并行运行多个作业,并且父作业将等待子作业完成。父作业状态可以由子作业状态确定。

https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin

于 2013-10-10T21:10:15.200 回答
0

Jenkins 并不允许你并行运行。但是,您可以将构建拆分为不同的作业来实现此目的。它看起来像这样。

  • 编译源代码的作业运行。
  • 运行测试的作业由编译完成触发并开始运行。他们将上一个作业的编译结果复制到他们的工作区中。

这是一个很大的笨拙。更好的选择是在运行测试的脚本中并行化,即运行单个脚本,然后并行运行测试。如果这是不可能的,你将不得不分成不同的工作。

于 2013-10-07T12:17:08.400 回答
0

实际上你可以,但你需要一些编码。就我而言,我在 jenkins 上有并行测试执行。

1)创建一个带有参数的小作业,应该用一个小套件进行测试运行

2)编辑此作业以在从属列表上运行(您有适当的环境)

3)编辑此构建以允许并发构建

现在是困难的部分。

4)创建一个小型 java 程序,用于计算要运行的每个作业的参数列表。

5)遍历列表并在新线程上启动新的 Jenkins 作业。

在运行之间放置一个Thread.sleep(5000)以避免通信错误

6)加入线程

在每项工作结束时,我将结果发送到共享位置,以便在所有测试结束时执行一些报告。

要使用参数启动 jenkins 作业,请使用CLI

我打算使我的代码尽可能通用,并在其他人需要时发布。

于 2015-01-28T15:20:28.173 回答
0

你看过 Jenkins JOIN 插件吗?我没有使用它,但我相信这是你想要完成的。

- 迈克

于 2013-10-07T21:30:58.100 回答
0

您可以将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") }

)

于 2015-01-28T16:24:06.580 回答
0

您可以使用以下任何一种:

  1. 多任务插件

  2. 构建流程插件

于 2015-07-15T09:43:14.040 回答