Behave 简明教程

Behave - Scenario Outlines

如果我们有一组类似的条件并且结果要传递给场景,则可以使用场景提纲。场景提纲与示例表一起使用。场景提纲可以有多个示例表。

对于在示例表(接表头行之后)中找到的每一行,测试都将执行一次。要测试的值由括号<>中的名称表示。这些名称应与示例表头相匹配。

它有助于减少代码行数(消除重复步骤)并对我们的测试进行排序。

Feature File

场景大纲的功能文件如下−

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     |

请注意:我们已将名称和密码参数括在“<>”中。这些参数是“示例”部分下方提供的列标题。在步骤实现中,我们将传递括在“{}”中的参数。

此外,这些参数需要作为参数传递给实现方法。

Corresponding Step Implementation File

相应的步骤实现文件如下:

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

Output

在运行功能文件并使用 behave --no-capture -f plain 命令后,即可获得输出。

scenario outlines

输出显示 Username for login: user1, Password for login: pwd1 and Username for login: user2, Password for login: pwd2 已打印。此处,两个数据集已从“示例”传递。