behave 测试框架,了解一下
# 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 测试框架,了解一下的更多相关文章
- 收藏清单: python测试框架最全资源汇总
xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...
- 转 python测试框架最全资源汇总
转自: http://www.testclass.net/list/python_list_1/ xUnit frameworks(单元测试框架) frameworks 框架 unittest - p ...
- python测试框架&&数据生成&&工具最全资源汇总
xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...
- phpunit 测试框架安装
PHPUnit是一个轻量级的PHP测试框架.它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计).来自百度百科 一.下载wg ...
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
- selenium测试框架使用xml作为对象库
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...
- selenium 测试框架中使用grid
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecr ...
- selenium测试框架篇,页面对象和元素对象的管理
前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让 ...
- Junit测试框架 Tips
关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...
随机推荐
- DataGridView根据条件给单元格绑定图片
代码区: private void Form1_Load(object sender, EventArgs e) { myClass.mySqliteAPI conn = new myClass.my ...
- 【原】Coursera—Andrew Ng机器学习—编程作业 Programming Exercise 1 线性回归
作业说明 Exercise 1,Week 2,使用Octave实现线性回归模型.数据集 ex1data1.txt ,ex1data2.txt 单变量线性回归必须实现,实现代价函数计算Computin ...
- go语言 robfig/cron包 实现定时 调用
package main import ( "github.com/robfig/cron" "time" "fmt" "os&q ...
- springBoot集成 quartz动态定时任务
项目中需要用到定时任务,考虑了下java方面定时任务无非就三种: 用Java自带的timer类.稍微看了一下,可以实现大部分的指定频率的任务的调度(timer.schedule()),也可以实现关闭和 ...
- WDCP从php5.2升级到5.3的办法,以及升级过程中iconv错误的处理
从wdcp官方论坛我们可以找到一个询问升级的帖子,然后管理员在回复中也提供了升级方法: cd /tmp wget -c http://dl.wdlinux.cn:5180/soft/php-5.3.1 ...
- scala _ parameter
Given that sequence, use reduceLeft to determine different properties about the collection. The foll ...
- Luogu 4473 [国家集训队]飞飞侠
BZOJ 2143 新技能:并查集优化最短路. 暴力最短路是$O(n^4)$的,然后拿个线段树优化一下连边就$O($能过$)$了. 但是这样都太慢了. 我们考虑一个点如果之前被更新过了,那么之后就不会 ...
- Mysql处理海量数据时的一些优化查询速度方法(转)
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果whe ...
- hdu 4279 Number(G++提交)
打表找规律: #include<stdio.h> #include<math.h> #define N 250 bool judge(int i,int j) { ;k< ...
- 原生ajax访问服务器所展现的现象
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>ajax ...