BDD - BDD Automation Framwork 自动化框架

引言

BDD 自动化框架使得 QA 工程师很容易将 Gherkin Scenarios 转换成自动化测试用例。BDD 自动化有一个优势,就是测试用例能立马运行起来。当然用 BDD Dirver 运行 Gherkin Scenarios 很容易失败,直到 Feauter 文件中所有的步骤都被代码实现了。这也使得测试驱动自动化 shift-left 左移,在写 Gherkin Scenarios 时,如不能及时实现代码自动化,它可以在晚些时候再实现自动化。

BDD 测试框架

Cucumber 是主要的 BDD 测试框架,它支持大部分主流的编程语言。建议选择和所测试的产品一致的开发平台和编程语言,方便测试和开发的技术交流和问题定位。

常见的 BDD 测试框架:

编程语言推荐框架其他框架
C#SpecFlow​​LightBDD Concordion.Net NSpec XBehave NBehave
​JavaCucumber-JVM​JBehave Spock Scalatest JGiven
JavaScriptCucumber.js​​Yadda Jasmine Mocha Vows
PythonBehave​​​Lettuce Freshen pytest-bdd pyspecs

Cucumber-JVM, Cucumber.js 是宿主 Cucumber 实现的
在这里插入图片描述
Behave, SpecFlow 使用 Cucumber 组件基础上进行的二次开发
在这里插入图片描述

Jenkins 集成

BDD 自动化框架也可以从 Jenkins 启动,Java Maven 项目启动 BDD 自动化测试可视为 Maven build 的一部分。其它类型项目则需要用命令启动。例如 Cucumber-JVM,可以用 Cucumber Reports Plugin,汇报测试结果。而其它 Frameworks 没有对应的 Jenkins 插件(像 SpecFlow)。为了汇报结果,可将报告转换成其它格式,像 JUnit 或 MsTest。也可以通过 Jenkins 用 HTML Publisher 插件,提供基于 HTML 格式的报告,但是 HTML Publisher 插件出于安全考虑默认是禁止 JavaScript,造成报告显示不全。

Framework Components 框架组件

任何一个 BDD 自动化框架主要有 4 部分:

  1. Gherkin Feature 文件
    文本文件主要包含 Gherkin Scenarios
    文件扩展名是 “.feature
  2. Step Definitions
    用编程语言 (.java, .cs, etc.) 编写的源代码文件
    利用某种运行工具(像 Junit,SpecRun)将 Gherkin Scenarios “given-when-then” 步骤映射到测试执行的代码
    是基于被测产品真正执行的测试
  3. Shared Libraries 共享库
    用编程语言 (.java, .cs, etc.) 编写的源代码文件
    包含基于被测产品的测试逻辑
    被 step definitions 调用
    跟 BDD 或 Gherkin 是没有关系的
    通常是 page objects(UI) 或 Utils 或 配置文件,或 Request Build (API)
  4. BDD Driver
    可执行的文件(像 Junit,SpecRun 等测试工具运行的执行文件)用来运行作为测试用例的 BDD Scenarios
    解析 Feature 文件,并将他们跟 step definitions 对应 Glues 起来执行测试
    运行完成汇报测试结果

尽量做到代码共享,尽管可以将所有的测试代码放在 step definitions,但强烈建议将测试代码写成共享库。Step definitions 应该尽可能最小化来达成最大化代码重复利用和最小化定位测试失败,此外 BDD 步骤可能需要执行类似的操作。

IDEs 集成开发环境

因为 Gherkin 是一个特定领域语言 domain-specific language, 尽量使用灵活实用的编辑器和集成开发工具,像其它编程语言一样。

Notepad++

Notepad++ 当作自定义语言一样可以处理 Gherkin Feature 文件。首先需要下载 Gherkin User-Defined Language 文件,然后在 Notepad++,通过导航 Language -> Define your language…导入下载的语言文件。当你打开一下 “.feature” 文件,就会高亮显示语法了(如果不行,检查一下语言定义设置,也可直接通过 Language 菜单关联找到 Gherkin)

Eclipse

Eclipse 可利用 Natural​ plugin​ 来支持 Cucumber.

JetBrains IntelliJ IDEA

IntelliJ IDEA 有 Cucumber 和 Behave 对应的插件,IDEA 运行 BDD Scenarios 不同于用命令行运行,需要额外的设置,更多细节可参考 Cucumber Document

Microsoft Visual Studio

Visual Studio 有 SpecFlow 插件,项目使用 SpecFlow 需要加额外的 NuGet 依赖包,更多细节,可阅读 SpecFlow documentation

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值