试图了解硒及其各种成分

时间:2012-06-27 18:58:56

标签: java ruby-on-rails selenium

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

我需要哪些组件?

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

我发现在本地运行测试很慢,因为它启动了浏览器,有没有办法在浏览器打开的情况下执行此操作?

如何在构建服务器上运行,是否有无头模式?

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

e.g。我看到selenium驱动程序,selenium rc,浏览器插件等。

我想将它用于rails和java。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

答案 1 :(得分:0)

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

请注意,在Firefox以外的浏览器中进行录制测试比较困难,因为没有方便使用的插件。相反,你必须从头开始构建自己的测试,这很费时间。

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