- Behave教程
- Behave - 主页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 功能测试设置
- Behave - 小Cucumber关键词
- Behave - 功能文件
- Behave - 步骤实施
- Behave - 第一步
- Behave - 支持的语言
- Behave - 步骤参数
- Behave - 场景大纲
- Behave - 多行文本
- Behave - 设置表
- Behave - 一步一步
- Behave - 背景
- Behave - 数据类型
- Behave - 标签
- Behave - 枚举
- Behave - 步骤匹配器
- Behave - 正则表达式
- Behave - 可选部分
- Behave - 多种方法
- Behave - 阶跃函数
- Behave - 步骤参数
- Behave - 运行脚本
- Behave - 排除测试
- Behave - 重试机制
- Behave - 报告
- Behave - 钩子
- Behave - 调试
- Behave有用的资源
- Behave - 快速指南
- Behave - 有用的资源
- Behave - 讨论
Behave - 钩子
Behave设置和拆卸功能在名为environment.py 的文件中实现,该文件位于包含steps 文件夹的同一目录中。设置功能包括——浏览器打开、数据库连接、配置等。
拆卸功能包括关闭浏览器、终止数据库连接、撤销更改等。
environment.py文件包含以下函数 -
before_feature(context, feature) - 优先执行每个功能。
before_scenario(context, scene) - 在每个场景之前执行。
before_step(context, step) - 在每个步骤之前执行。
before_tag(context, tag) - 在每个标签之前执行。
before_all(context) - 执行之前的所有内容。
after_feature(context, feature) - 执行发布每个功能。
after_scenario(context, scene) - 在每个场景后执行。
after_step(context, step) - 执行每一步后。
after_tag(context, tag) - 执行每个标签的发布。
after_all(context) - 执行发布所有内容。
上述函数在Behave中用作钩子。项目结构应如下 -
带挂钩的功能文件(Payment.feature)
带有 Payment.feature 挂钩的功能文件如下 -
Feature − Payment Process Scenario − Verify transactions Given user makes a payment of 100 INR And user makes a payment of 10 Dollar
带挂钩的功能文件(Payment1.feature)
下面给出的是带有 Payment1.feature 挂钩的功能文件 -
Feature − Administration Process Scenario − Verify admin transactions Given user is on admin screen
对应步骤实施文件
步骤实现文件如下 -
from behave import * from parse_type import TypeBuilder parse_amt = TypeBuilder.make_choice(["100", "10"]) register_type(Amt=parse_amt) parse_curr = TypeBuilder.make_choice(["INR", "Dollar"]) register_type(Curn=parse_curr) @given("user makes a payment of {n:Amt} {t:Curn}") def step_payment(context, n, t): pass @given('user is on admin screen') def step_admin(context): pass
步骤 4 - 在environment.py 文件中挂钩
environment.py文件中的hook如下:
# before all def before_all(context): print('Before all executed') # before every scenario def before_scenario(scenario, context): print('Before scenario executed') # after every feature def after_feature(scenario, context): print('After feature executed') # after all def after_all(context): print('After all executed')
输出
运行功能文件后获得的输出如下 -