Cucumber 框架:什么是 Cucumber 测试工具?

什么是 Cucumber?

Cucumber 是一种支持行为驱动开发(BDD)的测试工具。它提供了一种编写测试的方法,无论技术知识如何,任何人都可以理解。在 BDD 中,用户(业务分析师、产品负责人)首先编写场景或验收测试,从客户的角度描述系统的行为,以便在开发人员编写代码之前,由产品负责人进行审查和批准。Cucumber 框架使用 Ruby 编程语言

Cucumber Framework
Cucumber 框架

BDD 在 Cucumber 自动化中如何工作?

假设您被分配在网上银行应用程序中创建资金转账模块。

在 Cucumber 测试框架中有多种测试方法

  1. 如果源账户有足够的余额,则应进行资金转账
  2. 如果目标账户详细信息正确,则应进行资金转账
  3. 如果用户输入的交易密码/rsa 代码/交易安全认证正确,则应进行资金转账
  4. 即使是银行假日,也应进行资金转账
  5. 应在账户持有人设定的未来日期进行资金转账

当我们考虑其他功能时,例如在间隔 Y 天/月内转账金额 X,当总金额达到 Z 时停止定期转账等等,测试场景变得更加详细和复杂。

开发人员的普遍倾向是先开发功能,后编写测试代码。正如上述案例所示,此案例的测试用例开发很复杂,开发人员会将测试推迟到发布,届时他将进行快速但不高效的测试。

为了克服这个问题,Cucumber BDD(行为驱动开发)应运而生。它使开发人员的整个测试过程变得容易。

在 Cucumber BDD 中,您编写的所有内容都必须包含在 Given-When-Then 步骤中。让我们在 BDD 中考虑上述相同的示例。

Given that a fund transfer module in net banking application has been developed
And I am accessing it with proper authentication
WhenI shall transfer with enough balance in my source account
Or I shall transfer on a Bank Holiday
Or I shall transfer on a future date
And destination a/c details are correct
And transaction password/RSA code/security authentication for the transaction is correct
And press or click send button
Then amount must be transferred
And the event will be logged in log file

编写、阅读和理解起来是不是很容易?它涵盖了资金转账模块所有可能的测试用例,并且可以轻松修改以适应更多情况。此外,它更像是为资金转账模块编写文档。

Cucumber 软件的优势

  1. 它有助于让不熟悉代码的业务利益相关者参与进来
  2. Cucumber 测试工具专注于最终用户体验
  3. 编写测试的风格允许更容易地重用测试中的代码
  4. 快速简便的设置和执行
  5. Cucumber 测试工具是一种高效的测试工具

Cucumber vs Selenium vs ALM

在本节中,我们将研究 Cucumber、Selenium 和 ALM 之间的区别。

Cucumber HP ALM (QTP) Selenium
Cucumber 软件是免费的 QTP 价格昂贵 它是免费的
Cucumber 软件是一种行为驱动开发工具 它是一种功能自动化工具 它是一种功能和性能(Selenium Grid)测试工具
Cucumber 测试工具中的插件工作速度更快 插件比 Cucumber 和 Selenium 慢 插件比 Cucumber 慢
Cucumber 框架除了 Ruby 之外还支持其他语言,如 Java、Scala、Groovy 等。 QTP 只支持 VB 脚本 Selenium 支持 Java、.Net 和许多其他语言
自动化步骤的编写是测试人员和开发人员的共同努力 QTP中只有测试人员编写自动化步骤 与 Cucumber 工具一样,自动化步骤的编写是测试人员和开发人员的共同努力
Cucumber 测试工具只支持 Web 环境 支持 Web、桌面和任何客户端-服务器应用程序 只支持 Web 环境

另请查看:- UFT vs Selenium:Selenium 和 HP UFT 之间的区别