關於自動化測試框架設計的幾點思考

對於自動化測試的好處和重要性,相信你們都已經瞭解。自動化測試可讓咱們在有限的時間內儘量多的覆蓋所涉及到的測試場景,減小測試人員的的重複性工做,提升測試效率以及覆蓋率。數據庫

其實不少測試同窗都很是積極嘗試自動化,但最終又選擇放棄,很重要的緣由是沒有感覺到自動化帶來的收益。編程

實際上,自動化的效率高低很大程度上取決於你的自動化框架設計得是否合理,下面就以如何設計高效的自動化框架來談談本身的理解。設計模式

 

什麼是自動化測試框架

首先說說什麼是自動化測試。自動化測試就是讓被測試的軟件本身能夠運行起來,代替人去執行軟件的功能;或者是讓其餘的工具本身運行起來,去檢查軟件的內部和外部。自動化測試能夠當作是一個自動執行的過程。框架

自動化測試框架則是可讓自動化測試實現的一系列組合封裝的庫或工具,來幫助咱們進行自動化測試的配套設施。機器學習

 

自動化測試框架的設計

實際上,不論是手工測試仍是自動化測試,最核心的工做不外乎編寫測試用例、執行測試用例、處理運行結果、維護用例。所以,如何提升自動化測試的效率,也就拆解成了如何提升自動化「編寫、執行、維護」測試用例上效率的問題。分佈式

01 選擇自動化測試方式

目前比較常見的自動化測試方式主要分爲「數據驅動框架」和「關鍵字驅動框架」兩種。工具

a. 數據驅動 (DDT)學習

數據驅動指的是從某個數據文件(例如Excel文件、Xml文件、Json文件等)中讀取輸入測試數據,而後經過變量傳入編寫的測試腳本中。測試

在這個過程當中, 數據文件的讀取、測試狀態和全部測試步驟都被編寫進測試腳本里;測試數據只包含在數據文件中,而不是腳本里,測試腳本只是一個「驅動」,或者說是一個傳送數據的機制。大數據

通常用來存放數據的文件有:

  • Excel 數據文件

  • XML 數據文件

  • JSON 數據文件

  •  Text 數據文件

  •  YAML 數據文件

  •  數據庫等

數據驅動的方法主要用於須要經過不一樣數據來保證測試覆蓋率的場景,好比被測系統業務邏輯固定不變或變更較小,即測試用例步驟是固定的,可是所須要的測試數據是變化的狀況。一般來講,數據都是保存在外面文件或數據庫中,運行時自動獲取。即測試框架中要支持數據與腳本分離,一個測試腳本能夠驅動執行多個類似測試場景。

那麼,數據與腳本分離是自動化的必要因素,如圖所示:

 

上圖是將測試數據與腳本獨立,頁面元素與腳本獨立,測試同窗只須要獨立維護測試數據與頁面元素,且數據與頁面元素是共享的,任何測試人員都可調用,減小了編寫與維護的成本。

b. 關鍵字驅動

關鍵字驅動是將數據與關鍵字結合來描述如何執行測試。也就是將測試用例腳本中的步驟提取出來,放在獨立的數據文件中,變成簡單編寫的方式。這種方法具有數據驅動的優點,同時非編程人員也能創建測試。

關鍵字驅動的模式是創建在數據驅動手段之上,關鍵字驅動文件包含指令(關鍵詞),而不僅是數據。

 

02 提升執行效率:分佈式

測試用例的執行效率也是自動化測試須要注意的重點。設想一下,一個早晨,你手捧一杯咖啡,在電腦旁開啓了一天的工做,這時收到一封提測郵件,首先你開啓了自動化冒煙或迴歸當前需求,當你在本地開啓運行UI自動化測試用例的時候,當前執行的用例已經佔據了你整個電腦,你啥也幹不了。

若是經過一種簡單的機制可讓測試用例在其餘機器或手機上運行,不須要你本機,也不須要複雜的操做,在你忙碌其餘事情的時候,而多臺遠程機器也在同時爲你執行測試用例,不只提升了你的工做效率,節省人工成本,也同時提升了測試用例的執行效率。

這裏咱們說的分佈式執行是指將數條測試用例在多臺遠程機器上執行:

 

03 常見的自動化測試框架

不論是接口層也好,仍是UI層也好,目前應用最多的工具或者語言如:

①Java+Selenium/Appium+TestNG/Junit+Maven/Ant+Git+Jenkins

②Python+Selenium/Appium+Unittest/Pytest+Git+Jenkins

至於須要使用哪一種選型,根據本身的團隊須要而定,那種選型均可以搭建一個擁有好的設計模式的框架。目前在電商團隊中的測試框架中支持的自動化主要有:

 

小結

一個好的自動化的框架必定是靈活易用的,由於測試對象的不肯定性以及多變性對於框架來講是一個最大的挑戰。

在將來的測試發展趨勢中,也許能夠有更加簡便的方式去包容豐富多變的測試場景,能夠自動生成自動化測試用例,其實近來也有人嘗試機器學習(AI+大數據的方式)來識別GUI的對象,不論是創新性的技術仍是傳統技術,咱們的目的是爲了高效率的保證測試質量。

以上是我的關於自動化測試框架的一些看法,歡迎各位測試小夥伴們一塊兒探討。

 

本文做者:徐彥卿 電商旅遊測試負責人

相關文章
相關標籤/搜索