【问题标题】:Cucumber/Capybara vs Selenium? [closed]黄瓜/水豚与硒? [关闭]
【发布时间】:2012-07-06 03:43:10
【问题描述】:

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

这比 selenium 或任何其他功能测试记录工具好在哪里?

我知道 Cucumber 是一种不同的技术,它被置于不同的测试级别,但我不明白我为什么要费心编写和维护 Cucumber/Capybara 测试。

谁能给我一个合理的解释,让我使用 Cucumber/Capybara 而不是仅仅使用 Selenium?

【问题讨论】:

    标签: ruby selenium cucumber capybara


    【解决方案1】:

    这个问题是在征求意见的边缘问题。你的问题实际上读给我看,“什么工具适合我?”我这样说是因为你没有给出选择 Cucumber 和 Capybara 的理由。我相信要回答那个测试人员的问题,您需要先回答几个问题:

    1.) 您将在流程的哪个阶段编写这些测试?

    Cucumber 可能不是单元测试的正确选择,具体取决于您使用的语言。但它可以用于任何级别的测试,从单元到集成再到最终用户。

    2.) 谁来维护您的测试?你?其他开发商?测试人员?商业分析师?项目经理?

    必须维护自动化测试,并且知道谁将执行此操作可以帮助您决定使用工具 - 因为对于某些用户而言,有些测试过于技术化。

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

    Cucumber 旨在供开发人员、质量检查人员和业务所有者之间协作使用。它是将每个人的知识用于自动化测试过程的完美工具。然而,它需要开发一种无处不在的语言才能生效。您可以在 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。它将真正帮助您确定 Cucumber 是否适合您。

    【讨论】:

    • 很公平。但这也假设您可以同时做到这两点。作为一名 QA 工程师,我无法控制开发人员的编码实践。但是,我可以比单元测试更有效地利用 Cucumber 来促进变革。
    • 其实问题是:“我为什么要用黄瓜?”
    • @treaz Cucumber “扮演文档的角色,是与利益相关者协作的机制和需求存储”
    • @AndreyBotalov 这是一些难以维护的文档。但是,我假设一旦定义了步骤定义,编写场景就容易多了,对吧?有没有人有这个话题的相关号码?
    • @treaz 你先写特征,然后再写步骤定义
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      从长远来看,使用录音工具对您没有任何好处。它们是为初学者设计的,功能不是很强大,所以我建议你直接开始编码。

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

      【讨论】:

      • 企业用户真的对读/写测试感兴趣吗?根据我的经验,他们只是想让事情正常工作......录音工具是为初学者设计的 -> 如果有更容易使用的工具,我会有人为学习黄瓜/水豚而烦恼吗?
      • 是的,我同意大多数(如果不是全部)业务用户甚至不查看功能文件,但这就是 cucumber 的用途。虽然录制工具非常适合新手,但学习高级语言(如水豚)却非常容易,只需几种方法即可解决,为什么不呢?
      【解决方案4】:

      Selenium ide 非常适合测试主要包含视觉元素(链接、文本等)的功能。但 Web 应用程序通常具有不将其自身表示为视觉元素的功能,例如发送电子邮件、排队工作、与 3rd 方服务通信等。例如,您可以测试是否出现“电子邮件已发送”消息提交表格。但它并不能真正告诉您是否真的发送了电子邮件,因此您并没有真正在这里测试整个功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多