(一)Cucumber+Selenium+testNG+maven+Java+IDEA实现BDD自动化实践

引言:

最近一直忙公司的事情,一直处于混乱中,没有安静下来去思考,这些内容也是闲暇的晚上开始慢慢去搞,以下三篇是BDD的内容

一.概念:

TDD:

测试驱动开发(Test-DriverDevelopment)的简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析、设计和质量控制量化的过程。

ATDD:

 验收测试驱动开发(AcceptanceTest Driven Development),验收测试驱动开发是一种实践。面向开发人员,强调如何实现系统以及如何通过验收测试。

BDD:

 行为驱动开发(BehaviorDriven Development)的简称,建立在TDD的基础之上,也是一种敏捷软件开发技术,它鼓励软件项目中开发者、QA、非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。以下主要使用Cucumber进行操作(一提到BDD就能立马想到的工具):

二.Cucumber框架(工具)

1.Cucumber介绍:

Cucumber是一种支持行为驱动开发(BDD)的工具。Cucumber读取以纯文本编写的可执行规范的测试用例,并验证软件是否符合这些规范所述。(说白了就是提供一个我们自己能理解的语言,通过语言来编写测试用例)。Cucumber支持大多数的编程语言,如Ruby,JAVA和Python,官方地址:https://cucumber.io/

2. Cucumber的特性

1)可执行性:可以像执行java/python…代码一样运行这些规范,来验证和验收产品和应用

2)规范性:可以从产品、运营、客户的角度出发,相比验证结果,他们更关心系统功能的清晰描述以及需要系统完成什么功能(主要由产品人员进行编写,开发和测试人员严格的按照该规范进行下面的操作)

3.Cucumber支持的语言输出(它的标准是gerkin语言)

|feature|”功能”|  

|background|”功能背景描述”|

|scenario|”场景”|

|scenario outline|”场景大纲”|

|examples|”范例”|

|given|”*”,”假如”,”假定”,”假设”|

|when|”*”,”当”|

|then|”*”,”那么”|

|and|”*”,”而且”,”并且”,”同时”|

|but|”*”,”但是”|

|given(code)|”假如”,”假定”,”假设”|

|when(code)|”当”|

|then(code)|”那么”|

|and(code)|”而且”,”并且”,”同时”|

|but(code)|”但是”|

解释:

|feature|”功能”| 类似于一个大的模块功能,功能(feature)下包含多个场景,比如登录模块

|background|”功能背景描述”|对功能的描述、简述以及解释该模块是做什么用的

|scenario|”场景”|  类似于一个大模块下的一个测试用例(case)

|scenario outline|” 场景大纲”| 与场景一样,唯一区别于场景是场景大纲可以做数据驱动

 |examples|”例子”| 场景的例子

 |given|”*”,”假如”,”假定”,”假设”|

|when|”*”,”当”|

|then|”*”,”那么”|

|and|”*”,”而且”,”并且”,”同时”|

|but|”*”,”但是”|

|given(code)|”假如”,”假定”,”假设”|

|when(code)|”当”|

|then(code)|”那么”|

|and(code)|”而且”,”并且”,”同时”|

|but(code)|”但是”|

关键字,类似于测试用例中的操作步骤,如我们先要做什么,然后做什么,最后做什么

3.如何使用cucumber

1.feature编写(就是测试用例的描述)

2.生成steps(编写代码执行步骤)

3.执行steps(执行测试用例)

4.生成测试报告

你可能感兴趣的:((一)Cucumber+Selenium+testNG+maven+Java+IDEA实现BDD自动化实践)