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.