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

BDD 在 Cucumber 自动化中如何工作?
假设您被分配在网上银行应用程序中创建资金转账模块。
在 Cucumber 测试框架中有多种测试方法
- 如果源账户有足够的余额,则应进行资金转账
- 如果目标账户详细信息正确,则应进行资金转账
- 如果用户输入的交易密码/rsa 代码/交易安全认证正确,则应进行资金转账
- 即使是银行假日,也应进行资金转账
- 应在账户持有人设定的未来日期进行资金转账
当我们考虑其他功能时,例如在间隔 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 软件的优势
- 它有助于让不熟悉代码的业务利益相关者参与进来
- Cucumber 测试工具专注于最终用户体验
- 编写测试的风格允许更容易地重用测试中的代码
- 快速简便的设置和执行
- 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 之间的区别