• 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

  • 相关阅读:
    猫罐头哪种好吃又健康?精选5款营养美味的猫罐头推荐!
    linux删除 buff/cache缓存
    C++类构造函数和析构函数
    LeetCode-46-全排列
    nginx-location和proxy_pass的url拼接
    【PostgreSQL内核学习(十八)—— (数据库表参数)】
    jenkins关联github
    基于鸽群行为机制多无人机自主编队
    Unity InputField宽度自适应内容
    C51 - 定时器
  • 原文地址:https://blog.csdn.net/wumingxiaoyao/article/details/126451563