首页 文章

Jenkins CI-构建完成后的分布式测试

提问于
浏览
2

目前这是我想要实现的:我使用Jenkins不断构建我的项目,我也想在构建完成后进行分布式测试,即 . 跨多个节点/从属调度烟雾测试,以便测试可以同时在多个平台上执行,每个节点将持续接受来自主服务器的新调度测试套件,直到所有测试套件完成 .

我试过了:

  • 在Jenkins上设置主/从配置

  • 在构建步骤期间调用Maven以运行Junit单元测试

但是Jenkins只会选择一个slave来执行所有测试 . 我也试过DistTest插件,但我发现插件很难设置库的相对路径,有没有人有这个插件的经验?

到目前为止,我提出的最好的方法是:

  • 为每个可用的从站创建新的Jenkins作业,并在从站上分配(硬编码)测试套件

  • 使用Multijob插件一次触发所有作业

这个解决方案解决了这个问题,但是一旦奴隶增加到很大的数量,就很难扩展 . 我知道Jenkins的主要优势在于持续集成而不是分布式测试,对于我应该进行的工具或方向的任何建议,以便与Jenkins实现这一点,我们将不胜感激 .

2 回答

  • 0

    我读了你想要实现的几次,我理解/假设的是你有一套测试套件,你想要在slave / master上完成构建之后通过一个salve执行 . 现在我假设测试类型和相关的测试套件将保持不变(例如对一种或多种类型的从站进行冒烟测试(linux,MAc,Win,Solaris等,然后你有其他测试套件,如无头等) ..

    这些不是有限数量的组合,您可以创建作业并在主作业中按顺序执行它们,有build flow plugintemplate workflow plugin或某些关于distributed builds in jenkins的信息 .

    或者如果我需要更好地控制执行,我可以创建一个ant脚本,通过远程命令(如sshexec ant task)在多个服务器上执行目标,然后在ant脚本中编排流程 . Ant脚本可以通用化,以接受可能类似于您所引用的动态值的参数 .

    我很想知道这对你自己的影响 . !

  • 0

    您的JUnit烟雾测试是否与Maven项目分开?

    如是:

    • 为每个测试创建一个Jenkins Maven项目

    • 使用NodeLabel Parameter Plugin标记您的奴隶

    • 为作业分配适当的标签

    然后Jenkins自动分发您的构建 .

    这就是我们为十几个模块进行集成测试的方法 .

    如果您的测试不是单独的项目,请考虑相应地进行调整 .


    @ C.X.Yang:由于评论字段长度限制,于10月21日凌晨2点(CEST)评论:

    "test set"与您问题中的"test suite"相同吗?

    我们在应用程序的每个第一级项目中都有一个名为 test 的文件夹 . 这些文件夹中的每一个都包含Multi-module POM包含(大量)测试作为<modules> .

    因此,最终我们只有15个Jenkins作业执行所有测试,这15个测试(其子测试)通过标签分布在节点上 . 我们不在不同平台上进行测试,但我认为原则上无关紧要 - 节点是节点 .

    您的测试中是否没有共同点,以便您可以将它们分配/收集到有限数量的适当多模块POM中?

    我们在您的网站上谈论了多少个不同的平台(平台是否相同?)和测试套件/套件?

相关问题