0

对于集成测试,我想使用 selenium,也用于我的 TDD/BDD 工作流程,也用于我的远程构建服务器以运行测试等。

为此我需要哪些组件?

我知道有一个浏览器插件,但那是为了帮助引导代码(您可以导出代码,然后根据需要进行调整)。

我发现在启动浏览器时在本地运行测试很慢,有没有办法在不打开浏览器的情况下做到这一点?

这在构建服务器上如何工作,是否有无头模式?

有人可以概述各种 selenium 工具以及它们如何组合在一起以及它们在开发周期中的使用位置。

例如,我看到了 selenium 驱动程序、selenium rc、浏览器插件等。

我想将它用于rails和java。

4

2 回答 2

1

我从来没有用 Java 尝试过 Selenium,只用过 Ruby,但你的交互应该是相似的。我不认为 Selenium 有无头模式,你必须为此使用不同的驱动程序。例如,对于 ruby​​,有capybara-webkit,它运行基于无头 webkit 的浏览器。

我可以根据我自己的经验告诉你,我们在使用无头浏览器的 CI(构建服务器)上遇到了很多问题,所以我们最终切换回了 Selenium 和运行在Xvfb之上的 Google Chrome ,这是一种虚拟屏幕管理器适用于 unix,可让您在无头环境中运行图形应用程序。大多数问题与 webkit 无头浏览器和实际驱动程序之间的不一致行为有关。但是,根据您的应用程序的外观以及您将如何驱动它,它可能对您有用,您应该尝试一下。

因此,您需要的唯一组件是 Selenium 服务器(驱动浏览器)和客户端,它将命令发送到服务器。他们有 java 和 ruby​​ 客户端,所以你可以选择你喜欢的任何语言。

这确实是一个缓慢的过程,而且非常不稳定,因为有时由于超时、第 3 方 API 关闭等原因,您的测试可能会无缘无故地失败。有很多事情可能会出错并导致您的集成测试失败.

无论如何,它仍然是一个非常宝贵的工具,你绝对应该使用它。请注意,您不应该完全依赖这些类型的测试来确保您的应用程序的质量,但是,这些应该只测试您系统的较小表面。单元和组件测试应该构成测试套件的大部分。

希望这有助于澄清您的问题。

于 2012-06-27T19:20:18.983 回答
0

我自己对 Selenium 进行了一些评估,据我了解,您应该使用 Firefox 插件来记录您的测试。然后导出到您想要的任何代码。然后,当您想测试系统时,启动 Selenium RC,它充当服务器,然后您可以使用它来运行测试。Selenium WebDrivers 是其中的一部分,它允许服务器使用您记录的测试打开和“驱动”浏览器。

请注意,在 Firefox 以外的浏览器中记录测试更加困难,因为没有方便的插件可供使用。相反,您必须从头开始构建自己的测试,这非常耗时。

Fabasoft 的 app.test ( http://www.apptest.com/en/ ) 是另一个免费的替代品,它做同样的工作但以不同的方式,也许在你过度参与 Selenium 之前先看看它。

于 2012-06-27T19:19:31.443 回答