軟件測試工具中小議Ruby&QTP

發表于:2010-05-18來源:作者:點擊數: 標簽:軟件測試工具rubyRuby小議
軟件測試工具中小議 Ruby QTP 很對同學都 學習 過 QTP ,也在用QTP寫腳本,尤其是商品線與店鋪的同學,都制定出了用QTP寫腳本的規范,而現在隨著 Ruby 框架越來越穩定,使用的也越來越廣泛,用Ruby寫腳本是大勢所趨。所以很多同學可能會擔心,又要學Ruby了之

軟件測試工具中小議Ruby&QTP

很對同學都學習QTP,也在用QTP寫腳本,尤其是商品線與店鋪的同學,都制定出了用QTP寫腳本的規范,而現在隨著Ruby框架越來越穩定,使用的也越來越廣泛,用Ruby寫腳本是大勢所趨。所以很多同學可能會擔心,又要學Ruby了之前的QTP是不是白學了,會不會很難啊什么的。其實通過我的個人經驗,我也是先寫QTP再學的Ruby,如果對QTP有一定了解的話再來學Ruby還是容易的,畢竟2個都是自動化工具,實現的目的都是一樣,模型人工進行頁面操作,所以很多東西都是通用的,比如在利用dom思想的時候等等。下面介紹下兩者的一個關系。

  1.從框架的角度看。針對目前netbean框架,可以發現和QTP的框架有很多的相似之處。從編寫一個測試用例出發,netbean框架中需要有 page.rb、process.rb、testrun.rb、excel 這四個文件。Page:對頁面上需要操作的控件進行描述,這個就類似與QTP中的對象庫只不過前者是通過用屬性描述的方式來事先準備好操作對象,而后者是直接通過頁面抓取的方式將需要操作的控件放到對象庫中當然也可以用description方法描述對象。

  Process:以動作驅動的方式將page中的對象按照一個測試用例的操作過程組裝起來,這里的動作驅動即為一些具體的方法(目前在browser+method有很多現成的方法可以拿來用),這個就與我們在QTP中寫的具體腳本類似,也是按照測試用例的操作過程將對象庫中的對象進行操作,只不過前者不是具體的執行腳本,不包含執行用例時需要的一些數據參數,而后者可以直接用來執行腳本。

  testrun.rb+ excel文件:是netbean框架中用來執行用例的文件,在testrun.rb中調用process并將excel 中的參數傳入在testrun.rb中執行。這里的excel 有點類似與QTP中的datatable ,可以在里面放入執行的各種參數。

  2.從寫腳本的角度看。當我們需要對某個控件進行操作的時候,例如對一個“我的淘寶”按鈕進行點擊的時候,之前我們用QTP 的時候會先把”我的淘寶”控件先抓進對象庫,然后用browser(**).page(**).link(“我的淘寶”).click 實現點擊,即從控件所在的瀏覽器browser到頁面page再到控件link然后執行click,這樣一個從大范圍逐漸到小范圍最后定位到控件進行具體動作這樣一個過程,而現在如果用Ruby的話,其實也一樣的:也是先確定 @ie = Watir::IE.attach(:url,/ daily.taobao.net/),然后在ie上定位link:@ie. link(:class,’mytaobao-entra’),最后執行click ,完整的為:

  @ie = Watir::IE.attach(:url,/daily.taobao.net/)

  @ie.link(:class,’mytaobao-entra’).click

  從上面可以發現,Ruby中用watir封裝了很多的方法,可以直接用web對象的屬性來定位控件,這個和在QTP中用的描述性編程非常相似,在QTP中我們除了直接抓取對象外也會利用description對象的屬性來描述一個對象,而利用的屬性也與Ruby里面出現的id,class,name等。

  3. 利用dom思想。Dom(Document Object Model文檔對象模型) 以樹形的層次結構組織的節點或信息片斷的集合,因此可以利用頁面對象之間的“位置”關系來訪問到需要的(結點)對象。同時dom又是與瀏覽器,平臺,語言無關的接口,使得你可以訪問。因此,無論是QTP還是Ruby都能通過dom訪問web頁面其他的標準組件。

  當然dom不是ruby中訪問對象的唯一方法,在ruby中應用最多的還是watir。平時我們在利用IE tool bar查看頁面 HTML文件的時候,會有各種的html tag,在寫ruby腳本的時候我們會關心這些tag 的watir方法是什么,怎么用。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97