学习笔记之bdd行为驱动开发,lettuce框架入门

基本python语言的lettuce框架
什么是BDD
行为驱动开发是一种敏捷软件开发技术,它鼓励软件项目开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。

需要用pip去安装lettuce

pip install lettuce

主流BDD框架:

Cucumber(ruby)	http://cucumber.io/
Jave(java)		http://jdave.org/
Behat(php)		http://docs.behat.org/en/v2.5/
python:
	Behave		http://pythonhosted.org.behave/
	Lettuce		http://lettuce.it/

Lettuce流程:
在这里插入图片描述
在这里插入图片描述
实现阶乘:

#循环实现阶乘
def f1(n):
    c=1
    for i in range(n):
        i=i+1
        c=c*i
        return c
#递归实现阶乘
def f2(n):
    if n>1:
        return n*f2(n-1)
    else:
        return 1
if __name__=="__main__":
    #调用方法
    print(f1(10))
    print(f2(10))

BDD编程:
基本结构:
在这里插入图片描述
features:行为驱动文件夹
zero.feature文件:行为文件,主要用来驱动功能实现代码
steps.py:功能实现代码
zero.feature:

Feature:Compute factorial
    In order to play with Lettuce
    As beginners
    We'll implement factorial
    Scenario:Factorial of 0
        Given I have the number 0
        When I compute its factorial
        Then I see the number 1

对以上代码翻译:

功能:计算阶乘
    为了使用lettuce
    作为初学者
    我们将实现阶乘
    场景:0的阶乘
        假定我有数字0
        当我计算它的阶乘
        然后,我看到了1

Feature(功能)
Scenario(情景)
Given(给定)
And(和)
When(当)
Then(则)

很接近自然语言,但是也有语法规则
关键字的含义和单元测试框架中的概念的对比:
在这里插入图片描述
steps.py:

from lettuce import *

#@---python装饰器
#假如我有一个数字x
#Given I have the number 0
@step('I have the number(\d+)')#正则表达式
def have_the_number(step,number):
    world.number = int(number)

#我计算它的阶乘
#When I compute its factorial
@step('I compute its factorial'):
def compute_its_factorial(step):
    world.number=factorial(world.number)#计算阶乘之后的结果

#断言
#然后,我就看到了结果y,比较或测试的过程
@step('I see the number(\d+)')
def check_number(step,expected):
    expected = int(expected)
    assert world.number == expected,"Got %d" % world.number

#阶乘的计算过程
def factorial(number):
    if(number==0) or (number==1):
        return 1
    else:
        return number*factorial(number-1)

结果:
在这里插入图片描述

如果要用lettuce去做webdriver自动化测试,需要用pip去安装lettuce_webdriver。

pip install lettuce_webdriver

安装nose,nose继承自unittest,属于第三方的python单元测试框架,且更容易使用,lettuce_webdriver依赖于nose框架

下载地址:https://pypi.python.org/pypi/nose/
也支持pip的安装方式
pip install nose

想要深入了解的,可以再去查资料吧,我是不想搞这个了。看着都麻烦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值