話說自動化測試方面的工具還是非常的多的鸽疾,不可能也沒有必要查看了所有的測試工具贰军;個人覺得當(dāng)學(xué)習(xí)眾多同類知識或相關(guān)主題時强法,分幾步走:
1焚挠、學(xué)習(xí)所有同類知識的共同理論膏萧、原理部分【此為共性】
2、學(xué)習(xí)所有同類知識的獨有特性蝌衔、技巧部分【此為個性】
3榛泛、根據(jù)具體的實際場景,適當(dāng)?shù)倪\用所學(xué)知識的【即運用知識的個性部分去解決特定的問題】
學(xué)習(xí)自動化測試工具也是這樣的噩斟,之前不愿意學(xué)習(xí)太多是怕混淆視聽曹锨,現(xiàn)在對原有知識已有了一定的固化認識【即了解了基本原理】,也就可以從新學(xué)習(xí)個性化的東西了剃允;而這一步正是為了以后能夠適當(dāng)運用所掌握的知識艘希,順利的進行自動化測試任務(wù)的開展和實施。其目標(biāo)達矣硅急!
商業(yè)工具:
1覆享、RFT
Rational Functional Tester 的基礎(chǔ)是針對于Java、.NET的對象技術(shù)和基于 Web 應(yīng)用程序的錄制营袜、回放功能。工具為測試者的活動提供的自動化的幫助凤壁,如數(shù)據(jù)驅(qū)動測試吩屹。
IBM RFT是一個用于功能和回歸測試的數(shù)據(jù)驅(qū)動的測試平臺拧抖。它支持大范圍的應(yīng)用煤搜,例如.Net、Java唧席、SAP、Flex和Ajax淌哟。RFT使用Visual Basic。Net和Java作為腳本語言徒仓。RFT有一個獨特的功能腐碱,稱為 Storyboard 測試,用戶的動作被記錄下來掉弛,并通過應(yīng)用截圖在 Storyboard 格式中可視化症见。
RFT的另一個有趣特性是它與IBM Jazz應(yīng)用生命周期管理系統(tǒng)(如IBM Rational Team Concert和Rational Quality Manager)的集成筒饰。
2、kylinTOP:
這是一款國產(chǎn)的自動化測試工具瓷们,支持WEB和APP的自動化測試秒咐,其中元素智能定位是這款自動化軟件主要特點,是設(shè)計理念比較超前的測試工具携取,算是國內(nèi)眾多自動化測試工具中,做的比較突出的一款雷滋。與傳統(tǒng)的RFT和UFT相比,的確有過人之處焕檬,算是后起之秀吧澳泵。官網(wǎng):http://www.70testing.com
3、UFT:
UFT(別名:QuickTest Professional簡稱QTP)是一種自動化測試工具,以VBScirpt為內(nèi)嵌語言,其前身是QTP击喂。UFT支持功能測試和回歸測試自動化碰辅,可用于軟件應(yīng)用程序和環(huán)境的測試。UFT自動化測試的基本功能包括:創(chuàng)建測試没宾、檢驗數(shù)據(jù)、增強測試、運行測試腳本勉失、分析測試結(jié)果羹蚣、維護測試;UFT支持兩種視圖顽素,一種是Keyword View(關(guān)鍵字視圖)徒蟆,另一種是Expert View(專家視圖)。是一款老牌的自動化測試工具段审。
4、SilkTest:
這個也是比較相對著名的工具抑淫,不過同樣還是沒有了解過姥闪,對于商業(yè)的工具,因為其占地面積大催式,還要破解等麻煩事避归,最關(guān)鍵的是使用的公司少,所以只使用過QTP梳毙,其它的一概未了解過
開源工具:
1、Selenium:
這個應(yīng)該大多數(shù)人都知道的堂氯,現(xiàn)在也是大多數(shù)互聯(lián)網(wǎng)公司在使用的測試框架;selenium僅支持web的UI級別測試咽白,但是其優(yōu)點在于:
a晶框、支持多種語言編寫測試腳本,比如:java授段、python、ruby届搁、perl等窍育;同時也就意味著其后的支持類庫也是很多的
b、支持多瀏覽器漱抓,如:ie,ff瞬逊,safari仪或、chrome等
c、支持多平臺溶其,如:windows、linux束铭、MAC厢绝、android、iphone等
d懈万、支持分布式執(zhí)行,一套測試用例可以同時分布到不同的測試機上執(zhí)行会通,而且還可以進行任務(wù)細化,比如:針對liunx執(zhí)行系統(tǒng)只分配linux下需要執(zhí)行的用例
此外還有錄制工具支持沪停,簡單也說裳涛,web類測試基本上是首選,不過對flash的支持好像不是太好
其主要分2個版本舷礼,1.X版本是以js驅(qū)動來進行自動化實現(xiàn)的郊闯;2.X重新開發(fā)了webdriver來代替js驅(qū)動,直接調(diào)用瀏覽器底層接口來完成自動化實現(xiàn)的
前提:如果使用remote或者RC功能虚婿,需安裝jre
下載地址:http://seleniumhq.org/download/
2泳挥、EFT【easy function testing】:
這個是在.net3.0 的UIAutomatuon的基礎(chǔ)上封裝的一個dll文件屉符,同樣還封裝了部分windows api以實現(xiàn)鼠標(biāo)和鍵盤事件。所以這個只能叫測試類庫矗钟,且僅支持windows程序,而且同樣支持uiautomain所支持的WPF程序的測試躬它。
前提:安裝了.net3.0
使用:引入該文件东涡,uiautomation 相關(guān)dll,VS環(huán)境下編寫測試用例
3疮跑、UIAutomation:
這個是微軟提供的UI自動化框架祖娘,當(dāng)然它的初衷并不僅僅是為自動化測試而產(chǎn)生的,它的任務(wù)是給更多的開發(fā)或者應(yīng)用去調(diào)用windows的UI控件,不過還是可以用于自動化測試的菇夸;因為之前微軟就有類似的工具胧辽,而這個是重新設(shè)計的ui操作類框架,其目的是為了兼容支持windows系列操作系統(tǒng)的UI自動化操作【xp摄咆,vista人断,server2003】,還有就是天然支持WPF恶迈。當(dāng)然其設(shè)計與通常的自動化工具就不一樣了,比如:沒有把控件支持的方法綁定在控件對象本身步做,沒有提供專門的鼠標(biāo)/鍵盤事件奈附,但是卻提供了特定控件對象的事件響應(yīng)監(jiān)聽及處理方法的定制。其工作流程大概是這樣的:
a将鸵、先獲取特定的元素對象佑颇,有多種方法。如:句柄挑胸,屬性值
b、獲取這個元素對象的模式簿透。模式是這個框架的設(shè)計的獨具之處闷沥,成就了它的靈活性,統(tǒng)一性
c蚂维、通過這個模式在進行具體的方法調(diào)用,屬性值獲取等
d蔚约、監(jiān)聽指定對象的特定事件涂籽,一旦發(fā)生則執(zhí)行指定的事件處理函數(shù)
4、Robot Framework
Robot Framework是一個完全基于關(guān)鍵字測試驅(qū)動的框架评雌,它即能夠基于它的一定規(guī)則,導(dǎo)入你需要的測試庫(例如:其集成了selenium的測試庫砂轻,即可以理解為操作web控件的測試底層庫)斤吐,然后基于這些測試庫,你能應(yīng)用HTML庄呈、TXT等文檔形式編寫自己的關(guān)鍵字(這些關(guān)鍵字即你的庫組成)派阱,之后,再編寫測試用例(測試用例由測試關(guān)鍵字組成)進行測試故响。例如:一個簡單的登陸測試由:登陸+輸入密碼+登出三個關(guān)鍵字組成颁独,也可以由一個關(guān)鍵字登陸組成伪冰,關(guān)鍵字顆粒的大小可以自行定制。
總結(jié)
最后才是干貨贮聂,掌握和了解這么工具為嘛使吓懈,不能總是為了好玩,而是為了能在以后的自動化實施過程中用于支持策略的制定耻警;比如新接收了一個測試項目需要進行自動化實施甸怕,那么需要考慮哪些點梢杭?使用哪個工具秸滴,有哪些工具可以作為備選?那么自然就要對常用自動化工具有一個初步的了解荡含,同時對影響自動化過程的其它元素也要有一定的掌握,不過這里可以跳過钧排,這里只是說與工具相關(guān)的因素的抉擇均澳。大體可以分為如下來考慮:
1、考慮被測試產(chǎn)品的類型糟袁,B/S,躺盛,C/S,web service周叮,SOAP界斜,SDK或者API;過濾支持某類功能測試的工具
2各薇、考慮是否支持錄制峭判,可以錄制就相對于說開發(fā)效率有較大的提高
3、考慮工具的價格林螃,通常首選開源或免費產(chǎn)品
4、考慮工具擴展性完残,可能某類工具可以支持現(xiàn)在的業(yè)務(wù)需求,但日后需求有變化的話贝润,是否有很好的擴展性铝宵,支持被測產(chǎn)品的新特性,如flex鹏秋,flash侣夷,wpf等
5、考慮工具的支持性百拓,即后期的升級及版本更新的特性,不要選用即將不再支持的工具
6决帖、考慮工具的廣泛性蓖捶,即這個工具在外部的流行程度,這樣以后招人容易刻像,有問題也有較活躍的社區(qū)可以求助
7并闲、考慮工具的成熟性,即這個工具不能還在beta版本纹冤,需要有一個較穩(wěn)定的版本购公,而且估計較長時間內(nèi)不會有大版本的更迭
8雁歌、考慮工具的可開發(fā)性,即工具是否提供插件接口比庄,用于可以自定義自己的基礎(chǔ)類庫和識別機制
9、考慮工具的易用性制恍,即是否有強大的后臺支持神凑,如windows、.net溉委、java類庫支持
10瓣喊、考慮工具的適應(yīng)性,即是否容易被封裝藻三,可以很容易被嵌入或引入到其它的框架中棵帽,比如:功能框架被引入到執(zhí)行框架中
11、考慮工具的針對性岖寞,即如果有專門的針對性工具可選,自然比那些綜合性很強的工具其適用性要高的多了