常用功能自動化測試工具彙總_風聞
深圳之声-2020-02-28 12:50
話説自動化測試方面的工具還是非常的多的,不可能也沒有必要查看了所有的測試工具;個人覺得當學習眾多同類知識或相關主題時,分幾步走:1、學習所有同類知識的共同理論、原理部分【此為共性】2、學習所有同類知識的獨有特性、技巧部分【此為個性】3、根據具體的實際場景,適當的運用所學知識的【即運用知識的個性部分去解決特定的問題】學習自動化測試工具也是這樣的,之前不願意學習太多是怕混淆視聽,現在對原有知識已有了一定的固化認識【即瞭解了基本原理】,也就可以從新學習個性化的東西了;而這一步正是為了以後能夠適當運用所掌握的知識,順利的進行自動化測試任務的開展和實施。其目標達矣!
商業工具:
1、kylinTOP: 這是一款國產的自動化測試工具,支持WEB和APP的自動化測試,其中元素智能定位是這款自動化軟件主要特點,是設計理念比較超前的測試工具,算是國內眾多自動化測試工具中,做的比較突出的一款。
官網:http://www.70testing.com
**2、WinRunner:**號稱企業級自動化工具,腳本語言較難用,也很貴,沒有了解過,因為其貌似不在支持版本更新了
3、Rational Robot同樣號稱企業級自動化測試工具,IBM相關的公司會使用,也很貴,也沒有了解過,因為安裝文件大,還要破解
4、QTP:
這個大家都知道的,支持錄製,支持插件,支持部分插件擴展,目前只用過web插件、默認的windows功能。入門自然是很容易的事情,隨便錄製就可以有腳本出來,可以執行了,但是真正實施起來就不是那麼回事;個人覺得qtp大量部署自動化測試不是其優勢,其批量執行沒有很好的管理框架,即使集成到qc也不是很爽,畢竟是一個工具調用另一個工具,效率和性能首先就是問題,貌似很不專業;其次其對象庫文件,每次執行後都會有更新;測試結果都是分開的,沒有一個統一的綜合的結果評定;總的來説,QTP更像是一個腳本開發和調試工具,而在測試執行,腳本管理,規劃這方面還是不足的。通常都是自己寫執行框架,這裏不得不説qtp提供的接口類型還是比較多的,如:工具本身提供dom接口,還支持dll調用,支持.net庫函數調用,支持windows api調用,支持第三方的dom控件調用。
**5、SilkTest:**這個也是比較相對著名的工具,不過同樣還是沒有了解過,對於商業的工具,因為其佔地面積大,還要破解等麻煩事,最關鍵的是使用的公司少,所以只使用過QTP,其它的一概未了解過
開源工具:**1、Selenium:**這個應該大多數人都知道的,現在也是大多數互聯網公司在使用的測試框架;selenium僅支持web的UI級別測試,但是其優點在於:a、支持多種語言編寫測試腳本,比如:java、python、ruby、perl等;同時也就意味着其後的支持類庫也是很多的b、支持多瀏覽器,如:ie,ff,safari、chrome等c、支持多平台,如:windows、linux、MAC、android、iphone等d、支持分佈式執行,一套測試用例可以同時分佈到不同的測試機上執行,而且還可以進行任務細化,比如:針對liunx執行系統只分配linux下需要執行的用例此外還有錄製工具支持,簡單也説,web類測試基本上是首選,不過對flash的支持好像不是太好其主要分2個版本,1.X版本是以js驅動來進行自動化實現的;2.X重新開發了webdriver來代替js驅動,直接調用瀏覽器底層接口來完成自動化實現的前提:如果使用remote或者RC功能,需安裝jre下載地址:http://seleniumhq.org/download/
**2、EFT【easy function testing】:**這個是在.net3.0 的UIAutomatuon的基礎上封裝的一個dll文件,同樣還封裝了部分windows api以實現鼠標和鍵盤事件。所以這個只能叫測試類庫,且僅支持windows程序,而且同樣支持uiautomain所支持的WPF程序的測試。前提:安裝了.net3.0使用:引入該文件,uiautomation 相關dll,VS環境下編寫測試用例
**3、UIAutomation:**這個是微軟提供的UI自動化框架,當然它的初衷並不僅僅是為自動化測試而產生的,它的任務是給更多的開發或者應用去調用windows的UI控件,不過還是可以用於自動化測試的;因為之前微軟就有類似的工具,而這個是重新設計的ui操作類框架,其目的是為了兼容支持windows系列操作系統的UI自動化操作【xp,vista,server2003】,還有就是天然支持WPF。當然其設計與通常的自動化工具就不一樣了,比如:沒有把控件支持的方法綁定在控件對象本身,沒有提供專門的鼠標/鍵盤事件,但是卻提供了特定控件對象的事件響應監聽及處理方法的定製。其工作流程大概是這樣的:a、先獲取特定的元素對象,有多種方法。如:句柄,屬性值b、獲取這個元素對象的模式。模式是這個框架的設計的獨具之處,成就了它的靈活性,統一性c、通過這個模式在進行具體的方法調用,屬性值獲取等d、監聽指定對象的特定事件,一旦發生則執行指定的事件處理函數
4、Robot FrameworkRobot Framework是一個完全基於關鍵字測試驅動的框架,它即能夠基於它的一定規則,導入你需要的測試庫(例如:其集成了selenium的測試庫,即可以理解為操作web控件的測試底層庫),然後基於這些測試庫,你能應用HTML、TXT等文檔形式編寫自己的關鍵字(這些關鍵字即你的庫組成),之後,再編寫測試用例(測試用例由測試關鍵字組成)進行測試。例如:一個簡單的登陸測試由:登陸+輸入密碼+登出三個關鍵字組成,也可以由一個關鍵字登陸組成,關鍵字顆粒的大小可以自行定製。
總結最後才是乾貨,掌握和了解這麼工具為嘛使,不能總是為了好玩,而是為了能在以後的自動化實施過程中用於支持策略的制定;比如新接收了一個測試項目需要進行自動化實施,那麼需要考慮哪些點?使用哪個工具,有哪些工具可以作為備選?那麼自然就要對常用自動化工具有一個初步的瞭解,同時對影響自動化過程的其它元素也要有一定的掌握,不過這裏可以跳過,這裏只是説與工具相關的因素的抉擇。大體可以分為如下來考慮:
1、考慮被測試產品的類型,B/S,,C/S,web service,SOAP,SDK或者API;過濾支持某類功能測試的工具2、考慮是否支持錄製,可以錄製就相對於説開發效率有較大的提高3、考慮工具的價格,通常首選開源或免費產品4、考慮工具擴展性,可能某類工具可以支持現在的業務需求,但日後需求有變化的話,是否有很好的擴展性,支持被測產品的新特性,如flex,flash,wpf等5、考慮工具的支持性,即後期的升級及版本更新的特性,不要選用即將不再支持的工具6、考慮工具的廣泛性,即這個工具在外部的流行程度,這樣以後招人容易,有問題也有較活躍的社區可以求助7、考慮工具的成熟性,即這個工具不能還在beta版本,需要有一個較穩定的版本,而且估計較長時間內不會有大版本的更迭8、考慮工具的可開發性,即工具是否提供插件接口,用於可以自定義自己的基礎類庫和識別機制9、考慮工具的易用性,即是否有強大的後台支持,如windows、.net、java類庫支持10、考慮工具的適應性,即是否容易被封裝,可以很容易被嵌入或引入到其它的框架中,比如:功能框架被引入到執行框架中11、考慮工具的針對性,即如果有專門的針對性工具可選,自然比那些綜合性很強的工具其適用性要高的多了