系列內容
- web自動化測試框架-01 搭建基礎架構並執行一個樣例
- web自動化測試框架-02 快速開發用例文件指令碼
- web自動化測試框架-03 介紹標籤,背景,場景,場景大綱
- web自動化系列教程- 04 Hooks與TimeOut介紹
- web自動化測試框架-05 建立資料驅動的測試用例,Doc String與Data Table
- web自動化測試框架-06 如何快速編寫自動化指令碼
備註:配合免費視訊教程,獲取更佳的學習效果!課程連結: 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自動化相關技術交流。