1.1 什么是行为驱动测试

  说起行为驱动,相信很多人听说过。

  行为驱动开发-BDD(Behavior Driven Development)是一个诞生于2003年的软件开发理念。其关键思想在于通过与利益相关者的讨论取得对预期的软件行为的清醒认识,它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。BDD提供了一种通用的,简单的,结构化的描述语言,这种语言既可以是英语也可以是其他本地的语言,通过他能够很方便让项目成员和业务干系人非常顺畅的沟通需求,而这些干系人可以不懂的任何编程语言和技术细节。这种理念的优势是显而易见的,那就是我们的整个软件研发过程可以更易懂,更容易贴近用户需求,从而可以得到很好的反馈和交互效果,并且缩减了许多中间环节(比如将系统的实现细节解释给用户)。

  而所谓行为驱动测试则是在BDD的概念中进一步延申,阐述的是我们在测试过程中采用行为驱动的理念,将我们的测试用例使用结构化的表述语言进行组织。这样我们的测试过程,特别是测试用例就可以更容易为团队的各方面以及客户所明了。在这样的条件下,我们可以认为我们的测试用例几乎完全代表用户立场,而用这样的测试过程去验证我们的开发过程,也可称得上是‘测试驱动开发’的一种初步体现形式。

1.2 什么是Cucumber

  Cucumber是一个支持行为驱动的开发的开源工具。 更准确地说,Cucumber可以定义为一个测试框架,由简单的英语(或其他自然语言)文本驱动,我们可以将它作为文档、自动化测试和开发帮助。我们将Cucumber这个框架和Selenium结合起来实现自动化测试,就可以让我们的自动化过程体现出‘行为驱动’的特性。

1.3 搭建Cucumber环境

  如果我们使用Maven来搭建cucumber环境相对来说会非常简单,只需在pom文件中添加相应的dependencies就可以让maven为我们自动抓取和配置项目所需jar包。

  出于学习目的,我们不使用maven,而是手动去配置这些依赖。

  要搭建Cucumber环境,我们需要以下的东西:

  •  JDK:推荐使用1.8
  • 集成开发环境:这里我们使用eclipse
  • eclipse的cucumber插件
  • cucumber框架所需的jar包
  • selenium的相应jar包

1.3.1 JDK安装

  JDK的下载安装和环境变量配置网上有大量教程,本文不再赘述。

1.3.2 eclipse安装

  eclipse的安装也非常简单,本文不再赘述。

1.3.3 cucumber插件安装

  通过eclipse菜单,Help->Install New Software进入安装插件。添加安装地址http://mrpotes.github.com/cukes-jvm-eclipse-plugin/update-site,将Cucumber JVM插件勾选并安装即可。

  

1.3.4 下载selenium和cucumber所需jar包

  

  我们所需要的jar包就是上图所示这些,他们都可以在Mavenrepository下载到:https://mvnrepository.com/

  搜索这些jar包,就能下载到相应的文件,比如cucumber-core-1.2.2.jar:https://mvnrepository.com/artifact/info.cukes/cucumber-core/1.2.2

  

  通过红框中的下载链接就能获取相应jar包,其他jar包同样如此。

  

  下好所有jar包以后,我们在eclipse中新建一个java project,在项目下新建lib文件夹,将以上所有jar包拷贝到文件夹中。然后,右键点击项目,选择Build Path -> Config Build Path.

  通过Libraries界面,选择Add Library,将这些jar包添加进来:

  

  添加完后,点击OK。到此为止,我们的Cucumber + Selenium + Java环境就已经搭建完成了。

  本文用到的所有资源都在以下网盘地址可以拿到( 提取码:su5z)。

  下一篇我们就开始写第一个cucumber自动化测试用例。

行为驱动:Cucumber + Selenium + Java(一) - 环境搭建的更多相关文章

  1. selenium+java+chrome环境搭建

    我只能说因为版本冲突,简直太折腾了,而搜了无数个博友的帖子才找到正确条案,就不能好好的写篇文章吗? 最近真的是太闲太闲了,平时没事总得搞点技术,不然心里感觉好空虚, 最近看上了selenium,所以试 ...

  2. Selenium终极自动化测试环境搭建(一) Selenium+Eclipse+Junit+TestNG

    Selenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG 第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/tec ...

  3. Java自动化环境搭建笔记(2)

    Java自动化环境搭建笔记(2) 自动化测试 在笔记一中已经完成了一键构建项目.xml指定规划测试集.数据解耦与allure报告生成的开发.接下来便是: 浏览器驱动通过配置启动 页面元素定位解耦,通过 ...

  4. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  5. selenium + python 自动化测试环境搭建

    selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...

  6. Selenium2(java)环境搭建 一

    Selenium2(java)环境搭建 1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2 ...

  7. selenium+python爬虫环境搭建

    前言: 准备使用selenium爬取网站数据,先搭建selenium+python爬虫环境搭建 系统环境: 64位win10系统,同时装python2.7和python3.6两个版本,IDE为pych ...

  8. Selenium自动化测试值环境搭建

    Selenium自动化测试之环境搭建 一.背景介绍 自动化测试近几年在测试领域很火,出去面试要是说不会自动化测试薪资都不好意思往高了要!很多公司做敏捷测试用到自动化,其他一些公司也是跟风,即使用不上自 ...

  9. centos7下Maven Java selenium3环境搭建

    centos7下Maven Java selenium3环境搭建 一.Jdk安装 我这里用的是open-jdk. [adawang@localhost src]$ sudo yum search op ...

随机推荐

  1. yum程序下载被占用

    Loaded plugins: fastestmirror, refresh-packagekit, security Existing lock /var/run/yum.pid: another ...

  2. python 多线程 及多线程通信,互斥锁,线程池

    1.简单的多线程例子 import threading,timedef b_fun(i): print "____________b_fun start" time.sleep(7 ...

  3. deepin 开机进入 initramfs,无法开机

    原因 这个问题多是由于不正常关机造成文件系统出问题导致的 解决 fsck -t ext4 /dev/sda6 这个命令用于修复磁盘,一直选择y即可. 如果sda6 不行就换位sda1 再试. 执行完后 ...

  4. python:os.path模块常用方法

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法.更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.ht ...

  5. 201771010126 王燕《面向对象程序设计(Java)》第九周学习总结

    实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: 异常积极处理方法:使用try子句捕获异常 异常小计处理方法:抛出throw异常类 (2 ...

  6. [AtCoder 2702]Fountain Walk - LIS

    Problem Statement In the city of Nevermore, there are 108 streets and 108 avenues, both numbered fro ...

  7. linux学习:用户管理

    一.管理用户(user) 主要工具命令 useradd    注:添加用户 adduser    注:添加用户 passwd     注:为用户设置密码 usermod    注:修改用户命令,可以通 ...

  8. Linux服务器之间进行文件目录映射/挂载(总结)

    Linux服务器之间进行文件目录映射/挂载(总结) 需要实现的功能为:将192.168.10.10服务器下的 /home/要映射的目录/ ,映射为192.168.10.90服务器下的 /home/被映 ...

  9. 利用RTL2832u电视棒芯片追踪民航飞机轨迹

    我国民航飞机通讯的频率为1090Mhz,而rtl2832u电视棒芯片可以接受的频率范围为24 – 1766 MHz(通过改制Q通道可以接收0-30Mhz的短波)下面开始介绍利用rtl2832u电视棒芯 ...

  10. 中间人攻击——ARP欺骗的原理、实战及防御

    ​ 1.1 什么是网关 首先来简单解释一下什么是网关,网关工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同网络之间的连接,简单地说,网关就好比是一个房间通向另一个房间的一扇门. 1.2 A ...