開源自動化測試框架

開源自動化測試框架

做者:碼雲 Gitee
連接:https://www.zhihu.com/question/19923336/answer/187045725
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

1. 項目名稱:基於selenium webdriver 自動化測試框架html

郵件展現以下:java

日誌文件展現以下:node

項目簡介:這是一個WebUI自動化測試框架,由webdriver中文社區創辦人土豆(本人技術筆名)所建立,該web自動化測試框架是用java語言編寫的,基於selenium webdriver 的開源自動化測試框架,該框架結合了testng,selenium,webdriver,jxl,jodd-http 等工具。該框架基於頁面對象模型(POM)架構,實現了關鍵字驅動技術,數據驅動,無需掌握多少編程知識便可編寫腳本,同時實現了數據與代碼分離的功能:python

  • 元素定位信息保存在對象庫文件中 ;
  • 測試用例數據能夠存儲在excel中。從而實現,頁面元素位置變化,無需改動腳本,只需修改對應的元素定位信息便可。

該框架實現了檢查點及用例失敗自動截圖功能,自動生成html測試報告及自動發送html郵件測試報告功能。目前框架還不是特別完善,還須要寫一些腳本實現自動化;學習該框架須要熟悉必定的HTML 和java基礎,後續能夠考慮自動編碼的實現。android

實現的功能:git

  • XML管理元素對象信息;
  • 統一的操做API風格,action.操做(某個頁面.某個元素());
  • 數據驅動;
  • 關鍵字驅動;
  • 用例失敗自動截圖並展現到報表中;
  • 自動生成html報表,自動發送html郵件報告;
  • 用例串行一次性執行多個瀏覽器,可用於兼容性測試。

項目地址:web


2. 項目名稱:maven 自動化集成測試chrome

項目簡介:本項目是參考國外文章來編寫的 Maven 自動化集成測試工具,可測試 Spring+SpringMVC+Hibernate 技術,也可以使用 HttpClient 測試 SpringMVC 中 Action,同時增長統一驗證功能,且數據可以使用 hibernate 的自動導入數據功能。shell

項目地址:編程


3. 項目名稱:基於python 實現的自動化接口測試

項目簡介:本項目是基於 python3 實現的 http 接口自動化測試,支持常見的 HTTP 中的 post 和 get 方法;測試案例驅動用 excel 管理,注意的地方是爲每一個案例新增自定義檢查函數(更新爲了生成器爲 xml 管理);根據須要配置,能夠運行部分用例,所有用例;測試結合最後生成了 html 文件,方便查看。

開發環境:

  • Win7 64,python 3,Pycharm. unittest;
  • 讀取配置文件--讀取測試用例--執行測試用例--記錄測試結果--生成html結果文件。

模塊類的設計說明:

  • Httpbase.py 讀取http的域名和端口;
  • Config.py http方法的封裝,能夠支持多協議擴展,get,post;
  • Runner_m.py 核心代碼。run_case是程序的入口;
  • Htmlreport.py 結果生成html文件。

項目地址:


4. 項目名稱:Phoenix Framework 自動化測試平臺


項目簡介:集代碼託管, 分機(node節點)管理,定時任務, 分佈式或併發等方式執行經過 phoenix_develop 模塊調試好的用例。 平臺使用 SSH4 開發,覆蓋了 webgui,接口,移動 mobile 等終端的測試與監控。 webGUI 模塊兼容 chrome,Firefox,IE,httpunit 以及 phantomjs 驅動。原生支持對 FTPServer,svn,SocketServer,圖片文字識別的操做, 深度集成了 Jmeter,支持 Web 性能測試。 平臺經過 phoenix_develop 模塊在客戶端開發及調試代碼, 而後經過將代碼託管到 phoenix_web 控制端, 控制端經過指派多個 phoenix_node 端方式執行測試用例。 經過使用phoenix_develop 開發用例代碼的示例, 用例若是在本地調試時沒有問題,那麼就能夠放到控制端進行執行了。

項目地址:


5. 項目名稱:restful 接口的測試工具

項目簡介:目前大部分的 restful 接口測試工具,僅僅停留在驗證接口響應是否正常,具體的業務是否正確須要靠人工來分析。人工分析勢必比較耗時,並且隨着項目的迭代,重複工做量的浪費比較嚴重。所以,考慮到接口的變更會較少,自動化接口測試將頗有必要。

項目技術實現:

  • 採用 HttpClient 實現接口的調用,支持 GET/PUT/POST/DELETE 方式,支持目前 Restful 接口規範經常使用的 Http 方法;
  • 自動化腳本的編寫採用 Cucumber 來實現,腳本編寫的時候分爲 Feature、Scenario 以及 Step。每一個 Feature 下能夠包含 N 個場景,每一個場景下有 M 個步驟,和實際測試中的測試用例場景貼近;
  • 結果驗證採用 Javascript Engine,因爲 Javascript 支持弱語言,所以在處理上兼容性會更好。

項目地址:


6. 項目名稱:基於 Android 的測試經常使用腳本

項目簡介:批量安裝應用(支持以中文命名的 apk)、批量卸載、截屏、錄製視頻、獲取當前應用的 apk 文件、包名、Activity 以及當前運行的應用的 cpu、memory 信息,默認 top times 取值爲20次,可本身修改腳本中的該參數。

項目地址:


7. 項目名稱:基於 Android 的自動化測試工具 MonkeyRunner

項目簡介:MonkeyRunner 是 Google Android SDK 下的一個工具,用於自動化測試 Android 程序。Monkeyrunner 工具提供了一套 API,使用這些api 寫出的 Python 程序能夠在黑盒地控制 Android 設置和模擬器。有了 Monkeyrunner,咱們能夠經過 python 語句控制 apk 包的安裝和卸載、啓動 app、向 app 發送各類動做指令、截取圖片並保存。

Monkeyrunner 和 Monkey 不一樣,Monkey 是直接運行在 adb shell 中的命令,它隨機的生成用戶或者系統的各類隨機事件,而 MonkeyRunner 則能夠經過 api 來產生特定命令和事件來控制設備和模擬器。

MonkeyRunner 在 android 測試中有下面特色:

  • 支持多設備: API 能夠跨多個設備或模擬器實施測試套件。您能夠在同一時間接上全部的設備或一次啓動所有模擬器(或通通一塊兒),依據程序依次鏈接到每個,而後運行一個或多個測試。您也能夠用程序啓動一個配置好的模擬器,運行一個或多個測試,而後關閉模擬器。
  • 功能測試: monkeyrunner 能夠爲一個應用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數值,而後觀察輸出結果的截屏。
  • 迴歸測試:monkeyrunner 能夠運行某個應用,並將其結果截屏與既定已知正確的結果截屏相比較,以此測試應用的穩定性。
  • 可擴展的自動化:因爲 monkeyrunner 是一個 API 工具包,您能夠基於 Python 模塊和程序開發一整套系統,以此來控制 Android 設備。除了使用monkeyrunner API 以外,您還可使用標準的 Python os 和 subprocess 模塊來調用如 adb 這樣的 Android 工具。您還能夠向 monkeyrunner API 中添加您本身的類。咱們將在使用插件擴展 monkeyrunner 一節中對此進行詳細討論。

monkeyrunner 工具使用 Jython(使用 Java 編程語言的一種 Python 實現)。Jython 容許 monkeyrunnerAPI 與 Android 框架輕鬆的進行交互。使用 Jython,您可使用 Python 語法來獲取 API 中的常量、類以及方法。

項目地址:

 
 

這個框架須要開發數據表和關鍵字,這些數據表和關鍵字獨立於執行它們的測試自動化工具,並能夠用來「驅動"待測應用程序和數據的測試腳本代碼,關鍵宇驅動測試看上去與手工測試用例很相似。

概述

在自動化的軟件測試系統實現過程當中使用框架設計可使得測試腳本的維護量減至最少。然而,大量的自動化測試工具均採用傳統的「錄製一回放」模型,致使了較高的腳本維護量,由於測試數據在測試腳本程序中是以硬編碼方式實現的。此外,工具內建的測試用例除了測試應用程序的圖形用戶界面,實際上並無其它用處。所以,如何選擇一個合適的測試自動化框架,是一個自動化測試小組開始啓動前須要最優先考慮的一個問題。

 

一個自動化測試框架就是一個由假設、概念以及爲自動化測試提供支持的實踐的集合。如下描述五種基本的自動測試框架:模塊化測試腳本框架,測試庫構架框架,關鍵字驅動/表驅動測試框架,數據驅動測試框架,以及混合測試框架。

能夠根據實際須要去考慮採用其中的一種測試框架而不是僅僅依賴於一個簡單的捕獲工具。同時,這些框架是瞭解自動測試框架以及根據本身的須要和經驗來設計自動測試框架的基礎。

1.模塊化測試框架

在五種框架中,模塊化框架是最容易掌握和使用的。在一個組件上方創建一個抽象層使其在餘下的應用中隱藏起來,這是衆所周知的編程技巧。這樣應用同組件中的修改隔離開來,提供了程序設計的模塊化特性。模塊化測試腳本框架使用這一抽象或者封裝的原理來提升自動測試組合的可維護性和可升級性。

 

2.測試庫框架

測試庫框架(Test Library Architecture)與模塊化測試腳本框架很相似,而且具備一樣的優勢。不一樣的是測試庫框架把待測應用程序分解爲過程和函數而不是腳本。這個框架須要建立描述模塊、片段以及待測應用程序的功能庫文件。

 

3.關鍵字驅動或表驅動的測試框架

對於一個獨立於應用的自動化框架,關鍵字驅動(KEYWORD DRIVEN)I9LJJ試和表驅動(TABLE DRIVEN)測試是能夠互換的術語。這個框架須要開發數據表和關鍵字。這些數據表和關鍵字獨立於執行它們的測試自動化工具,並能夠用來「驅動"待測應用程序和數據的測試腳本代碼,關鍵宇驅動測試看上去與手工測試用例很相似。在一個關鍵字驅動測試中,把待測應用程序的功能和每一個測試的執行步驟一塊兒寫到一個表中。

這個測試框架能夠經過不多的代碼來產生大量的測試用例。一樣的代碼在用數據表來產生各個測試用例的同時被複用。

框架自己所要作的就是識別Excel表格中的這些控件對象以及Action

4.數據驅動測試框架

數據驅動(DATA DRIVEN),LJ試是一個框架。在這裏測試的輸入和輸出數據是從數據文件中讀取(數據池,ODBC源,CSV文件,EXCEL文件,ADO對象等)而且經過捕獲工具生成或者手工生成的代碼腳本被載入到變量中。在這個框架中,變量不只被用來存放輸入值還被用來存放輸出的驗證值。整個程序中,測試腳原本讀取數值文件,記載測試狀態和信息。這相似於表驅動測試,在表驅動測 試中,它的測試用例是包含在數據文件而不是在腳本中,對於數據而言,腳本僅僅是一個「驅動器」,或者是一個傳送機構。然而,數據驅動測試不一樣於表驅動測試,儘管導航數據並不包含在表結構中。在數據驅動測試中,數據文件中只包含測試數據。

這個框架意圖減小須要執行全部測試用例所須要的總的測試腳本數。數據驅動須要不多的代碼來產生大量的測試用例,這與表驅動極其相似。

 

5.混合測試自動化(Hybrid Test Automation)框架

最廣泛的執行框架是上面介紹的全部技術的一個結合,取其長處,彌補其不足。這個混合測試框架是由大部分框架隨着時間並通過若干項目演化而來的。

我的認爲以上的架構是存在遞進關係的,至少前四個是確定的,仍是須要多種框架特色組合在一塊兒的,有很好的借鑑意義!

 

篇幅有限,今天主要就介紹到這了,後期會更多分享一些自動化測試內容,感興趣的朋友能夠關注下~

 

  • 發表於: 2018-10-24
  • 原文連接:https://kuaibao.qq.com/s/20181024A04DPF00?refer=cp_1026
相關文章
相關標籤/搜索