2

使用 Jenkins 和 Selenium 测试的 Web 开发项目(在我的情况下为 PHP)的正确构建流程是什么?

一般来说,我对 CI 很陌生,但我一直在研究如何在 Jenkins 上集成 Selenium 测试(通过 Saucelabs)。

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

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

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

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

4

1 回答 1

1

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

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

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

于 2014-06-19T13:53:41.213 回答