Mercury Interactive’s icon-based tool for testing complex
Web environments (Java applets, Flash, etc.). LoadRunner can
run Vuser scripts created using QuickTest Professional. Note
that this product must be purchased separately.
在LR中運行QTP腳本的注意事項
1、QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"選項要打勾;
2、在QTP腳本中設(shè)置事務(wù),Services.StartTransaction "start"與Services.EndTransaction "start"
把需要在LR運行的腳本放在此事務(wù)里面;
3、在LR中運行時選擇QTP腳本,文件擴展名為.usr的;
4、在LR中運行QTP腳本時,要把QTP關(guān)閉;
5、只能在LR的Controller中運行;不能在Virtual User Generator中打開及回放;
6、LR要使用global的license,單單WEB的license不行,會報錯;
7、Controller運行中,只能執(zhí)行1個虛擬用戶,大于1個以上的虛擬用戶會提示錯誤;并發(fā)會報錯……
如果需要運行多個用戶,只能在QTP腳本里設(shè)置循環(huán)及參數(shù)化來解決;
-----------------------------------------------------------------------------------------------------------------------------------------------------------
為什么用
LoadRunner做
功能測試自動化?
1、lr是模擬瀏覽器給服務(wù)器直接發(fā)送請求,而QTP是模擬鼠標(biāo)鍵盤的操作。
故:LR腳本可以做驗證流程的功能自動化,但是驗證的大多是后臺數(shù)據(jù)處理流程的正確性,QTP可以驗證流程也可以驗證UI。
2、LR錄制腳本是類C語言,QTP是vbscript。
故:你若對c了如指掌自然也可用lr加入復(fù)雜的檢查點完成功能自動化,QTP由于使用vbscript是windows嫡系子孫,調(diào)用一些wshell dom等可以很好的操作UI。
3、最后一條:LR腳本比QTP腳本容易維護。
4、qtp是基于對象庫的,而LR是基于協(xié)議的,前者是屬于黑盒測試范疇,前臺進行處理,而后者是基于協(xié)議,是后臺進行處理的。如果非得用LR也未嘗不可,只是舍近求遠,畢竟QTP是專業(yè)的自動化工具。另外做功能測試不可能不關(guān)注UI界面。
5、QTP的檢查點類型比較多,如下:
QuickTest Professional提供了下列類型的檢查點:
|
檢查點類型
|
描述
|
用法示例
|
標(biāo)準(zhǔn)檢查點 |
檢查對象的屬性值 |
檢查是否選中某單選按鈕 |
圖像檢查點 |
檢查圖像的屬性值 |
檢查圖像源文件是否正確 |
表檢查點 |
檢查表中的信息 |
檢查表單元格中的值是否正確 |
頁面檢查點 |
檢查網(wǎng)頁的特性 |
檢查加載網(wǎng)頁所需的時間,或者檢查網(wǎng)頁是否包含中斷鏈接 |
文本/ 文本區(qū)域檢查點 |
檢查文本字符串是否顯示在網(wǎng)頁或應(yīng)用程序窗口中的適當(dāng)位置 |
檢查預(yù)期的文本字符串是否顯示在網(wǎng)頁或?qū)υ捒蛏系念A(yù)期位置 |
位圖檢查點 |
將網(wǎng)頁或應(yīng)用程序的某個區(qū)域捕獲為位圖后對其進行檢查 |
檢查網(wǎng)頁或網(wǎng)頁的任何部分是否能按預(yù)期顯示 |
數(shù)據(jù)庫檢查點 |
檢查應(yīng)用程序或網(wǎng)站所訪問的數(shù)據(jù)庫內(nèi)容 |
檢查數(shù)據(jù)庫查詢中的值是否正確 |
可訪問性檢查點 |
對網(wǎng)站區(qū)域進行識別,以檢查是否符合508部分 |
檢查網(wǎng)頁上的圖像是否包含ALT屬性(該屬性是W3C Web內(nèi)容可訪問性規(guī)則所要求的) |
XML檢查點 |
檢查XML文檔的數(shù)據(jù)內(nèi)容 |
注意:XML文件檢查點用于檢查特定的XML文件;XML應(yīng)用程序檢查點用于檢查網(wǎng)頁中的XML文檔 |
LR中運行QTP腳本
1、運行準(zhǔn)備:
1)勾選QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"
2)錄制需要在lr中運行的QTP腳本,并且在QTP腳本中設(shè)置事務(wù),Services.StartTransaction "start"與Services.EndTransaction "start"
2、運行QTP腳本
在LR中運行時選擇QTP腳本,為QTP腳本存放目錄下文件擴展名為.usr的文件。
注:LR中運行QTP腳本時,只能有一個Vuser,否則將報錯:
The load generator is currently running the maximum number of Vusers of this type
3、可能報錯:
1)如果LR運行時報"LR沒有相關(guān)的license"錯,可以在LR里增加一個1000個的global license,注冊號碼為:AEACFSJI-YASEKJJKEAHJD-BCLBR
2)運行測試時,需要先將QTP關(guān)閉;
3)LR執(zhí)行大于1個以上的虛擬用戶時會提示:The load generator is currently running the maximum number of Vusers of this type,
所以,QTP腳本在LR中運行一臺計算機只能運行一個GUI Vuser,如果要同時運行多個用戶,可以QTP腳本里設(shè)置循環(huán),循環(huán)可通過QTP的datatable設(shè)置需要運行的用戶,或是在QTP里通過FOR,NEXT語句來設(shè)置次數(shù)。或是在controller里同時開啟多個相同的腳本,然后分散在不同的電腦上運行,注意:各終端一定要開啟LR的LR Agent Process及QTP的TOOS-Remote Agent代理服務(wù)。
注1:設(shè)計供LR運行的測試用例應(yīng)遵守以下規(guī)則:
LR不能運行嵌套操循環(huán);
請勿包括對外部操作或其他外部資源(如外部數(shù)據(jù)表文件,環(huán)境變量文件,共享對象庫等)的引用。
注2:設(shè)計供業(yè)務(wù)流程監(jiān)視器使用的測試時,應(yīng)遵守以下規(guī)則:
對應(yīng)的StartTransaction和EndTransaction語句必然包含在同一個操作內(nèi)。
業(yè)務(wù)流程監(jiān)視器不使用QTP的setting-run中的循環(huán)設(shè)置,而是使用數(shù)據(jù)表中文件中的行數(shù)。
注3:在LR的controll中,Run-time Settings中只有常規(guī)類別與子類別有效,回放選項不起任何作用。
如以下腳本:
Services.StartTransaction "start"
For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
Window("Tencent Traveler").WinEdit("Edit").SetSelection 0,19
Window("Tencent Traveler").WinEdit("Edit").Set "
Window("Tencent Traveler").WinEdit("Edit").Type micReturn
Window("Window").Page("產(chǎn)品介紹-建站易").Link("模板倉庫").Click
Window("Window").Page("模板倉庫-建站易").Link("在線幫助").Click
Window("Window").Page("在線幫助-建站易").Link("關(guān)于我們").Click
datatable.GetSheet("Action1").setnextrow
Next
Services.EndTransaction "start" |