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

Scenario Outlines

输出显示打印了登录用户名:user1,登录密码:pwd1和登录用户名:user2,登录密码:pwd2。这里,两个数据集是从示例中传递的。

广告
© . All rights reserved.