介绍
Cucumber是一个BDD(行为驱动开发)测试框架,它使用现代的行为驱动开发方法来开发,测试和文档化软件。可以用任何可编程语言(Java,Ruby等)编写 Cucumber特性文件,通过这个文件执行应用程序的自动化测试。
特性文件
特性文件是BDD中定义应用程序的功能和行为的文本文件。它们具有可读性强的语法,并且使用来自该语言的Gherkin算法表示特定用例。这些算法由执行用例的测试引擎分析和转换。特性文件包含测试场景和步骤定义,以及作为定位信息的标记。
定义特性文件
每个Cucumber特性文件都以SRF(根特性)(Software Requirement Functionalities)开头,然后是该特性文件的描述。Cucumber通过加载.feature扩展名的特定类型的文件来查找特性文件。例如:login.feature,signup.feature等。这些特性文件应该在存储Cucumber测试用例的目录中。我们可以根据需要为应用程序编写多个特性文件。
构建特性文件
构建Cucumber特性文件可以为测试团队提供软件系统的详细功能,避免误解和测试难度。Cucumber特性文件由三部分组成——特性描述,场景描述和步骤描述。
特性描述:特性的主要目的是描述软件系统的功能(Agile User Stories)和成功判断的基本功能。它应该简短,明确和可读,可以通过业务语言来描述原型。特性描述应该在第一行开始,关键字“功能:”后紧接着特性的名称。
场景描述:一个特性可以拥有多个场景,一个场景可以测试软件系统的一个功能或一个成功的判断。每个场景应该由一个一般描述和一组步骤描述(Gherkin Step Definitions)组成。场景应该以第一个关键字“场景:”,紧随其后是场景的名称和任意场景的描述开始,这个场景需要测试系统的功能和成功的判断。场景描述应该是一个短语,用于说明先决条件和后置条件。
步骤描述:场景由具体的步骤组成,用于描述一个场景的验证或操作。这些步骤可以使软件系统的一部分或整体按照我们的期望来执行。步骤描述由三个关键字组成——给定,当和那么。给定步骤(Given steps)指定一组准备条件。当步骤(When steps)指定将会实现的行动。那么步骤(Then steps)指定将如何确认场景是否是成功的。例子:
功能:登录到应用程序
场景:登录页面
给定我已经打开了浏览器
给定我在登录页面
当我输入有效的用户名和密码
那么我应该看到我的账户
使用标签
Cucumber特性文件中可以使用标签,方便测试组织和执行。标签可以应用于所有场景或特定场景。标签通常用于过滤场景,对同一场景随时启用或禁用,或按升序/降序排序执行场景。指定cucumber标签使用“@”符号,使用“@”名称时,特殊字符可以包括字母,数字和下划线。在特性文件中使用标签的方法如下所示:
@tags
功能:login to the application
场景:验证登录到系统的页面
结论
这篇文章提供了一个Cucumber特性文件的概述,它可以显著提高测试用例的可读性和组织性,同时减少了重复性和冗长性的过程。它还提供了一些关于如何构建和组织特性文件的建议,并引用了一些关键的Cucumber标记,以启用特性文件和场景。在您的代码库中正确编写和使用这些特性文件可最大限度地提高QA测试活动的效率。