当前位置: 首页 > 面试题库 >

Cucumber/Capybara vsselenium?

阎弘
2023-03-14
问题内容

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

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

我知道黄瓜是一种不同的技术,并且它处于不同的测试级别,但是我不明白为什么我应该费心编写和维护Cucumber / Capybara测试。

有人可以给我关于使用黄瓜/水豚而不是仅selenium的合理解释吗?


问题答案:

这个问题是边缘性征求意见。您的问题实际上是对我说的:“什么工具适合我?”
我之所以这样说,是因为您没有给出选择黄瓜和水豚的原因。我相信要回答测试者的问题,您首先需要再回答几个问题:

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

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

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

必须维护自动测试,并且知道谁将执行此操作可以帮助您选择工具-因为某些工具对于某些用户来说太技术性了。

3.)谁来定义新测试

黄瓜应在开发,质量保证和企业所有者之间协作使用。它是利用所有人的知识进行自动化测试过程的理想工具。然而,这需要开发一种普遍存在的语言。您可以在James
Shore的“敏捷艺术”
页面上阅读有关内容。

回答完这些问题后,就可以准备解决测试人员的问题了。

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

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

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

我强烈建议您阅读《黄瓜书》。它确实可以帮助您确定黄瓜是否是您的正确选择。



 类似资料:
  • Cucumber 是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,旨在提高软件质量并降低维护成本的软件开发过程。用多种语言编写,支持Java、JavaScript、Ruby、.Net等多种开发语言。 Cucumber 可以执行用纯语言编写的可执行规格,并生成报告,说明软件是否按照规格运行。 Cucumber 减少了保持需求规格、测试和文档同步的工作量--有了Cu

  • cucumber-api,用于验证响应格式为JSON的Web Service API。可以用来单独测试Web Service API,或者与Calabash配合进行手机APP和Web Service API的联合测试。 安装步骤: 以Debian环境为例,其他环境如Redhat,Windows等主要是Ruby安装命令的差别。 安装 Ruby 1.9.3 说明: cucumber-api 依赖rub

  • 我正在用TestNG运行cucumber。CucumberRunner类扩展了AbstractTestNGCucumberTests,CucumberRunner类在testng.xml文件中指定。 如果我使用TestNG.xml运行一个简单的TestNG类,那么TestNG结果的输出将显示在控制台中,即测试运行、失败、跳过的总数,如下所示:- test.java 如何用Cucumber在控制台中

  • This project demonstrates the basic protractor-cucumber-typescript framework project setup. Protractor-Cucumber-TypeScript Setup Guide Medium Article Please do checkout my medium article which would g

  • 我对cucumber相当陌生。当我注意到运行单个特性与运行整个套件(从IntelliJ)时的差异时,我只是通过创建几个测试特性来进行试验。 我注意到,当我运行单个特性时,它使用cucumber-jvm选项运行,在本例中,CucumberConfig(定义runner和cucumber选项的空白类)和runner没有被使用。但是,当我运行整个套件时,它作为JUnit测试运行,显然,在本例中,Conf

  • 我正在尝试设置硒网格以实现测试的并行执行。首先,我将解释我当前的场景。 < li >我用watir webdriver在cucumber中编写了我的全功能测试套件 < li >我需要在多个环境中执行所有测试。 < li >我为selenium hub和node创建了一个设置 < li >我可以通过hub在单个节点上运行我的测试 我的目标是在多个虚拟机上同时运行我的测试。我遗漏了一部分,我需要配置我