# behave测试框架

[behave](https://pythonhosted.org/behave/)是python的1个bdd测试框架实现。

### 安装

```
pip install behave
```

### 教程

[英文教程](https://pythonhosted.org/behave/tutorial.html)

### 使用behave重构wordpress测试用例

框架目录

wordpress_bdd
-features # feature和step的存放路径
- steps # steps存放路径
- lib # 公共库路径
- pages # po 路径
- create_post_step.py # 具体的step文件
- login-step.py
- environment.py # 配置文件
- login.feature # 具体的feature文件
- create_post.feature
-report # 测试报告目录

定义login.feature

```
Feature: Login

@login # 定义tag是login
Scenario: Success
Given go to login page
When login with admin admin
Then redirect to dashboard page
And display hello admin
```

定义测试步骤login_step.py

```python

from behave import *
from pages import login_page

@given(u'go to login page')
def step_impl(context):
context.login_page = login_page.LoginPage(context.dr)
context.login_page.url = context.login_page.domain + 'wp-login.php'
context.login_page.navigate()

@when(u'login with {user_name} {password}')
def step_impl(context, user_name, password):
context.dashboard_page = context.login_page.login(user_name, password)

@then(u'redirect to dashboard page')
def step_impl(context):
assert 'wp-admin' in context.dr.current_url

@then(u'display hello {user_name}')
def step_impl(context, user_name):
greeking_link = context.dashboard_page.greeking_link
assert user_name in greeking_link.text
```

运行,注意一定要在wordpress_bdd路径下

```
behave -t login --junit
```

上面的命令表示运行tag是login的用例并输出junit格式测试报告

### 总结

behave的功能相当丰富健全,希望大家可以深入研究并集成到自己的测试框架中去。

更多wordpress bdd实例代码请查看src/wordpress_bdd路径。

behave 测试框架,了解一下的更多相关文章

  1. 收藏清单: python测试框架最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  2. 转 python测试框架最全资源汇总

    转自: http://www.testclass.net/list/python_list_1/ xUnit frameworks(单元测试框架) frameworks 框架 unittest - p ...

  3. python测试框架&&数据生成&&工具最全资源汇总

    xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...

  4. phpunit 测试框架安装

    PHPUnit是一个轻量级的PHP测试框架.它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计).来自百度百科 一.下载wg ...

  5. 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

    某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...

  6. selenium测试框架使用xml作为对象库

    之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...

  7. selenium 测试框架中使用grid

    之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecr ...

  8. selenium测试框架篇,页面对象和元素对象的管理

    前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让 ...

  9. Junit测试框架 Tips

    关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...

随机推荐

  1. noip2010 关押罪犯 (vijos1776)

    题目 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示某两名罪 ...

  2. 【总结整理】关于GrowingIO、友盟、google analysis等数据分析

    作者:纯银V链接:https://www.jianshu.com/p/394ec6c96c98來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. 埋点主要分为四步:第一步是 ...

  3. Topic modeling【经典模型】

    http://www.cs.princeton.edu/~blei/topicmodeling.html Topic models are a suite of algorithms that unc ...

  4. linux c 获取系统时间

    #include <time.h> main() { time_t timep; time (&timep); printf(“%s”,asctime(gmtime(&ti ...

  5. 彻底清除Window7下的360注册表

    当流氓360遇到强迫症,将注定有一场厮杀... 今天装了个虚拟机,其中win7系统是在网上随便下载了一个,是非纯净版的,自带了360在内的好多软件,其他软件都轻松删掉,但查看注册表时发现竟然有360残 ...

  6. Terminologies in MVC: Part 2 (Razor Engine Syntax vs Web Form)

    By Abhishek Jaiswal :) on Mar 21, 2015 In this article we learn about Razor Engine Syntax vs Web For ...

  7. ArcGIS坐标转换

    我忘了怎么设置坐标系了- 定义投影ArcCatalog设置?  -arctoolbox好像都可以   感觉不用想的那么复杂]直接定义投影就行了  选这一个吗  这个就行了'  然后?  应该是先定义成 ...

  8. CSS概念 - 可视化格式模型(二) 定位概述(普通流、绝对定位)

    2.定位概念 上一节熟悉了盒模型, 现在来看一下可视化格式模型和定位模型. 理解这两个模型的细微差异是非常重要的, 因为它们一起控制着如何在页面上布置每个元素 2.1 可视化格式模型 CSS有三种基本 ...

  9. cdq分治略解

    前言 陌上花开,可缓缓归矣                         --吴越王 寓意:意思是:田间阡陌上的花开了,你可以一边赏花,一边慢慢回来. 隐意:春天都到了,你怎么还没有回来.形容吴越王 ...

  10. nginx理解与配置

    准备: http服务器:①tomcat②apache③nginx(c语言开发) 文件系统:①mgfs ②mgbd:存储小文件 ③fastDFS:存储大文件.小文件,分布式文件系统 nginx是一种ht ...