Behave 挂钩


Behave 设置和拆卸功能在名为 environment.py 的文件中实现,该文件位于包含步骤文件夹的同一目录中。设置功能包括——浏览器打开、数据库连接、配置等。

拆卸功能包括浏览器关闭、数据库连接终止、反转更改等。

The 环境.py 文件包含以下功能:

  • before_feature(context, feature):先执行每个特征。

  • before_scenario(context,scenario):先执行每一个场景。

  • before_step(context, step):在每一步之前执行。

  • before_tag(context, tag):先执行每个标签。

  • before_all(context):先执行一切。

  • after_feature(context, feature): 执行每个特征的发布。

  • after_scenario(context,scenario):每个场景都执行post。

  • after_step(context, step):每一步执行post。

  • after_tag(context, tag):对每个标签执行post。

  • after_all(context): 执行post一切。

上述函数在 Behave 中用作钩子。项目结构如下:

Project Structure

带有钩子的功能文件(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

第四步:在 environment.py 文件中的钩子

里面的钩子 环境.py 文件如下:

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

运行特征文件后得到的输出如下:

Hooks