浅谈BDD下的自动化测试框架

  • 时间:
  • 浏览:1

Feature:对时需的简要描述

Scenario/Scenario Outline:场景描述,即feature所富含的功能点

Given:预置条件

When:具体的动作,例如User Navigate to the LogIn Page

Then:预期结果

And/But:并能 与Given、When、Then一起使用,使得step描述更清晰易懂



以上便是亲戚亲戚大伙何如基于 Cucumber 完成自动化测试的简单例子,希望能给亲戚亲戚大伙带来帮助。

Jenkins 的 Cucumber reports 插件并能 不必同维度统计测试结果,以下是从 feature的深度1统计的结果,例如 Features、Tags、Steps 等。

问4:BDD与敏捷Scrum的关系是哪几种?

使用mvn test执行测试用例时,默认执行src/test/java目录及子目录下所有满足以下规则的类:



问1:Cucumber 单元测试和集成测试时需用了你这一框架?

四、BDD自动化

测试框架Cucumber



亲戚亲戚大伙在前面提到过,BDD最终形成的文档即是需求文档,也是测试规范,如此 亲戚亲戚大伙何如基于哪几种测试规范实现自动化测试呢?目前,支持BDD自动化测试的框架有而是我,且支持各种不同的语言,例如:

更关注业务,以用户使用产品的深度1,描述用户行为以及预期结果

不同角色的人都并能 参与需求定义及讨论,最终达成一致理解

使用同五种语言描述需求,及测试用例,很大程度上处理了因理解差异是因为 实现功能与需求不一致的哪几种的问提

客户:提出需求

需求分析师:分析需求,形成开发可执行的具体 Feature、Story、Taks

开发:实现需求

测试:编写验证步骤,验证最终产品与非 满足需求

一、哪几种是BDD

答:BDD是行为驱动开发,是敏捷开发技术,鼓励所有的角色all in 互相公司合作 。scrum是软件开发管理上最好的辦法 论。

答:story 是用户故事,在敏捷中使用As xxx So that xxx去描述用户场景,而BA会根据story进行插卡,讲stroy拆分成可开发的小卡(task)供dev开发使用。

运行结果如下:

插件安装完成后,在Jenkins中创建Maven项目,做如下配置且保存:



HTML Reports:将测试结果输出到html文件中, plugin参数配置如下:

HTML格式测试报告:

答:功能测试和集成场景测试使用了你这一框架,单元测试是开发做的,如此 用你这一框架。

以Test开头的java类(即Test*.java)

以Test结尾的Java类(即*Test.java)

以TestCase结尾的Java类(即*TestCase.java)

问3:为哪几种挑选了Cucumber?有如此 做API自动化测试?使用的哪几种工具框架robootframework?

HTML报告示例:

当亲戚亲戚大伙在eclipse中使用了Cucumber插件后,它会自动检测每个步骤描述与非 有对应的实现,是因为 如此 则会有警告提示。

使用Eclipse并能 快速生成实现步骤的java最好的辦法 ,在feature文件上右键挑选Run As/Cucumber Feature执行feature文件,当feature中地处未实现的步骤时,Console会打印对应的java最好的辦法 ,将代码拷贝到java文件中,完善测试步骤即可,以下是实现测试步骤的代码示例:

也并能 通过以下命令行执行测试用例:

Junit命令:java -cp [jar files separated by comma including junit jar file and your junit test case jar file] org.junit.runner.JUnitCore [your junit test case class]

Maven命令:mvn test,亲戚亲戚大伙更推荐使用maven,是因为 它并能 与jenkins集成,方便续持续集成。mvn test的运行结果如下图:

Cucumber与Jenkins集成

用例编写完成且测试通前一天,何如与Jenkins集成并定时触发执行,得到测试结果呢?

Pretty Report:使得Console输出的log更具可读性,时需设置CucumberOptions的Plugin参数为pretty。





打开项目,并点击“立即构建”,待构建完成后,即可从项目首页查看报告:

二、为哪几种要使用BDD

何如实现步骤定义(Step definition)

在实现测试步骤前,亲戚亲戚大伙时需在maven项目中去掉 Cucumber相关依赖:



Pretty Report

HTML Reports

JSON Report

JUNIT XML Report

.feature:定义需求场景及步骤描述

步骤定义:步骤描述的具体实现,即可执行的步骤代码

运行测试:执行测试用例

生成报告:Cucumber支持生成多种格式的测试报告

点击 Feature 名称,即可查看报告详情。

Junit XML Report:测试结果以XML格式输出,plugin参数配置如下:

首先时需配置Jenkins全局工具配置(JDK和Maven):

Cucumber测试报告

执行测试用例时,Cucumber默认在console中输出测试结果,当然也并能 根据时需,通过配置Cucumber Options的Plugin参数,修改报告输出格式,当前支持的报告格式有以下几种:

在feature文件点击右键,挑选Run As > Cucumber Feature

TestRunner点击右键,挑选Run As > JUnit Test,TestRunner定义如下:

JSON Report:测试结果以JSON格式输出,plugin参数配置如下:

通常,是因为 不同的人对需求的理解不同,最终是因为 是因为 产品与客户需求地处很大差距。

何如执行用例

完成feature以及测试代码后,并能 直接在Eclipse中通过以下最好的辦法 执行用例:

基于Cucumber的BDD的测试流程如下:



并且 安装Cucumber reports :

问2:微课堂前面提到的story和taks是哪几种意思?

精选提问:

BDD(Behavior Driven Development),即行为驱动开发,是敏捷开发技术之一,通过自然语言定义系统行为,以功能使用者的深度1,编写需求场景,且哪几种行为描述并能 直接形成需求文档,一起也是测试标准。

其实Cucumber五种在技术上不必区分Given、When、Then你这一个关键字,但在实际使用中还是推荐按照词组意思描述步骤。



传统模式下,从客户提出需求,到输出产品,亲戚亲戚大伙会经历以下流程:

答:Cucumber并能 将测试用例描述和测试用例执行整合在一起,用自然语言描述出来的测试用例,直接被执行,也而是我Gherkin。一起Gherkin对于测试人员并如此 哪几种技术要求,而是我精通业务即可,而是我亲戚亲戚大伙挑选使用Cucumber。

API自动化测试,亲戚亲戚大伙用的rest-assured你这一框架,另外也并能 使用postman,将测试好的api导出json,再通过npm安装newman你这一包,就并能 直接运行json文件了。

JSON报告示例:

何如编写feature文件

.feature文件用来描述功能,每个feature富含三个或多个Scenario,而每个Scenario

又富含三个或多个步骤描述,以下是示例代码:

BDD是基于五种“通用语言”,并能 让客户、产品经理等将需求通过同五种语言描述出来,很大程度上处理了是因为 理解或表达不一致带来的哪几种的问提,大大提高产品的交付品质。由此BDD的优势也就体现出来了:

原文发布时间为:2018-08-02

本文来自云栖社区公司合作 伙伴“EAWorld”,了解相关信息并能 关注“EAWorld”。

Feature文件使用Gherkin语言编写,并且 通过注解将Gherkin脚本与实际测试代码关联起来,比较常用Gerkin的关键字如下:

测试框架选型时需根据实际请况而定,例如项目组技术背景,用例覆盖范围,产品性能要求等等,接下来亲戚亲戚大伙完整性了解一下Cucumber。

Cucumber:基于Ruby编写的自动化测试框架,支持Java和.Net等多种语言

Behave/Lettuce/Freshen: Python style的测试框架

Jbehave/ beanSpec :基于Java编写的自动化测试框架

SpecFlow:.Net测试框架

Cucumber简介

Cucumber是应用比较广的BDD自动化测试工具之一,它理解亲戚亲戚大伙使用Gherkin语言编写的测试用例,自动解析场景对应的步骤定义,进行系统行为验证。Cucumber基于Ruby编写,支持Java和.Net等多种开发语言。



三、常用的BDD测试框架



cucumber-java

cucumber-jvm-deps

cucumber-junit

selenium-java(是因为 示例时需打开浏览器,而是我去掉 了selenium相关依赖)