BDD概念

全称

Behavior-driven development

中文

行为驱动开发

概念

是敏捷软件开发技术的一种,鼓励各方人员在一个软件项目里交流合作,包括开发人员、测试人员和非技术人员或业务参与者。

BDD一开始是由Dan North在2003年作为对TDD的回应而命名的。

Gherkin

是一种语法定义良好的计算机软件设计交流语言。业务人员是不懂技术的,Gherkin使得业务、开发、测试以及其他利益相关人员减少对需产生歧义和误解。

Feature(功能):登录

Scenario(场景):非中国用户不能登录商旅系统

Given(假如):我持有一个未在系统中注册过的账号luoshangyu

When (当):我输入用户名和密码

Then(那么):我将看到一个提示用户名或密码无效的页面

Feature (功能)

功能描述

Scenario (场景)

用户具体使用的场景

Scenario Outline (场景大纲)

场景大纲可以添加相应的变量

Environment(环境变量)

在某些特定代码执行之前运行

比如在一个Feature开始或之后执行

在一个Scenario开始或之后执行

在一个Step开始或之后执行

这里是在一个feature开始及之后执行的例子

Python代码

工程结构

Step.py

中文

运行behave --lang-help zh-CN查看支持的中文关键字

另外查看支持哪些语言,可以运行命令behave --lang-list。(我运行的时候报错)

不过,也可以在behave的工程目录下查看i18n.py文件。

Python3.4要修改behave的runner.py文件,增加字符编码utf-8,否则不能正常运行。

问题如下

修复方法

Python behave in BDD的更多相关文章

  1. python自动化之BDD框架之lettuce初识问题集

    最近在学习虫师老师编写的python自动化的书.其中讲到了BDD结构lettuce入门一章. 因为是小白,按部就班地进行操作,先不谈执行操作如何,先来讲讲遇到的几个坑,和怎么解决的: 第一坑:pyth ...

  2. 【python】python+behave自动化

    留坑,后面再写,先写下request对http请求的校验.

  3. Behave + Selenium(Python)一:

    Behave 介绍:(来自T先生) 最近一个项目用了behave来做测试,因为之前没有接触过,所以写下最近的心得总结. 做自动化的人估计对selenium已经不是很陌生了,但是对于Behave工具,估 ...

  4. python BDD&TDD

    教程一:行为驱动开发(BDD) 基于Python的行为驱动开发实战: http://python.jobbole.com/81303/ 基于Python的行为驱动开发实战 英语原文地址: http:/ ...

  5. 自动化测试:behave

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  6. Awesome Python,Python的框架集合

    Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awes ...

  7. 测试人员,今天再不懂BDD就晚了!

    首先,测试人员应该参与软件开发的全流程,这一点已经是软件行业的共识了. 其次,新技术.新框架.新思路不断涌现的今天,测试人员除了传统的功能测试,也要不断与时俱进,主动承担起自动化测试.性能测试等.除了 ...

  8. Awesome Python(中文对照)

    python中文资源大全:https://github.com/jobbole/awesome-python-cn A curated list of awesome Python framework ...

  9. Python BDD自动化测试框架初探

    1. 什么是BDD BDD全称Behavior Driven Development,译作"行为驱动开发",是基于TDD (Test Driven Development 测试驱动 ...

随机推荐

  1. 如何在chrome上设置Bing为默认搜索引擎,在设置中无法直接设置

  2. Android Studio自动生成带系统签名的apk

    介绍签名的两种方式: 1.signapk.jar命令行方式: 如果你需要开发一个带有系统权限的app,往往需要配置SharedUserId,比如: </pre><pre name=& ...

  3. #ifndef <标识> #define <标识> #endif

    头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都include了同一个头文件.而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突. 还是把 ...

  4. 02_通过scrollview实现内容滚动

    在ScrollView里面放一个Button和TextView程序直接就挂了. ScrollView它只限制了有几个孩子,没限制有几个孙子.给Button和TextView套上一个爹LinearLay ...

  5. hdoj2859【DP基础】

    /* 看题解A的. 总结:小矩阵--> 大矩阵 dp[i][j]=min(t,dp[i-1][j+1]+1); */ #include <iostream> #include < ...

  6. 7天学完Java基础之1/7

    方法重载 package cn.itcat.day04.demo01; //方法重载就是参数个数不同,参数类型不同,参数类型的顺序不同 //方法重载与参数名称无关,与方法返回值类型无关 //方法重载方 ...

  7. 2019 年 Vue 学习路线图!

    如果你是 Vue 开发新手,可能已经听过很多行话术语,比如单页面应用程序.异步组件.服务器端渲染,等等.你可能还听说过与 Vue 有关的一些工具和库,比如 Vuex.Webpack.Vue CLI 和 ...

  8. java hashCode 作用

    hashCode 作用,对象根据hashCode的值分区域存放 /** * hashCode 作用 * * @author Administrator * */ public class Point ...

  9. android 显示目录下图片

    知识点 1. 网格视图 2. 读取文件 MainAcitvity package com.test.gridview; import android.support.v7.app.AppCompatA ...

  10. Codeforces Round #544 (Div. 3) C. Balanced Team

    链接:https://codeforces.com/contest/1133/problem/C 题意: 给n个数, 在这n个数中选最多n个数,来组成一个队伍. 保证这n个数的最大最小差值不大于5. ...