什么是關鍵字驅動框架?
關鍵字驅動框架是一種功能自動化測試框架,它也被稱為表格驅動測試或者基於動作字的測試。關鍵字驅動的框架的基本工作是將測試用例分成四個不同的部分。首先是測試步驟(Test Step),二是測試步驟中的對象(Test Object),三是測試對象執行的動作(Action),四是測試對象需要的數據(Test Data)。
以上四個部分,都可以使用Excel表格進行維護:
Test Step:是一個小的測試步驟的描述或者測試對象的一個操作說明。
Test Object:是指頁面對象或元素,就像用戶名、密碼,
Action:指頁面操作的動作,打開瀏覽器,點擊一個按鈕,文本框輸入一串文本等。
Test Data:是任何對象操作時所需要的值,就像用戶名、密碼進行輸入時的輸入內容。
其實我們做關鍵字的驅動的思想,就是把編碼從測試用例和測試步驟中分離出來,這樣對於不會編碼的人員更容易理解自動化,從而讓手工測試人員也可以編寫自動腳本。(這並不意味這不需要自動化測試人員,對於自動化框架的構建,自動化代碼的更新,結構調整等都需要一個技術性的人員)對於測試小的項目的團隊,可以有兩個手工測試人員和一個自動化測試人員。
通過一個簡單的登錄功能
例子來理解這個概念
,想想看你的自動化流程需要做哪些事情:
- 打開一個瀏覽器
- 輸入url跳轉到網站首頁
- 點擊“登錄”鏈接,進入登錄頁面
- 輸入“用戶名”
- 輸入“密碼”
- 點擊“登錄”按鈕,進行登錄
- 點擊“注銷”按鈕,退出登錄
- 關閉瀏覽器
下面是我們將要去實現的一些通用組件:
- Excel Sheet: 是我們存放測試用例(Test Case)、測試步驟(Test Step)、測試對象(Test Object)和操作動作(Action)的關鍵字驅動數據表。
- Object Repository: 是個屬性文件,用來存放HTML應用中的一些元素屬性(可看做元素的對象倉庫),該文件與測試對象進行鏈接。
- Keyword Function Library: 這是一個方法庫文件,這個組件在關鍵字驅動框架中起着很重要的作用,它主要存放執行的Action,每一個操作動作都可以從這個文件中調用。
- Data Sheet: Excel表格存儲,測試對象在執行操作時所需要的數據值。
- Execution Engine: 是唯一的測試腳本,它包含了所有的代碼,通過關鍵字框架從Excel表格、方法庫、屬性文件中進行推動測試。
下面圖片展示了關鍵字框架的通用工作流程:

一般的關鍵字驅動工作流程大概都是這個樣子的。
- Execution Engine starts the test and connect with the bundle of test cases and start executing one by one
(使用
Execution Engine 啟動測試用例包,啟動一個執行一個。)
- Once Test Case is picked, linked test steps are followed sequentially
(一旦測試用例被選中,就會鏈接測試步驟順序執行)
- Test Steps are further connected with Page Objects, Actions & Test Data
- Once Execution Engine gets all the required info to perform a test step, it connects with application and do the step.
優勢
- 不需要太多的技術:一旦框架建立,手工測試人員和非技術人員都可以很容易的編寫自動化測試腳本。
- 簡單易懂:它存在Excel表格中,沒有編碼,測試腳本容易閱讀和理解。關鍵字和操作行為這樣的手工測試用例,使它變得更容易編寫和維護。
- 早期介入:可以在應用未提交測試之前,就可以建立關鍵字驅動測試用例對象庫,從而減少后期工作。使用需求和其它相關文檔進行收集信息,關鍵字數據表可以建立手工測試程序。
- 組件的重用性:實施關鍵字驅動的模塊化,進一步提高可重用性。
- 代碼的重用性:作為關鍵字驅動框架中,只有一個執行引擎,它是鼓勵極端的代碼的復用。
基於關鍵字的Demo(Python版本):
https://coding.net/u/tsbc/p/Keyword-for-selenium/git
原文來自toolsqa,本人只做了翻譯:
http://www.toolsqa.com/selenium-webdriver/keyword-driven-framework/introduction/