虫师Selenium2+Python_12、BDD框架之Lettuce入门

http://www.cnblogs.com/fnng/p/3415609.html

P293——简介:

TDD(Test-Drivern-Development)测试驱动开发

ATDD(Acceptance-Test-Drivern-Development)验收测试驱动开发

BDD(Behavior Drivern Development)行为驱动开发,是一种敏捷开发技术

基于Python的BDD框架是Lettuce

基于ruby语言的cucumber更加实用

Lettuce安装

官网:Lettuce.it

1、安装python 以及pip安装包

2、pip install lettuce

它的行为流程:

  • 描述的行为
  • 用Python定义步骤
  • 运行并观看它失败
  • 编写代码以使其通过

P295——阶乘的例子

什么阶乘?

0!=1

1!=1

2!=2×1=2

3!=3×2×1=6

....

10!=10×9×8×7×6×5×4×3×2×1=3628800

使用Python语言实现阶乘的两种方式:

# 循环语句实现阶乘

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))

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

说明:第一段为功能介绍,第二段为场景描述:当我输入什么数据,执行什么操作,预期结果是什么

Lettuce的语法规则:

  • Feature(功能)
  • Scenario(场景)
  • Given(输入)
  • And(和)
  • When(当)
  • Then(则输出)

steps.py 执行文档

# 引入Lettuce 下面的所有类和方法

from lettuce import *

# @step 是Python装饰器写法

# I have the number (\d+)对应zero.feature文件中的第6句:Given I have the number 0

# (\d+)是一个正则表达式,\d 表示匹配一个数字,+表示匹配的数字至少有一个或多个

# 定义一个have_the_number()函数,把@step(I have the number(\d+))匹配到的数字0作为函数的入参,然后将其转换成整型(int)赋值给world.number变量

@step(‘I have the number (\d+)‘)

def have_the_number(step,number):

world.number = int(number)

@step(‘I compute its factorial‘)

def compute_its_fatorial(step):

world.number = factorial(world.number)

@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):

number = int(number)

if (number == 0) or (number == 1):

return 1

else:

return number

原文地址:https://www.cnblogs.com/TomBombadil/p/10977515.html

时间: 2024-10-07 05:02:36

虫师Selenium2+Python_12、BDD框架之Lettuce入门的相关文章

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

最近在学习虫师老师编写的python自动化的书.其中讲到了BDD结构lettuce入门一章. 因为是小白,按部就班地进行操作,先不谈执行操作如何,先来讲讲遇到的几个坑,和怎么解决的: 第一坑:python2 和 Python3 安装在同一台主机上,怎么区分运行,而不干扰? 同是python命令怎么在cmd中执行?pip安装第三方库呢? 解决方法: a.找到安装位置,copy python.exe在当前目录,然后将副本重命名为python2:同样的方法将python3进行同样的操作:b.进入各自的

虫师Selenium2+Python_00学习大纲

1.自动化测试基础 5.自动化测试模型 9.Selenium Grid2 13.GitHub托管项目 2.测试环境搭建 6.SeleniumIDE 10.Python多线程 14.持续集成Jenkins入门 3.Python基础 7.unittest单元测试框架     4.WebDriverAPI 8.自动化测试高级应用 12.BDD框架之Lettuce入门   原文地址:https://www.cnblogs.com/TomBombadil/p/10977508.html

Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 前言 上文讲述了数据库配置使用,搭建好数据库的链接方式了我们知道怎么做了. 事实上,至今我们仍然还没有讲到代码方面,花了前面这么多篇幅讲解,主要是想由浅入深,不然一上来给大家讲解这讲解那的,听的也一头雾水,反而得不到效果. 这篇比较重要,因为它是我们在使用Far

Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet.ViewCahceSet 前言 在上篇中,我们学会了存储过程的关系映射,其中知道了存储过程需要使用:ProcSet作为操作的上下文,以及在Field特性上,我们知道了新的两个属性用来存储过程的参数输入输出. 在上篇末尾,提到了

Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 前言 Farseer.Net是支持多数据库的ORM,使用者通过配置文件即可切换指定的数据库而不需要修改项目中的任何代码.本篇讲述如何进行数据库环境的配置.同时也讲述其它配置文件的使用. 配置文件 1.配置文件的路径: 不管是WebForm.Mvc.WinForm,配置文件统一放在:~

Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:视图实体类映射 前言 先跟大家抱歉下,教程迟迟没有更新,因为一个人的精力实在有限(借口?好吧,我认了). 想要Farseer.Net发展的更好,需要认真.客观解读群里朋友们的建议,实际上也确实是这样,有些思想.功能自己确实没想到(必境我自己所能接触的业务场景是非常有限的). 当然在考虑Farse

Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次版本的开发从3月份开始,花了一个月的时间完成了概念版本设计.开发.到了4月份进行多次的内核的重构设计.到了5月份进行大规模的BUG修复.代码优化. 截止到今天(6月初),已知的BUG都已修复,并已在2个项目中应用了,并且运行良好. 本篇主题 1.新增队列管理: 新版本改变了V0.x时的使用方式,以Entityf

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 前言 我们知道对于关系数据库,视图的出现可以在一定的情况下减少因要进行数据关联而带来的大量SQL语句,它可以让我们就像访问一张表一样的简单操作. 作为ORM来说,支持视图也是一项最基础的工作.然而大部份的ORM中,对视图没有特意去提供这个类,因为视图的SQ

Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作 前言 上文讲述了数据库配置及其它配置文件的使用,搭建好数据库的链接方式了,接下来就是数据库中的表与实体类的关联了(映射). 在V1.x中,新增了视图.存储过程的映射.在以往的解决方案中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作