Cucumber / Capybara vs Selenium?

时间:2012-07-05 17:23:09

标签: ruby selenium cucumber capybara

前几天,我向我公司的一位测试人员展示了我用黄瓜写的一些测试(2个功能,5个场景)。 然后他问我无法回答的问题:

  

这比硒或任何其他功能测试录音工具更好吗?

我知道黄瓜是一种不同的技术,它处于不同的测试水平,但我无法理解为什么我应该费心去编写和维护Cucumber / Capybara测试。

有人可以给我一个合理的解释,使用Cucumber / Capybara而不仅仅是Selenium吗?

4 个答案:

答案 0 :(得分:16)

这个问题是边缘问题。你的问题实际上告诉我,“什么工具适合我?”我这样说是因为你没有说明为什么选择Cucumber和Capybara。我相信回答测试人员的问题,你需要先回答几个问题:

1。)你将在这个过程的哪个阶段编写这些测试?

根据您使用的语言,黄瓜可能不是单元测试的正确选择。但它可用于任何级别的测试,从单元到集成再到最终用户。

2。)谁将维持你的考试?您?其他开发者?测试人员吗?业务分析师?项目经理?

必须维护自动化测试,并且知道谁将会这样做可以帮助您决定工具 - 因为某些工具对某些用户而言过于技术化。

3。)谁将定义新的测试?

Cucumber旨在用于开发,QA和企业主之间的协作。它是将每个人的知识融入自动化测试过程的完美工具。然而,它需要开发无处不在的语言才能生效。您可以在James Shore's Art of Agile页面上阅读。

一旦你回答了这些问题,你就可以解决测试人员的问题了。

但是,在比较录制工具(例如Selenium IDE,HP Quick Test Pro,IBM Rational Functional Tester)与开发工具(nUnit,jUnit,RSpec,Selenium webdriver,Capybara)时,需要记住几点。 )是他们针对不同的受众。他们也有不同的优点和缺点。

任何人都可以轻松使用录制工具,但他们创建的脚本很脆弱。它们易于破碎并需要更多维护。它们非常适合一次性自动化测试,您需要快速完成并拥有非技术人员。

开发工具具有更大的学习曲线,需要编程(或至少编写脚本)经验。脚本通常更强大,但需要更多的技术知识来维护。当您需要可重复性并计划长时间使用测试时,它们是一个很好的解决方案。

我强烈建议您阅读The Cucumber Book。这将真正帮助您确定黄瓜是否适合您。

答案 1 :(得分:9)

黄瓜不仅是一种测试工具。除了测试Cucumber功能外,还需要一个文档,一个与利益相关者和需求存储协作的机制(如果你在declarative style中编写它们)。

您不必将Cucumber与Capybara一起使用。你可以直接使用selenium。但Capybara为所有supporting drivers提供了相同的高级API。它比Selenium更高级,允许更快地编写测试。当您从一个驱动程序切换到另一个驱动程序时,您不必更改代码。

使用测试记录工具构建的测试通常要糟糕得多。 Selenium IDE可能会生成有效的编程代码,但它看起来并不好看,因而很难维护。

答案 2 :(得分:1)

Cucumber是用于使业务用户可以读取的工具。它由简单的英语句子组成,使用正则表达式与您的Capybara步骤匹配。

从长远来看,使用录音工具对你没有任何好处。它们是初学者的意思,并不是那么强大,所以我建议你直接编写代码。

您可以单独使用Selenium进行测试,但如果您发现Cucumber有用且易于使用,我建议您继续使用Cucumber进行文档编制。毕竟,Cucumber可以使用Capybara或Selenium网络驱动程序。

答案 3 :(得分:1)

Selenium ide适用于测试主要包含视觉元素(链接,文本等)的功能。但是,网络应用程序通常具有不能将自身表示为视觉元素的功能,例如发送电子邮件,排队作业,与第三方服务进行通信等等。例如,您可以测试是否已发送电子邮件和' #39;提交表单后出现消息。但它并没有真正告诉你是否实际发送了一封电子邮件,因此你并没有在这里真正测试整个功能。