我正在使用Jenkins进行构建,并编写了一些测试脚本,我需要在构建编译后运行它们。 我想节省一些时间,所以我必须并行运行测试脚本。我怎么能这样做?
编辑:好的,我知道我知道每次测试都需要一个单独的工作(对于4个测试,我需要4个工作,对吧?) 所以,我这样做,并通过父工作我运行这个工作。 (使用“构建其他项目”插件)。 但我没有设法聚合结果(使用聚合下游测试结果)。父作业在下游作业完成之前退出。 我该怎么办?
感谢。
答案 0 :(得分:1)
您可以使用多作业插件。这将允许您并行运行多个作业,父作业将等待子作业完成。父作业状态可以由子作业状态确定。
答案 1 :(得分:0)
詹金斯并不真的允许你并行运行。但是,您可以将构建拆分为不同的作业来实现此目的。它看起来像这样。
但这是一个很大的问题。更好的选择是在运行测试的脚本中进行并行化,即运行单个脚本然后并行运行测试。如果这是不可能的,你将不得不分成不同的工作。
答案 2 :(得分:0)
你看过Jenkins JOIN插件吗?我没有使用它,但我相信这是你想要完成的。
- 迈克
答案 3 :(得分:0)
实际上你可以,但你需要一些编码。 就我而言,我在jenkins上执行并行测试。
1)创建一个小作业,其参数可以用小套件进行测试
2)编辑此作业以在从属列表上运行(您拥有适当的环境)
3)编辑此版本以允许并发版本
现在是困难的部分。
4)创建一个小型java程序,用于计算要运行的每个作业的参数列表。
5)通过列表迭代并在新线程上启动新的Jenkins作业。
在运行之间放置Thread.sleep(5000)
以避免通信错误
6)加入主题
在每项工作结束时,我会将结果发送到共享位置,以便在所有测试结束时执行一些报告。
要使用参数启动jenkins作业,请使用 CLI
我打算让我的代码尽可能通用,并在其他人需要的时候发布它。
答案 4 :(得分: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") }
)
答案 5 :(得分:0)
您可以使用以下任何一项: