Behave + Selenium(Python) ------ (第一篇)

Behave 介绍:

 最近一个项目用了behave来做测试,因为之前没有接触过,所以写下最近的心得总结。 做自动化的人估计对selenium已经不是很陌生了,但是对于Behave工具,估计很少有人听说过。Behave是BDD(Behavior drive development - 行为驱动开发)的框架。这个框架用来做敏捷开发比较多。QA,开发人员,客户和产品经理都可以加入Behave中来。其中behave包括的feature部分,一般来说是客户或者不懂代码的人来写,然后QA根据客户的行为来编写测试代码。

Behave既可以用来测试网页的功能,也可以用来单元测试测试开发者的代码。

准备工作:

1. 下载python,然后在环境变量里面,把c:\Python2.7加到path里面去 --------- 具体参见 http://weixiaolu.iteye.com/blog/1617440

2. 下载pip 工具(在python里面基本上下载工具都用pip)

3. 打开cmd窗口,使用 pip install behave命令安装behave   ------ behave的官方网站: http://pythonhosted.org/behave/

4. 使用pip install selenium命令安装selenium

5. 使用pip install pyhamcrest命令安装hamcrest. 为什么安装hamcrest呢? 我们熟悉在测试里面都要用的assert语句,然而hamcrest API就是可以用来对actual value和expected value进行判断的。

好了基本上准备工作完成,然后我们开始第一个简单的自动化脚本。

一、首先新建一个文件夹命名为feature,在这个文件里面再新建example01文件夹,在example01文件里面新建example01.feature文件

#../feature/example01/example01.feature Feature:Show off behave Scenario: Show off behave   Given behave install   When I pass 5 to number variables   Then parameter number must be bigger than 4

二、在example01文件夹里面新建steps文件夹,然后在steps文件夹里面新建example01.py文件

#../feature/example01/steps/example01.py

@Given(‘behave install‘)

def step_impl(context):

pass

@when(‘I pass {number:d} to number variables‘)

def step_impl(context, number):

context.number = number

@Then(‘parameter number must be bigger than 4‘)

def step_impl(context):

  assert 5>4

三、最后一步打开cmd,然后cd到你feature所在的目录,执行behave命令, 结果出来了:

问题解决:

1. 如果你遇到以下问题,则是你的代码中出现tab, space混合使用缩进的原因。 请把你的代码统一规范,要么tab缩进,要么space缩进。 一般都使用tab缩进。

时间: 2024-10-12 22:01:03

Behave + Selenium(Python) ------ (第一篇)的相关文章

Behave + Selenium(Python) ------ (第二篇)

介绍feature, py文件和之间关系: example01.feature文件包括5行: Feature行: 介绍这个feature用来干什么的: Scenario行:介绍这个scenario用来干什么的:Given: 一般数据的初始化在这里执行:When:执行操作:Then:验证结果. example01.py文件包括@given, @when, @then. 具体步骤实现在每一个对应的步骤里面实现. 接下来我们使用selenium来启动firefox浏览器,做一些页面上的操作和验证. -

python第一篇

python第一篇 1.python简介 python是一门简单易学而且功能强大的编程语言,它有高效的内置数据结构,并且能够用简洁的语法进行面向对象编程.python简洁的语法和良好的编译解释性,使得它能够成为大多数领域的使用语言,如web开发,科学运算,人工智能,系统运维,金融分析,图形GUI等,很多领域都可以看到python的影子.既然python这么厉害,那为什么不学起来呢?come body!  life is short ,you need python! 2.基本数据类型 首先介绍的

python第一篇-------python介绍

python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Guido所挚爱的电视剧Monty Python's Flying Circus.他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言. 最新的TIOBE排行榜,Python赶超PHP占据第4, Py

Behave + Selenium(Python) ------ (第三篇)

通过之前的2篇文章,大家都了解了如果利用behave和selenium打开网页和进行基本的操作,但是这些对于项目来说,却是往往不够的. 如果对junit或者TestNG熟悉的人都知道有@Before Class等这些在脚本之前完成的任务:如用户登入,以及当浏览器操作完,关闭浏览器等一些操作.那么问题来了,在behave里面是怎么控制的呢? 在behave中有个environment.py文件,environment.py文件可以很好的解决这个问题,除了解决这个问题,还可以用来解决同一条case可

Behave + Selenium(Python) ------ (第四篇)

最近比较忙, behave的项目结束之后,又加入了一新项目,一开始说要用C#语言来写selenium自动化,后来跟客户确定使用QTP来写. 个人还是比较喜欢用C#语言和selenium框架的.因为qtp,市场上用的不多,发展前途受限制,再加上vbscript语言现在基本上没有人使用了. OK,开始进入主题: 今天我们开始讲讲behave的厉害的地方. Tag文件的使用 在behave里面,如何来控制哪些case需要run,哪些case不需要run,这个时候就用Tag来控制.好了,接下来我用Tag

Behave + Selenium(Python) 三

来自T先生 通过之前的2篇文章,大家都了解了如果利用behave和selenium打开网页和进行基本的操作,但是这些对于项目来说,却是往往不够的. 如果对junit或者TestNG熟悉的人都知道有@Before Class等这些在脚本之前完成的任务:如用户登入,以及当浏览器操作完,关闭浏览器等一些操作.那么问题来了,在behave里面是怎么控制的呢? 在behave中有个environment.py文件,environment.py文件可以很好的解决这个问题,除了解决这个问题,还可以用来解决同一

Behave + Selenium(Python)一:

Behave 介绍:(来自T先生) 最近一个项目用了behave来做测试,因为之前没有接触过,所以写下最近的心得总结. 做自动化的人估计对selenium已经不是很陌生了,但是对于Behave工具,估计很少有人听说过.Behave是BDD(Behavior drive development - 行为驱动开发)的框架.这个框架用来做敏捷开发比较多.QA,开发人员,客户和产品经理都可以加入Behave中来.其中behave包括的feature部分,一般来说是客户或者不懂代码的人来写,然后QA根据客

Behave + Selenium(Python) 四

来自T先生 今天我们开始讲讲behave的厉害的地方. Tag文件的使用 在behave里面,如何来控制哪些case需要run,哪些case不需要run,这个时候就用Tag来控制.好了,接下来我用Tag文件来实现同一个脚本可以用firefox,chrome和ie三种不同的浏览器来测试. 一.在feature文件里面新建example04文件,然后新建environment.py文件,代码如下: from selenium import webdriver  import sys def befo

进击python第一篇:相遇

1.第一句Python代码 在 当前目录下创建 hello.py 文件,内容如下: print "hello,world!" 执行 hello.py 文件,即: python hello.py 注:后缀可以不是.py python内部执行过程如下: 2.解释器 上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行. 如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,则 要有执行(x)权限