Behave + Selenium(Python)一:
Behave 介绍:(来自T先生)
最近一个项目用了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缩进。

Behave + Selenium(Python)一:的更多相关文章
- Behave + Selenium(Python) 四
来自T先生 今天我们开始讲讲behave的厉害的地方. Tag文件的使用 在behave里面,如何来控制哪些case需要run,哪些case不需要run,这个时候就用Tag来控制.好了,接下来我用Ta ...
- Behave + Selenium(Python) 三
来自T先生 通过之前的2篇文章,大家都了解了如果利用behave和selenium打开网页和进行基本的操作,但是这些对于项目来说,却是往往不够的. 如果对junit或者TestNG熟悉的人都知道有@B ...
- Behave + Selenium(Python) 二
介绍feature, py文件和之间关系: example01.feature文件包括5行: Feature行: 介绍这个feature用来干什么的: Scenario行:介绍这个scenario用来 ...
- selenium + python自动化测试环境搭建
selenium的在python平台的搭建: 搭建平台windows 准备工具如下: --------------------------------------------------------- ...
- Page Object Model (Selenium, Python)
时间 2015-06-15 00:11:56 Qxf2 blog 原文 http://qxf2.com/blog/page-object-model-selenium-python/ 主题 Sel ...
- selenium + python 多浏览器测试
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- <译>Selenium Python Bindings 5 - Waits
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleE ...
- <译>Selenium Python Bindings 2 - Getting Started
Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: u ...
随机推荐
- grep命令:查看配置文件未注释行(转)
FROM: https://linux.cn/article-6958-1.html 可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其 ...
- Python学习总结之三 -- 优雅的字符串
优雅的字符串 前言 记得我在Python学习总结第一篇中有提到字符串,那个可以算是先打个招呼吧,因为没有提到任何关于字符串的处理方法.今天,给大家详细讲解一下Python中字符串的使用方法,如有不当或 ...
- 语法之知识点的改进(Func/Action)
上一章我们讲到关于面向对象思想上C#和JAVA之差别.笔者分别从面向对象的三大特性入手.而本章主要讲一些C#改进的知识点.在.NET Framework 2.0之后出现很多新的知识点.这些知识点更是让 ...
- Epplus 使用案例
//拷贝 sheet.Cells["6:12"].Copy(sheet.Cells["1:2"]); //边框无 sheet.Cells[(i * 6 + i ...
- HDU 1452 Happy 2004(唯一分解定理)
题目链接:传送门 题意: 求2004^x的全部约数的和. 分析: 由唯一分解定理可知 x=p1^a1*p2^a2*...*pn^an 那么其约数和 sum = (p1^0+p1^1^-+p1^a1)* ...
- 九度OJ 1058:反序输出 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8454 解决:3042 题目描述: 输入任意4个字符(如:abcd), 并按反序输出(如:dcba) 输入: 题目可能包含多组用例,每组用例 ...
- Docker中部署puppeteer导出pdf
最近在做puppeteer容器化的过程中发现问题. 在容器中npm install puppeteer仍然会报错,不能launch 随后错误提示中也给出了官方的文档,https://github.co ...
- python网络爬虫之如何识别验证码
有些网站的登录方式是验证码登录的方式,比如今天我们要测试的网站专利检索及分析. http://www.pss-system.gov.cn/sipopublicsearch/portal/uilogin ...
- 编写你的第一个django应用程序2
从1停止的地方开始,我们将设置数据库,创建您的第一个模型,并快速介绍django自动生成的管理站点 数据库设置 现在,打开mysite/settings.py.这是一个普通的python模块,其中模块 ...
- 【Leetcode-easy】Longest Common Prefix
思路:每次从字符数组中读取两个字符串比较.需要注意输入字符串为空,等细节. public String longestCommonPrefix(String[] strs) { if(strs==nu ...