将慢UI测试集成到CI部署管道中

时间:2013-05-29 15:46:09

标签: deployment continuous-integration teamcity integration-testing

我们在Teamcity中使用相当标准的CI部署管道来打包我们的应用程序。我们从以下管道开始。下面的每个步骤都代表构建必须通过的门,以便前进到下一步:

  1. 编译
  2. 单元测试
  3. 后端组件集成测试
  4. 前端验收测试(基于Selenium)
  5. 在项目开始阶段,当前端测试套件较小且相对较快(<2分钟)时,这项工作正常。然而,随着套房的大小和长度的增长(15:00分钟和不断增长),在每次办理登机手续时将其解雇都很快变得难以理解。我们已经从我们的主要管道中删除了套件,并且每天在一个独立的管道上启动它四次:

    1. 编译
    2. 单元测试
    3. 后端组件集成测试
    4. 这种方法的问题很明显,因为即使它在前端测试套件中引起了回归,构建很可能会一直进入包阶段。我想如果前端测试套件出现故障,我可以使已经创建的软件包无效,但这看起来很笨拙。我们已经考虑进一步优化测试套件,但我认为这是一个死胡同,除非我们可以并行运行测试,这是TeamCity不支持的。

      建议/批评欢迎。

1 个答案:

答案 0 :(得分:0)

不确定您在这里工作的开发平台,但我看到两个常规选项。

  1. 使用selenium网格或类似testNG
  2. 之类的东西
  3. 利用您拥有的任何teamcity构建代理,并在这些代理的数组上并行运行分区测试。我过去曾经有专门的构建代理运行测试,但即便如此,如果你的测试集增加太多,这种方法最终也会失败。
  4. 您的目标应该是通过UI直接减少测试的数量。看看如何更加强调在堆栈中进一步测试代码可以减少直接的UI测试负担。在最近的一个项目中,我们在我们的应用程序中重构了javascript以使其可测试。这些运行速度更快的测试意味着我们可以删除大量运行较慢的webdriver测试。它在时间和精力上有点投入,但它比你现在的情况造成的痛苦要少得多。

    应该尽可能避免计划的构建,因为就像你提到的那样,你最终可能会遇到捆绑缺陷的打包软件,而且反馈时间会大量增加。

相关问题