具有自动化UI测试(硒酱实验室)的持续集成流(Jenkins)的正确流程是什么


What is the right flow on a Continuous Integration Flow (Jenkins) with automated UI tests (selenium saucelabs)

对于使用 Jenkins 和 Selenium 测试的 Web 开发项目(在我的例子中为 PHP(来说,正确的构建流程是什么?

总的来说,我对 CI 很陌生,但我正在研究如何在 Jenkins 上集成硒测试(通过 Saucelabs(。

我的

困惑是我什么时候将更改部署到远程服务器以便 Jenkins 可以执行它,我的假设是正确的,说它应该为网站提供以下内容吗?

  • 将更改推送到分支(即开发(
  • 詹金斯检测到变革推动开发
  • 詹金斯引入最新变化
  • 詹金斯开始对它运行单元测试
  • 如果单元测试通过,Jenkins 会将更改部署到 Web 服务器(暂存/CI env(
  • 一旦该Web服务器进行了更改,Jenkins就会在该服务器上运行Selenium测试。

假设我必须将我的更改部署到单独的环境中,因为 selenium 脚本必须接触服务器或某种类型。

如果我的 Jenkins 服务器也与网站在同一台服务器上,我也可以取消部署步骤?

如果您的团队每天执行多个推送,则 UI 测试的执行可能会发生冲突,因为当您有许多硒测试时,它们的执行需要大量时间(通常为几个小时(。所以我建议不要在每次推送后启动它们,只运行单元测试并在那时部署在暂存服务器上。

Selenium 测试可以在每晚和部署到生产服务器(或在预生产服务器上执行,客户端在部署到生产服务器上之前检查更改(之前执行。

我还要添加一个额外的步骤:当完整的测试执行成功时,标记版本(这可以用 jenkins 完成(,这样当测试失败时,您可以取消部署并部署最后一个成功的版本。