【问题标题】:Setting up Jenkins Continuous Integration and Selenium web application testing设置 Jenkins 持续集成和 Selenium Web 应用程序测试
【发布时间】:2012-07-30 17:19:19
【问题描述】:

我正在尝试设置 Jenkins 来运行我们的 Cucumber 功能。在进行设置时,我有点迷茫。以下是我们设置的一些细节:

  • 带有用 Ruby 和 PHP 编写的步骤的 Cucumber 功能(使用 Cuke4PHP)
  • PHP 应用程序(通常链接到其他 PHP 应用程序)
  • 使用 Capybara 和 Selenium 练习 Javascript

在开发环境中,由于我们的应用程序需要相互链接,因此我们使用http://developername.dev.exampleapp.com等域设置了apache vhosts

我应该如何设置这个 Jenkins 环境来运行我们的黄瓜测试?

您似乎想要使用 VirtualBox 或其他工具设置虚拟机,以便设置类似于您的生产环境的环境并从该虚拟主机为项目提供服务。但是,您是否在虚拟机之外运行测试?还是你在虚拟机上运行测试并报告给 Jenkins?配置虚拟机时是否设置了虚拟主机?您如何设置项目以使用隔离数据库?您如何并行运行您的功能,以免它们永远占用?如果有人能解释一下,我将不胜感激。

【问题讨论】:

  • 你成功找到答案了吗?我也在为 PHP 构建类似的 CI 环境。你能分享一下你的经验吗?
  • 很遗憾,我还没有完成设置。我会在它工作后发布更新。

标签: php selenium continuous-integration jenkins capybara


【解决方案1】:

我们最近开始使用Vagrant 在虚拟机上设置开发环境,在该环境中,我们使用主机和来宾虚拟机之间的文件夹共享来获取应用程序源代码,并且应用程序数据库本身位于虚拟机上。不过,我们还没有使用 CI 实现。

要为构建设置应用程序环境,您可以使用 Vagrant 设置应用程序环境。并为您的 Vm 分配一个 ip,它可以自行处理该 ip 的 Virtualhost。

为了运行测试,你的 selenium/acceptance 测试应该从你的主机/构建机器上运行,考虑到 Amber 指出的应用程序的客户端和服务器架构。但是单元测试应该在你的虚拟机本身上运行。我对并行运行功能没有太多想法。但是,一旦我们将整个流程实施到 CI 中,我将分享我的经验。

【讨论】:

    【解决方案2】:

    您是否让您的客户在您的生产服务器上运行他们的浏览器? (希望不是 - 希望他们在自己的计算机上运行它们!)因此:

    服务器 VM 相当于您的生产服务器,因此它不是运行测试的地方 - Selenium 测试在浏览器中运行。根据您要测试的浏览器数量/浏览器设置类型,您可以使用操作系统/浏览器组合设置单独的虚拟机来运行测试,也可以在标准浏览器安装的虚拟机之外运行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多