web自動化測試框架-03 介紹標籤,背景,場景,場景大綱

趙陽陽發表於2018-05-29

系列內容

備註:配合免費視訊教程,獲取更佳的學習效果!課程連結: ke.qq.com/course/2815…

主要內容

  • 標籤
  • 背景
  • 場景
  • 場景大綱

配合免費視訊教程,獲取更佳的學習效果!課程連結:

ke.qq.com/course/2815…

標籤

通過為不同的feature或者場景新增標籤,幫助我們為不同的測試用例歸類,例如,可以讓我們執行某些指定標籤下的測試用例。

我們可以在 Feature Scenario Scenario Outline Example 關鍵字上面新增標籤。

標籤格式為@xxxx,多個標籤之間以空格隔開。具體使用會在下面介紹樣例中體現。

feature檔案包含三種型別的場景,分別為:背景、場景、場景大綱,下面我們逐一說明。

背景(Background)

背景是三種場景型別中的一種,與我們在寫測試用例中的前提條件類似,都是定義了我們操作其它場景的前置執行步驟。

背景的英文關鍵字為 Background,標籤不能新增到背景上,而且一個feature檔案中最多隻能有一個背景。背景在整個feature檔案中的執行順序為:每個場景執行之前都會執行背景中定義的操作步驟。如下為背景的樣例:

  Background: 使用者登入
    Given 導航到使用者登入頁面
    When 使用者名稱輸入"testuser3"
    And 密碼輸入"123456"
    And 登入系統並顯示使用者名稱"testuser3"
複製程式碼

場景(Scenario)

場景與我們熟悉的測試用例中的場景一樣,主要描述我們某個執行場景的操作步驟。

場景的英文關鍵字為Scenario,我們可以為場景新增標籤。一個feature檔案中可以定義多個場景。如下為場景的樣例:

@smoke
Feature: 話題相關操作

  @topic @post
  Scenario: 使用者登入併釋出一個話題
    Given 導航到使用者登入頁面
    When 使用者名稱輸入"testuser3"
    When 密碼輸入"123456"
    Then 登入系統並顯示使用者名稱"testuser3"
    Then 開啟發布話題按鈕
    When 選擇板塊"分享"
    Then 輸入標題"node.js是全棧工程師首選語言"
    Then 輸入正文"node.js能夠幫助我們快速實現各種功能!"
    Then 點選提交,"成功"校驗點"node.jss是全棧工程師首選語言"
複製程式碼

場景大綱(Scenario Outline)

場景大綱主要是在場景的基礎上新增了資料驅動,可以讓場景根據不同的資料執行場景。舉個例子:在測試登入時,需要測試不同的場景,比如登陸成功,使用者名稱不存在登入失敗,密碼不正確登入失敗等。場景大綱就是為了解決這種需要誕生的。

場景大綱的英文關鍵字為Scenario Outline,使用場景大綱的時候必須跟Example 配合使用,Example 中定義了不同的資料驅動,場景大綱執行時會依次來取其中資料內容 。如下:

@login
Scenario Outline: 使用者名稱密碼登入01
    Given 導航到使用者登入頁面
    When 使用者名稱輸入"<username>"
    When 密碼輸入"<password>"
    When 點選登入按鈕
    Then 應該登入"<status>",校驗點為"<checkpoint>"
    Examples: 
      | username   | password | status | checkpoint |
      | testuser3  | 123456   | 成功     | testuser3  |
      |            | 123456   | 失敗     | 資訊不完整。     |
      | 123456     | 123456   | 失敗     | 使用者名稱或密碼錯誤   |
      | P@@@$$w0rd | 123456   | 失敗     | 使用者名稱或密碼錯誤   |
    @performance
    Examples: 
      | username   | password | status | checkpoint |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
      | testuser3  | 123456   | 成功     | testuser3  |
複製程式碼

如上所示:我們定義了一個使用者登入的場景,在 Example 中定義了不同的資料,預設場景執行時候會依次讀取資料進行自動化操作。上例中我們定義了兩個 Example 共8組資料,當執行這個場景大綱時,程式會執行8次,自上而下依次取每行資料。

一個場景大綱中根據不同需要可以新增多個 Example 每個 Example 根據不同使用場景也可以新增不同標籤。

一個feature檔案中可以新增多個場景大綱。

小結

上面介紹了 背景, 場景,場景大綱之間的一些區別,下面通過一個例項來指導如何在工作中書寫feature檔案。

以常用的社群發帖為例,發帖操作前提是我們使用者登入到系統,所以使用者登入操作可以寫在 Background 中,發帖功能又有不同的場景,可以定義為 Scenario Outline ,如下:


@smoke
Feature: 使用者發帖
發帖不同場景

  Background: 使用者登入
    Given 導航到使用者登入頁面
    When 使用者名稱輸入"testuser3"
    And 密碼輸入"123456"
    And 登入系統並顯示使用者名稱"testuser3"

  Scenario Outline: 釋出話題
    Then 開啟發布話題按鈕
    When 選擇板塊"<tab>"
    Then 輸入標題"<title>"
    Then 輸入正文"<content>"
    Then 點選提交,"<status>"校驗點"<checkpoint>"
    Examples: 
      | tab | title          | content                      | status  | checkpoint     |
      | 分享  | node.js        | node.js is the best language | fail    | 標題字數太多或太少。     |
      |     | i love node.js | node.js is the best language | fail    | 必須選擇一個版塊!      |
      | 問答  | i love node.js |                              | fail    | 內容不可為空         |
      | 分享  | i love node.js | node.js is the best language | success | i love node.js |
複製程式碼

要更好的瞭解這些語法,推薦大家使用CukeTest cuketest.com/ 視覺化介面編輯feature檔案,有智慧提示,確保生成格式正確的feature檔案。另外,CukeTest可以快速幫助我們切換關鍵字語言,例如上面場景都是用英文關鍵字,可以一鍵轉換成中文。並且它支援由feature檔案生成自動化程式碼。


獲取更多資訊,可以關注公眾號,也可以加QQ群:707467292 進行node.js自動化相關技術交流。

web自動化測試框架-03 介紹標籤,背景,場景,場景大綱

相關文章