Behave - 场景大纲
如果我们有一组相似的标准并且要在场景中传递结果,则使用场景大纲。 场景大纲附有示例表。 场景大纲可以有多个示例表。
在示例表中找到的每一行(在标题行之后)都会执行一次测试。 要测试的值由括在方括号 <> 中的名称表示。 这些名称应与示例表标题匹配。
它有助于减少代码行(消除重复步骤)并安排我们的测试。
特征文件
场景大纲的特征文件如下 −
Feature − User information
Scenario Outline: Check login functionality
Given user enters "<name>" and "<password>"
Then user should be logged in
Examples: Credentials
| name | password |
| user1 | pwd1 |
| user2 | pwd2 |
请注意:我们保留了 "<>" 中包含的名称和密码参数。 这些参数是示例部分下方提供的列标题。 在步骤实现中,我们将传递包含在"{}"中的参数。
此外,这些参数需要作为参数传递给实现方法。
对应步骤实现文件
对应的步骤实现文件如下 −
from behave import *
@given('user enters "{name}" and "{password}"')
def step_implpy(context, name, password):
print("Username for login: {}".format(name))
print("Password for login: {}".format(password))
@then('user should be logged in')
def step_implpy(context):
pass
输出
运行特征文件后获得输出,使用的命令是behave --no-capture -f plain。
输出显示打印了Username for login: user1, Password for login: pwd1 and Username for login: user2, Password for login: pwd2。 这里,两个数据集是从示例中传递过来的。

