QTP自動化測試權威指南(4)

發表于:2015-11-25來源:uml.org.cn作者:不詳點擊數: 標簽:QTP自動化測試
對象庫的不足 作者認為QTP 8.x的對象庫有一些不足: 1)對象庫管理器不允許批量更新對象屬性到腳本。 2) 其他對象下面的對象不能被刪除或復制。 3)當一個

  對象庫的不足

  作者認為QTP 8.x的對象庫有一些不足:

  1)對象庫管理器不允許批量更新對象屬性到腳本。

  2) 其他對象下面的對象不能被刪除或復制。

  3)當一個框體(frame)被加入到了被測的應用程序中時,那么整個測試腳本都要重新錄制。

  4)當重新錄制一個頁面或者窗體時,完全一樣的對象經常會重復添加,因此,會創建很多相同的頁面或窗體:Page_1, Page_2諸如此類。有時候這個問題可以通過更改Web設置來解決,

  打開Tools->Options…Web(Tab)->Page/Frame Options…然后更改設置如圖3-12所示

  圖3-12頁面和框體選項

  小提示:以上所述的大多數的不足在 QTP9.x中已經得到解決

  第九章庫函數文件

  庫函數文件是包含VBScript腳本的純文本格式文件,用來聲明方法,變量,類等。庫函數文件可以用任意后綴名,最常用的是VBS或者TXT。庫函數文件可以用來組織存放不同功能的代碼。它提供了在不同的QTP腳本中分享代碼的方法。下面兩節介紹加載庫函數文件的兩種方法。

  關聯一個全局庫函數文件

  通過這種方式庫函數文件的同一實例可以被當前測試的所有Action共享和訪問。如圖9-1,打開 Test->Settings… ->Resources (標簽頁),添加庫函數文件。

  圖9-1 Test Resource配置

  小提示1:多個庫函數文件加載順序是從下到上。如果有兩個庫函數文件包含相同函數,那么會使用更靠近頂部的。

  小提示2:如果庫函數文件B依賴庫函數文件A中的內容,庫函數文件A應在列表中更靠近底部。

  小提示3:QTP使用全路徑名存放庫函數文件。作為推薦選項,我們可以使用文件相對路徑,如"..\test.vbs"

  運行時動態加載本地庫函數文件

  QTP提供ExecuteFile方法可以在運行時動態加載庫函數文件。使用這種方法時庫函數文件及其內容只能在ExecuteFile執行的那個Action中可見。下面是一些例子:

'通過絕對路徑加載庫函數文件
ExecuteFile "C:\Test.vbs"

'通過相對路徑加載庫函數文件
currentTestDir = Environment("TestDir")
vbsFilePath = currentTestDir& "\..\..\CommonLibs\Test.vbs"
ExecuteFilevbsFilePath

'從Quality Center加載庫
ExecuteFile "[QC-ATTACH];;Subject\CommonLibs;;\Test.vbs"

  小提示:如果ActionA和ActionB都通過ExecuteFile加載了test.vbs,同時ActionA調用ActionB,要注意他們對于所有test.vbs的變量和方法都只使用自己的副本和單獨實例。

  運行時動態加載全局庫函數文件

  如之前描述,在一個Action中直接使用 ExectueFile方法只能使庫函數文件在當前Action可見。但是每個QTP測試腳本可能需要一組全局庫,使得對其中所有的Action都可用。取代直接在Action中使用ExecuteFile來加載庫的方法,我們在某個全局庫中加載庫函數文件,那么它將對所有Action可用。

'C: \LibLoader.vbs
Public Function ExecuteFileGlobal (ByValfileName)
ExecuteFilefileName
End Function

  我們可以將以上代碼保存在一個VBS文件中并跟測試關聯,使得在任意Action中都能通過調用ExecuteFileGlobal方法來加載文件。這樣加載的文件在所有Action中都可以使用。

'在全局區域加載文件
ExecuteFileGlobal "C:\Test.vbs"

  但是當多個Action反復調用ExecuteFileGlobal會使某個庫函數文件加載多次,這樣每次都會破壞當前庫函數文件中的全局變量的狀態。

  這個問題可用使用下面的方法解決。我們給 ExecuteFileGlobal方法增加一個加載標記,當它為False時庫函數文件就不會加載??梢酝ㄟ^給所有使用 ExecuteFileGlobal方法加載的庫函數文件創建一個全局字典來實現。庫函數文件的路徑用來判斷這個庫是否被加載過。

原文轉自:http://www.uml.org.cn/Test/201307084.asp

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