【51testing專訪】web自動化,從入門到進階

原文地址:http://www.51testing.com/zhuanti/interview_index.html#datumout

 

 我一直認爲,自動化測試重在設計、構造的思想上,並不是什麼技術。如果想入門自動化測試,首先要將自己做手工測試的那一套思想轉換成自動化測試思想。例如要如何設計才能讓測試用例不斷的重複的運行,降低測試用例之間依賴,數據怎麼準備,怎麼銷燬等。其次纔是掌握一定的技術知識。下面給大家畫了一個圖作以簡單的說明。

 

以上只是簡單的入門知識點,如果需要想研究的透徹,則需要深入的學習,包括selenium源碼的研究。

 

 

 自動化測試中有線性模型、模塊化驅動模型、數據驅動模型、關鍵字驅動模型和行爲驅動模型。下面給大家分別介紹一下:

線性模型:
線性模型是指將錄製或編寫的腳本與應用程序的操作步驟對應起來,就像流水線工作一樣,每一個步驟對應一行或多行代碼。每一條流水線(每個測試腳本)都是相對獨立的,且不產生其他依賴與調用,這樣產生的腳本叫線性腳本。這是在自動化測試早期採用的一種測試模型,由於工作腳本是線性的,所以也叫線性模型。線性模型的每一個腳本都是獨立的,且幾乎沒有其他依賴和調用。開發成本比較高,而且代碼的複用性特別差。

應用場景:

  • 可以快速編寫測試腳本。
  • 完成某個操作流程。
  • 需要每個腳本單獨運行。
  • 初學自動化測試的人員使用。


 模塊化驅動模型:
模塊化驅動測試借鑑了開發編程的模塊化思想,是將重複的代碼提取到一個公共的模塊,然後在需要的時候調用封裝好的公共模塊,如果項目某一個功能有變動,只需要變動相應的腳本,很大程度上提高了編寫腳本的效率。比如,登錄模塊就可以封裝在公共模塊中,一旦模塊中的元素定位有所變動或其他因素影響了模塊,只需要在封裝的模塊中進行調整對應,而不會影響到任何測試用例,機動性、靈活性非常強。維護簡單方便,模塊變動時只需要對相應的模塊封裝即可。

應用場景:

  • 使用比較廣,目前絕大部分項目都在使用。
  • 多人協作,分模塊開發腳本。
  • 代碼可以重複使用。


數據驅動模型:
數據驅動是將測試數據和測試腳本分離,通過測試數據的改變驅動自動化的執行,從而產生不同的測試結果。簡單地說,就是數據的參數化,輸入不同的參數驅動程序執行,從而輸出不同的測試結果。數據的保存形式可以是列表、字典,也可以保存在 Excel、數據庫、xml 等外部文件中。這樣就能夠快速地應對測試系統中的大量數據,迅速創建出數百個測試迭代和排列。

應用場景:

  • 可以快速創建大量的測試數據。
  • 一套腳本,多個測試數據應對多個場景。


關鍵字驅動模型:
關鍵字驅動和數據驅動很相似,通過關鍵字的改變引起測試結果的改變,也稱爲表格驅動測試或基於動作字的測試。關鍵字驅動模型將測試用例分爲 4 個不同的部分:測試步驟、測試對象、測試對象操作和測試對象數據。

  • 測試步驟:對測試步驟的一個動作描述,或者說是在測試對象上執行的動作描述。
  • 測試對象:頁面中元素對象的名稱,例如郵箱、密碼和登錄等。
  • 測試對象操作:測試對象上執行的動作名稱,例如單擊、打開瀏覽器、輸入等。
  • 測試對象數據:數據是指對測試對象執行操作所需的值,例如“郵箱”字段的值爲 “[email protected]”。


RobotFramework 工具就是遵循關鍵字驅動模型開發的一個功能強大的測試工具,其封裝了底層的代碼,提供給用戶獨立的圖像界面,以 “填表格” 形式編寫測試用例,降低了腳本的編寫難度。

應用場景:

  • 通過可視化工具創建測試用例,適合編寫簡單的腳本。
  • 項目穩定,測試人員易上手。


行爲驅動模型:
行爲驅動開發英文名爲 Behave Driven Development,簡稱 BDD,是一種敏捷開發方法,主要是從用戶的需求出發強調系統行爲。將此模型借鑑到自動化測試中稱其爲行爲驅動測試模型,它是一種通過使用自然描述語言確定自動化測試腳本的模型。用例的寫法基本和功能測試用例的寫法類似,具有良好協作的益處。這種測試模型使每個人都可以參與到行爲開發中,而不僅僅是程序員。每個測試場景都是一個獨立的行爲,以避免重複,並且已有的行爲可以重複使用。

應用場景:

  • 行爲驅動模型的思想非常有價值,但是國內還不太流行,在真實的自動化項目中還沒有多少人使用。
  • 人人都可以寫測試用例。

以上便是對五種自動化模型的簡單介紹。對於這五種自動化模型的實現,有一個簡單的Demo可供大家參考,下載地址:https://github.com/tynam-yang/AutomatedTestModel

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章