QTP使用教程
准備工作:
QTP11.5安裝教程:http://www.iquicktest.com/qtp-uft-11-5-download.html
注: QuickTest Pro(QTP)11.5后更名為UnifiedFunctional Testing(UFT)
1、安裝后打開QTP,勾選Web add-in,進入QTP后File-New-Test。
2、選擇File菜單下New-Test。
選擇GUI Test,輸入Name“第一個腳本”,Create。
3、打開IE,進入百度首頁www.baidu.com。
4、使用Tools菜單下的ObjectSpy。
5、點擊手型按鈕,點擊后鼠標變為手型,再點擊瀏覽器上的“百度一下”按鈕。
6、正常識別結果如圖:
未能識別結果如圖:
如果未能識別對象:
1、檢查QTP版本、瀏覽器版本、操作系統版本,QTP安裝目錄“\help”下的QTP_PAM.pdf或UFT_PAM.pdf文件提供了支持的操作系統、插件版本、web-addin支持的瀏覽器及版本、支持的其他HP工具及版本等信息。
1.1、例如測試WEB時,可以從這個PDF文檔里得出支持的組合如XPsp3+QTP11+IE8,Win7+UFT11.5+IE9,UFT11.53+Chrome30,不支持組合如QTP11+FireFox27。
1.2、QTP11官方提供了IE9補丁,安裝后可以識別IE9對象。
1.3、64位系統下的IE也分32位和64位,例如QTP11測試64位IE,還需要64位補丁。
QTP11補丁:http://blog.csdn.net/zzxxbb112/article/details/6968418
QTP11.5補丁:http://www.iquicktest.com/uft-qtp11-5-patches.html
2、檢查IE是否加載了BHOmanagerClass。IE設置-Internet選項-程序-管理加載項-所有加載項。如果BHOmanager Class是未啟用狀態,改為啟用。
如果所有加載項中沒有BHOmanager Class,打開開始菜單-HP Software-HP Unified Functional Testing-Tools-AdditionalInstallation Requirements,勾選“配置Internet Explorer 設置”,運行。
2.1、FireFox和Chrome同樣需要檢查插件是否安裝並啟用。
FireFox附加組件-擴展中應有Unified Functional Testing Extension。
Chrome工具-擴展程序中應有Unified Functional Testing Agent。
3、以管理員身份運行QTP。
4、如果仍不能識別,嘗試關閉其他程序、關閉殺毒軟件,先打開QTP后打開IE再識別。
第一個腳本:
1、打開QTP,加載Web add-in。
2、打開IE,進入百度首頁www.baidu.com
3、打開QTP本地對象庫,打開Resources菜單下的ObjectRepository
4、添加對象到本地對象庫。
Object菜單下的Add Object to Local
點擊百度輸入文本框。
點擊OK后,就出現在對象庫了。
選中wd對象,使用View菜單下的Highlight in Application,如果瀏覽器中的輸入框閃爍說明QTP能正確定位對象。
以相同步驟添加“百度一下”按鈕
5、刷新Toolbox以顯示新添加的對象。
刷新后界面
6、拖拽wd對象到右側編輯區(或雙擊wd對象):
在Set后輸入參數:
7、拖拽“百度一下”對象到編輯區(或雙擊對象)
8、運行腳本。
Run菜單下的Run。
點擊Run
運行后結果:
代碼結構:
父對象Class(“父對象Name”).子對象Class(“子對象Name”).方法 [參數]
實例:對象庫如何工作:
1、添加“百度一下”按鈕到對象庫(參考“第一個腳本”1-4步),使用Highlight可以定位對象。如圖,“百度一下”對象的name屬性是“百度一下”。
2、修改“百度一下”對象的name屬性為“百度一下修改”,並將“Enable Smart Identification”的Value改為False。再使用Highlight,QTP提示錯誤“不能在應用中找到選擇的對象”。
3、打開IE的開發者人員工具(F12),如圖,使用鼠標形按鈕選擇“百度一下”按鈕。選擇后HTML代碼定位到相應元素。修改“百度一下”按鈕元素的value值為“百度一下修改”。
修改前代碼:
<inputclass=”bg s_btn” id=”su”οnmοuseοut=”this.className=’bg s_btn‘“οnmοusedοwn=”this.className=’bg s_btn s_btn_h‘“type=”submit”value=”百度一下”/>
修改后代碼:
<inputclass=”bg s_btn” id=”su”οnmοuseοut=”this.className=’bg s_btn‘“οnmοusedοwn=”this.className=’bg s_btn s_btn_h‘“type=”submit”value=”百度一下修改”/>
修改后頁面:
修改后在對象庫中選擇“百度一下”對象使用Highlight,QTP又能正確定位了。
4、修改“百度一下”按鈕位置,如圖:
修改后在對象庫中選擇“百度一下”對象使用Highlight,能正確定位。
5、復制“百度一下”按鈕代碼,在頁面上再添加一個按鈕,修改后如圖
修改后在對象庫中選擇“百度一下”對象使用Highlight,能正確定位。QTP提示錯誤:有多個符合描述的對象。
添加界面上兩個“百度一下”按鈕到對象庫,現在對象庫里有三個“百度一下”按鈕對象,對比屬性,只有ordinal identifier部分不一樣。
界面只有一個按鈕時添加的對象Type,Value值是None
界面有兩個個按鈕時添加的對象Type,Value值分別是”index,1”和”index,2”
對象庫工作模型:
1、添加對象時:
1.1、QTP Spy被測軟件被選中的對象,獲取對象的屬性集合和對象類型。
1.2、按照Object Identification中相應對象類型的設置,篩選屬性集合后存入對象庫。
1.3、打開Tools菜單下Object Identification,如圖,以WebButton為例。
2、運行時:
2.1、如運行到第二行。
QTP讀取對象庫中Class是WebButton,name是“百度一下”的對象,獲取屬性集合(TO)。
2.2、獲取被測軟件上的對象集合。
2.3、獲取第一個對象的屬性集合(RO)。對比RO和TO。
2.4、如果屬性值不一致,獲取第二個WebButton對象的屬性集合后對比。如果屬性值一致,則觸發WebButton對象的方法。
關於錄制:
使用錄制后可以看出錄制自動完成了添加對象到對象庫和在編輯區輸入腳本(對象、方法和參數)的過程。但錄制經常有步驟缺失的問題,比如實際點擊某個頁面對象A但錄制結束后對象庫中沒有對象A,編輯區也沒有相關代碼。不補全腳本就Run就會報錯了。
使用QTP幫助文檔:
在編輯區選中Browser(“”).Page(“”).WebEdit(“”)下的Set 按F1,幫助文檔會自動定位到Web> WebEdit Object > Methods > Set Method,幫助文檔提供了語法、參數說明、返回類型和例子,查看Example可以看到代碼示例。
點擊WebEdit Object,可以看到WebEdit對象的說明、方法和屬性,
檢查點
1、新建一個腳本,在百度知道(http://zhidao.baidu.com/)頁添加關鍵字輸入框和搜索答案對象,添加后如圖:
輸入以下腳本:
2、執行后打開對象庫,選擇”word”對象使用Highlightin Application,在搜索后的百度頁面仍能定位。
3、使用Object Spy查看搜索后頁面的文本框,查看value屬性,值為“QTP”。刪除文本框內容后使用Object Spy,查看value屬性,值為空,如圖。
所以這里可以用對象“word”的value屬性值判斷功能是否正確。
4、修改腳本如下,修改后Run。
5、運行后打開View菜單下的Last RunResults。
如圖, Property “value” has the expected value:”QTP”.對象“word”的value屬性的值是期望的“QTP”,檢查點Pass。
參數化
1、在Global表中輸入多行數據,並修改腳本如下。
2、打開File菜單下的Settings,設置Run如下。
3、Run腳本,可以看到執行過程中依次搜索了Global表中的數據,打開Last Run Results,可以每次迭代的結果,如圖,每次迭代檢查點都有記錄。
4、選中Global表中有數據的行,在右鍵菜單中選擇Delete刪除行。
注意,如果刪除了表格中的內容——比如用鍵盤的退格和刪除,而有黑線的行仍是三行(如圖),還是會迭代三次。
5、在Action1表中輸入多行數據,並修改腳本如下,注意腳本和使用Global表時不同。
6、打開View菜單下的TestFlow。
右鍵Action1,在菜單中選擇Action Call Properties。
設置如下。
7、Run腳本,可以看到執行過程中依次搜索了Action1表中的數據,打開Last Run Results可以查看結果。
參數化迭代流程圖
A:一個腳本可以有多個Action。
B:File-Settings-Run下的設置控制腳本的迭代。
C:Action CallProperties-Run下的設置控制Action的迭代。
一個迭代實例
1、新建GUI Test,選擇Design菜單下的Call toNew Action
點擊“OK”后添加了一個action。
2、在Global表添加兩行數據“Global第1行”和“Global第2行”;Action1表下添加兩行數據“Action1第1行”,“Action1第2行”;Action2表下添加兩行數據“Action2第1行”,“Action2第2行”。
3、修改File-Settings-Run設置為Run on allrows。修改Action1和Action2的Call Properties-Run設置為Run on all rows。
4、在Action1和Action2的編輯區輸入下圖腳本。
5、Run腳本,可以看到彈窗出現16次,依次如下:
Global第1行
Action1第1行
Global第1行
Action1第2行
Global第1行
Action2第1行
Global第1行
Action2第2行
Global第2行
Action1第1行
Global第2行
Action1第2行
Global第2行
Action2第1行
Global第2行
Action2第2行
1 </div> 2 </div> 3 </article> 4 5 <div class="article-bar-bottom"> 6 <div class="tags-box artic-tag-box"> 7 <span class="label">文章標簽:</span> 8 <a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=QTP&t=blog" target="_blank">QTP </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=UFT&t=blog" target="_blank">UFT </a><a class="tag-link" href="http://so.csdn.net/so/search/s.do?q=自動化測試工具&t=blog" target="_blank">自動化測試工具 </a> 9 </div> 10 </div> 11 12 <!-- !empty($pre_next_article[0]) --> 13 </div>