多款自動化工具的橫向比較 (UFT、RFT和CukeTest)

 

自動化測試做爲很是專業的市場,不光對自動化測試的工程師技術要求很高,並且在工具選擇也很是關鍵。不少公司的軟件在以手動測試爲主轉換到更多應用自動化測試的過程當中,一大困惑是如何選擇自動化測試產品。工具產品的選擇不只決定着從此測試質量和自動化測試的開發效率。並且影響到技術人員的招聘,運營成本等多種因素。css

 

僅從成本角度考慮,開源軟件沒有工具軟件的購置成本,可是開源工具的集成和測試框架的搭建須要耗費大量人力。另外,疑難問題若是沒有廠商支持,會影響項目進度,也會致使大量的支出。若是從總擁有成本角度考慮(TCO),未必是最優的。html

 

爲幫助各位根據本身的實際狀況選擇合適的工具,本文選取了自動化測試的幾款典型的工具,從工具軟件的各個方面進行比較。方便各位在選擇工具的時候作有效的決策。UFT,RFT是老牌的自動化測試工具、生態相對封閉。CukeTest是開源軟件Cucumber演變而來的軟件,在開源社區被普遍的採用。前端

 

各自動化工具的特性比較
特性 惠普 Unified Function Testing IBM Rational Functional Tester 聆播科技CukeTest
腳本管理 腳本文件的方式管理腳本,後期維護困難,複用率很低。目前很多廠商開發了UFT的腳本管理工具,但沒法脫離腳本文件的基礎,很難有質的改變。 分散管理腳本,用戶在使用時需到相應用戶處查找腳本,查找到腳本後纔可以調用,無形增長了工做量。分散管理模式不能實現腳本實時更新,不能實現實時共享,致使腳本的複用率較低。 腳本管理採用先進的行爲驅動(BDD)方式,基於測試場景管理測試用例。測試步驟與代碼相關聯。腳本易於維護。由於基於天然語言編寫測試場景,有很強的可讀性,非測試開發也可審閱和貢獻測試用例。
易用性

工具的圖形化操做功能比較簡單;
腳本編寫比較簡單;
能夠經過簡單的描述性編程實現手動識別對象。正則表達式

工具的圖形化操做功能比較簡單;
腳本編寫比較難;
經過find方法實現手動識別對象,使用難席比較大點。編程

用例開發部分採用可視化模式和文本模式兩種方式,根據須要切換。代碼部分使用流行的腳本編輯器。可從用例跳轉到代碼,或從代碼轉到用例文本。
使用配置 須要安裝一系列工具,並配置licence。 RFT安裝複雜,配置步驟多。 多平臺開發支持,包括MacOS、Windows等,開發的腳本還可在Linux上運行。從免費版開始,必定用量需安裝License。
腳本語言 VBS Java、VB.NET JavaScript,Node.js

支持應用json

 

默認支持windows控件,VB,和ActiveX;
能夠加插件來支持其餘經常使用的應用程序。不過插件都是要單買的,價格很高。windows

默認支持大部分經常使用的應用程序。
其餘應用程序能夠經過加載相應的識別Jar包進行識別,惋惜,這些Jar包沒有現成的。安全

支持各種應用包括Windows、移動端、Web、API等。移動端、Web、API等開發時需引入免費的開源庫,無需額外成本。Windows應用測試可跟本公司另外一產品LeanRunner結合使用。
錄製腳本

支持圖形化的操做錄製腳本;
支持圖形化的操做添加驗證點;
支持圖形化的操做應用正則表達式。前端工程師

支持圖形化的操做錄製腳本;
支持圖形化的操做添加驗證點;
支持圖形化的操做應用正則表達式。架構

不提供錄製,Web採用開源方案的對象識別,有豐富的公開文檔,簡單培訓便可瞭解。Windows支持對象識別,添加到對象管理庫後再自動生成對象調用代碼。
參數化

支持圖形化的數據表格式數據操做;
使用的是Excel文件來做爲測試數據存儲介質;
能夠直接打開Excel數據文件修改數據;

支持指參數化數據;
支持圖形化的數據表格式數據操做;
使用的是Xml格式文件來存儲測試數據;
Xml測試數據只支持在RFT軟件中使用格式化方式顯示和修改;
Xml測試數據使用標準的數據格式,通用性更好。

支持參數化。內置了行爲驅動參數化功能。支持數據驅動,數據表可從外部導入,或將測試用例中已有的數據導出到Excel。

測試數據

加載

測試數據加載簡單,使用內置函數能方便實現。 能夠用封裝的方法來動態加載數據,不過比較複雜,並且還得修改腳本中參數化的地方。 提供加載數據表的API。

對象識別

能力

有內置識別的比較標準的控件識別強;
組合的控件識別較弱;
默認支持dom,能夠直接操做。

有內置識別的比較標準的控件識別強;
自定義的控件識別較弱;
能夠自定義非標準控件的識別;
固然,經過Jar包的加載,理論上能夠操做任何想操做的對象

對象識別使用了開源庫Selenium的功能。是普遍使用的成熟方案,支持多種識別方式,包括Id,css, linkText, name, className, xPath等多種方式。

手動添加

對象

提供樹形的對象選取方式,能夠選擇當前節點,也能夠選擇父節點或子節點,使用挺方便。

提供節點直接選擇和對象遍歷選擇,
不大實用。
首先,節點直接選擇不能選擇父節點或子節點,不少狀況是直接選擇不到要選的節點的;
其次,遍歷節點更是不可能,由於頁面常常一遍歷就有好幾百個對象,非常很差找。

手動添加對象是基於流行的Selenium的對象添加,市場上有衆多的技術人員瞭解這些添加對象的方式,也有很是多的免費培訓講解。
腳本編輯

提供步驟編輯界面,方便不會不會編程的人員使用;
腳本編輯器的功能比較弱。

只有腳本編輯器,沒有步驟編輯器;
腳本編輯器的功能比較強,跟操做Eclipse差不太多。

集成流行的vscode引擎,相似vscode的腳本編輯器,提供智能提示
腳本調試

HP爲QTP加入了VBS調試功能;
調試功能比較弱。

直接使用Eclipse調試Java的強大功能。 JavaScript的調試方式,無需編譯。另有多種按照場景的調試方式。由於是JavaScript語言,前端工程師也可參與開發調試。
回放速度 速度比較快。 速度通常。 採用Node.js引擎,和成熟的Selenium庫,速度較快。
結果報告

樹形顯示各個步驟的執行狀況。
能夠在代碼中向報告寫內容。

提供多種形式的結果顯示。
能夠在代碼中向報告寫內容。

提供多種類型的html報告,其中有按照場景的彙總數據,以及每一個場景步驟的詳細數據。每一個場景詳細內容能夠添加截屏或自定製數據。能夠導出到PDF,另提供json報表數據,方便自定製。運行時能夠自動錄製視頻。
擴展性 插件擴展,插件都由UFT廠商提供 有Jar包,幾乎就能夠擴展。 可以與多種開源的自動化庫相結合使用,擴展自動化功能。由於基於流行的Node.js技術,Github上有衆多數量的JavaScript庫擴展功能。
集成性

提供了與其餘程序結合的接口,對C#、VB和VBS結合性比較好。
能夠經過C#、VB和VBS等編寫程序方便的調用和操做UFT。

提供了編寫用例腳本的API,但產品自己功能不易擴展 提供多種類型html報表,json報表數據,方便自定製報表,有Jenkins插件支持,可在Jenkins中輕鬆實現持續集成
安全性 架構較封閉,不支持提供源碼,安全性沒法評估 架構較封閉,不支持提供源碼,安全性沒法評估 基於開源實現,提供執行引擎及自動化庫源碼,便於自主可控
價格 昂貴 較貴 通常
總結 功能全面,價格昂貴,自動化測試腳本生成較快,但對需求的頻繁變化自適應能力差,從新錄製的風險較大,腳本維護困難,迴歸持續100%經過率較低。在國內的市場佔有率有逐年降低的趨勢。 RFT 的驗證結構的功能比較強大,經過對 TestObject 的獲取和使用,能夠對 Eclipse 中的不少的 SWT/JFace 圖形對象提供支持,並且也能夠支持不少的驗證種類;其次,它直觀、易於理解。但RFT驗證 API 的使用繁瑣、可重用性低;也沒有區分各個具體對象類型的差別,形成驗證形式比較單一,從而不利於用戶進行擴展操做;用例執行失敗定位不方便,自動生成的腳本維護較困難。 性價比較高,可擴展性強。產品支持Web、接口、Android、IOS、Windows、Qt等。行爲驅動讓腳本維護更爲方便。開發的腳本基於開源引擎執行,避免了供應商綁定。靈活開放能引入衆多的開源庫和解決方案,易擴展。

 

各軟件在支持的語言、腳本開發、自動化技術、可擴展性、報告方面各有強項。相信你們在進行綜合的比較後。對這幾款工具備了初步的瞭解。在開源軟件盛行的今天,由單一廠商提供大而全且價格昂貴的產品已再也不是潮流,反之,支持開源、開放、提高價值是軟件產品的新的趨勢。

 

由於篇幅關係,本文只比較了幾款主流工具,若是要參考其它工具,也可填寫相似的表格作詳細的比較分析。

相關文章
相關標籤/搜索