軟件測試工具QTP經驗總結

發表于:2010-11-04來源:作者:點擊數: 標簽:軟件測試工具qtpQTP經驗總結
軟件測試工具QTP經驗總結 Mercury QuickTest 企業級 自動化測試 工具! 目前已經被惠普收購,正式名字為HP QuickTest Professional software ,最新的版本為HP QuickTest Professional 10.0. HP QuickTest Professional 提供符合所有主要應用軟件環境的 功能

軟件測試工具QTP經驗總結

Mercury QuickTest 企業級自動化測試工具!   目前已經被惠普收購,正式名字為HP QuickTest Professional software ,最新的版本為HP QuickTest Professional 10.0.   HP QuickTest Professional 提供符合所有主要應用軟件環境的功能測試回歸測試的自動化。采用關鍵字驅動的理念已簡化測試用例的創建和維護。它讓用戶可以直接錄制屏幕上的操作流程,自動生成功能測試或者回歸測試用例。專業的測試者也可以通過提供的內置腳本和調試環境來取得對測試和對象屬性的完全控制。
1、拆分語句split
例:取得當前日期后拆分
riqi=date()
    my=split(riqi,"-")
    riqi=my(1)&"月"&my(2)&"日"
    datatable("riqi",DtGlobalSheet)=riqi
    本地表:DataTable("a", dtLocalSheet)
riqi= year(date)& "-" & Right("0"& month(date),2) & "-"&Right("0"&   Day(Date),2)

2、取得表格中某行某列的值GetCellData
例:飛機票取票價
shuA=Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("New York to Zurich").GetCellData(3,3)


3、取距某年某月某日的天數datediff
例:計算距2008-08-08奧運天數
datediff("d",now,"2008-8-8")


4、描述性編程text:=
例:取得某頁面上某文字的鏈接
Browser("").Page("").Link("text:=娛樂").Click
     或
     neirong="娛樂"
     Browser("").Page("").Link("text:="&neirong).Click


5、網頁中HTML編輯器的錄制
功能:驗證126郵箱的發信功能正確
操作步驟:
      a.錄制腳本,動作包括整個發信的過程。
      b.修改腳本,在輸入信件主題代碼后加wait 10語句
       c.回放腳本,觀察在郵件正文中輸入的內容,回放時QTP是否寫入
      d.重新修改腳本,保證回放時QTP在郵件正文中寫入內容

英文解決方案:
    Browser("網易126免費郵--你的專業電子郵局").Page("網易電子郵箱 - xueqinzhaoqing@126.co").Frame("indexFrame").WebEdit("subject").Click
    wait 1
     Setting.WebPackage( "ReplayType")=2      '配置使用瀏覽器事件或鼠標運行鼠標操作的'方式.1 - 使用瀏覽器事件運行鼠標操作,2 - 使用鼠標運行鼠標操作。
     Set ōbj=createobject("wscrīpt.shell")
     obj.sendkeys "{TAB}"
     wait 2
     obj.sendkeys "abc1111"
     wait 1
     Setting.WebPackage( "ReplayType")=1
中文解決方案

strCopy = "軟件測試."
Set ōbjIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", strCopy
objIE.Quit

wait 1
Setting.WebPackage( "ReplayType")=2
Set ōbj=createobject("wscrīpt.shell")
obj.sendkeys "{TAB}"
wait 2
obj.sendkeys "^v"
wait 1
Setting.WebPackage( "ReplayType")=1

6.使用Multi Test Manager添加文件時可以直接往里拖的哦。

7.函數:新建記事本,改名為public.vbs例:
   function ZHIRSS
ZHIRSS="RSS行業資訊分類維護"
end function
使用語句executefile "d:\zhaopin\case\denglu.vbs"或設置QTP test/settings/resources/+函數目錄

8.設置動作循環:右擊/actiong call properties/run on all rows

9.設置動作允許被調用:右擊/action properties/general/reusable action打勾

10.QTP與MTM連接:Tools/option/run/allow other mercury products to run...

11.插入已存在的動作1)insert/call to copy of action...復制可修改
                   2)insert/call to existing of action...復制不可修改

12.QTP報告自動跳出設置:Options>Run>View results when run session ends

13.判斷表格是否存在:
If Browser("數商3.0后臺管理系統").Page("Page").Frame("main_5").WebTable("標題").Exist then
reporter.ReportEvent 0,"pass","系統顯示了所有的資訊列表!"
else
reporter.ReportEvent 1,"fail","系統沒有顯示資訊列表!"
end if

14.獲取表格行數:Browser("數商3.0后臺管理系統").Page("Page").Frame("main_5").WebTable("標題").RowCount

15.注釋腳本存在位置:qtp/dat/ActionTemplate.mst

16取本地文件名稱Function ShowFileList(folderspec)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("scrīpting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   For Each f1 in fc
      s = s & f1.name
      s = s &   " "
   Next
   ShowFileList = s
End Function
wenjian=ShowFileList("D:\下載\本地下載1\")

17.取本地文件刪除:del= DeleFile("D:\下載\本地下載1\")
Function DeleFile(folderspec)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("scrīpting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   For Each f1 in fc
         f1.delete
   Next
End Function

18.sousuo2=Browser("Browser").Page("Page_4").Check (CheckPoint("2007-11-08 14:21"))
If (sousuo2)eqv(true) Then
    reporter.ReportEvent 0,"",""
else
   reporter.ReportEvent 1,"",""
End If

19.取參數化數據的行數,只在某幾行進執行某些語句
row=datatable.GetSheet(3).getcurrentrow
If row = 3 Or row = 4 Then

20.單選框置灰zhihui=Browser("下載中心--新增下載文件").Page("下載中心--新增下載文件_4").WebRadioGroup("downloadType").GetROProperty("disabled")
If zhihui=1 Then
End If

29.取樹結構
Set Desc=descrīption.create
Desc("miclearcase/" target="_blank" >cclass").value="WebTable"
Set List=Browser("Browser").Page("Page").Frame("main").ChildObjects(Desc)
yuqi=List(0).GetROProperty("innertext")
msgbox yuqi
yuqi=split(yuqi," ")
msgbox yuqi(1)

30.關閉所有IE
SystemUtil.CloseProcessByName("iexplore.exe")

31.創建action template.
    當希望在每一個新建action時都增加一些頭部說明,比如作者、創建日期、說明等,用action template
    來實現最簡單快捷。
    方法:用記事本等文本編輯器,輸入如下類似的內容:
          'Company: xxxx
          'Author: xxx
          'Product: xxx
          'Date: xx
         然后將文件保存為ActionTemplate.mst,并存放到QTP安裝目錄下的dat目錄。

32.啟動IE的語句:SystemUtil.Run "iexplore.exe", "http://www.***.com"
   關閉IE或其他程序的語句:SystemUtil.CloseProcessByName "app.exe"
     or SystemUtil.CloseProcessByWndTitle "Some Title"

33.獲取圖片的名稱
ObjectName = Browser(…).Page(…).Image("Find").GetProperty("Name")

34.檢查某個對象是否存在,如果存在彈出對話框說明對象存在。
If Browser("Browser").Page("Page").Applet("login.html").JavaEdit("username").Exist Then
MsgBox("The object exists.")
End if

35.同步點
Browser("數商3.0制作平臺").Dialog("Microsoft Internet Explorer").WaitProperty "visible", True, 120000
設置test/test settings/object synchronizationg timeout 一致

36.視圖框顯示為亂碼時:調整原頁面編碼,在QTP/tools/change active screen

37.添加附件:
   Browser("**").Page("**").WebFile("filePath").Click
Browser("**").Dialog("**").WinEdit("文件名(N):").Set "D:\**.jpg"
Browser("下載中心--新增下載文件").Dialog("選擇文件").WinButton("打開(O)").Click
添加相應的對象


38.在圖片上右擊添加:tools/web event recording configuration/custom settings
webedit/event/add/onblur,onchange,onfocus,onpropertychan,onsubmit
webdlement/event/add/onclick,onmousedown,onmouseup/listen always

39.數據執行保護
方法一、右擊我的電腦/高級/性能/設置/數據執行保護/為除下列選定程序之外的所有程序和服務啟用DEP/添加被保護的程序。
方法二、C:/BOOT.INT修改noexecute=alwaysoff

40.在圖片上右擊添加:tools/web event recording configuration/custom settings
webedit/event/add/onblur,onchange,onfocus,onpropertychan,onsubmit
webdlement/event/add/onclick,onmousedown,onmouseup/listen always

41.去掉前后空格
If trim(mingcheng)=trim(yuqi) Then

42.分類樹問題解決
Set Desc=descrīption.create
Desc("micclass").value="WebTable"
Set List=Browser("Browser").Page("Page").Frame("main").ChildObjects(Desc)
yuqi=List(0).GetROProperty("innertext")
msgbox yuqi
yuqi=split(yuqi," ")
msgbox yuqi(1)


43.引用自定義環境變量
Environment.LoadFromFile "D:\詢價\case\環境\huiyuan.xml"

44. 環境變量有2種,一種是QTP的內置變量,一種是用戶自定義的變量。內置變量是可以直接就可以用,自定義環境變量需要在菜單中選擇“文件”——> “設置”——>“環境”,在變量類型中選擇“用戶自定義”,然后進行添加,可以對添加的變量全部導出,導出的文件為.xml格式的文檔。既然可以導 出,那么必然可以導入.xml文件,你可以在該對話框中的選中“從外部文件導入”,然后添加其文件路徑即可。(當然這些操作都可以直接使用腳本來實現, 如:Environment.LoadFromFile(“FileName”))
例如:在桌面建立一個Var.xml,如下
-<Environment>    //以這個開始的內部都是定義環境變量,直到以</Environment>結束
- <Variable>                           // 變量定義起始標識
                 <Name>aa</Name>               // 變量名稱
                 <Value>11</Value>               // 變量值
        </Variable>                            // 變量定義結束標識
- <Variable>
                 <Name>bb</Name>
                 <Value>22</Value>
        </Variable>
- <Variable>
                 <Name>cc</Name>
                 <Value>33</Value>
              </Variable>
</Environment>
然后導入本測試的環境變量文件中,在專家視圖里編寫下面的腳本代碼:
Dim aParam3
aParam3=Environment.Value(“aa”)          // 調用環境變量
msgbox aParam3
運行測試,會輸出”11”

45.在HTML編輯器中寫入數據
用低水平錄制寫入編輯器過程,增加編輯部器前的對象,加入click事件,再用TAB
例如:
Browser("廣告管理").Page("廣告管理").WebEdit("descrīption").Click
Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type mictab
Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type "aaa"

46.Browser("creationtime:=1").close
   兩個頁面title相同無法識別時使用描述必編輯
    Browser("creationtime:=1").page(title:=****).WebEdit("name:=***").Set "***"
    或Browser("creationtime:=1").page(index:=1).WebEdit("index:=0").Set "***"

47.場景恢復:
   當某些提示框會在不定期時有提示時,如果自動點擊確定或某些按鈕
   1、tools/recovery scenaril manager,制作相應的提示框和要點擊的按鈕,并保存
   2、test/settings/recovery,添加剛保存的.qrs

48.輸入驗證碼,先提示一個輸入框,在輸入框內輸入驗證碼,點擊[確定],把輸入的驗證碼框
   Dim a
a = InputBox("輸入名字")

49.對象庫中對象名稱不分為_2,_3...設置:tool/options/web/page/fram options/
     crate a new page test object for為different test object descrīptons
     crest a new frame test object for為different test object descrīptions

50.驗證測試輸入框輸入的最大允許字數功能的正確

QTP腳本代碼中編寫
Set aa=Browser("Browser").Page("Page").Frame("main").WebEdit("PayTypeName")
if konglen(aa,20) eqv true then
reporter.ReportEvent 0,"添加支付方式,支付方式輸入框允許輸入的最大字符功能正確",""
else
reporter.ReportEvent 1,"添加支付方式,支付方式輸入框允許輸入的最大字符功能錯誤",""
end if

此函數的功能為:驗證測試輸入框輸入的最大允許字數功能的正確,函數可寫在public.vbs中
Function konglen(duixiang,guifanshu)
duixiang.Click
wait 1
Setting.WebPackage( "ReplayType")=2
Set ōbj=createobject("wscrīpt.shell")
i=0
ōld="a"
xin="b"
while old<>xin
ōld=duixiang.GetROProperty("value")
i=i+1
wait 0,20
obj.sendkeys "1"
wait 0,20
xin=duixiang.GetROProperty("value")
wend
'msgbox i
If i-1=guifanshu Then
konglen=true
else
konglen=false
End If
     Setting.WebPackage( "ReplayType")=1
End Function

51.超時設置:Setting("DefaultTimeout") =1000000

52.共享對象庫:Set App = CreateObject("QuickTest.Application")
App.Test.Settings.Resources.ObjectRepositoryPath = "path"

53.取顏色   browser("b").page("p").Object.currentStyle“:.color
54.顯示行號設置:Tools- --> Editor Options...-->General-->Show line number,


55.不同數據庫檢查點手動SQL寫法
QTP插入數據庫檢查點,手動指定SQL語句的寫法。
一、SQL Server格式(本地無需安裝SQL Server)
connectionstring(連接字符串):
1.本地沒有創建數據源的方式
DRIVER=SQL Server;SERVER=數據庫IP地址;UID=用戶名;PWD=密碼;APP=Microsoft Office 2003;WSID=本地主機名;DATABASE=數據庫名

實例:
DRIVER=SQL Server;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJHLJUN;DATABASE=dcwork

2.本地已創建數據源的方式
DSN=數據源名稱;UID=用戶名;PWD=密碼;APP=Microsoft Office 2003;WSID=數據庫的主機名;DATABASE=數據庫名

實例:
DSN=LocalServer;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJDCWORKTEST;DATABASE=dcwork

3.SQL語句實例(從數據庫表HR_LANGUAGE_TYPE中,查詢字段語言名稱LANGUAGE_NAME,條件語言名稱=中文,按語言名稱升序排序結果)
source(SQL語句):
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM dcwork.dbo.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME


二、DB2格式:(本地至少安裝DB2 Run-Time Client Lite)
connectionstring(連接字符串):
1.本地沒有創建數據源的方式
DRIVER={IBM DB2 ODBC DRIVER};UID=用戶名;PWD=密碼;MODE=SHARE;DBALIAS=數據庫名;

實例:
DRIVER={IBM DB2 ODBC DRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;

2.本地已創建數據源的方式
DSN=數據源名稱;UID=用戶名;PWD=密碼;MODE=SHARE;DBALIAS=DCWORK;

實例:
DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;

3.SQL語句實例
source:SQL語句
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DB2ADMIN.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME


三、Oracle格式:(本地需要安裝Oracle ODBC DRIVER)
connectionstring(連接字符串):
1.本地沒有創建數據源的方式
DRIVER={Oracle in OraHome92};SERVER=數據庫服務名;UID=用戶名;PWD=密碼;DBQ=數據庫名;DBA=W;APA=T;EXC=F;XSM= Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

實例:
DRIVER={Oracle in OraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

 

2.本地已創建數據源的方式
DSN =數據源名稱;UID=用戶名;PWD=密碼;DBQ=數據庫名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL= 10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

實例:
DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

3.SQL語句實例
source:SQL語句
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DCWORK.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME

 

四, mysql
Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.100;DATABASE=wp_blog;user id=zzz ; password=123456"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )
sql = "select * from `wp_blog`.`blg_webcategory` limit 0, 5000;"
Rs.open sql,conn,1,3
If (not Rs.eof) then
Rs.MoveFirst
MsgBox Rs(0)
MsgBox Rs(1)
MsgBox Rs(2)
MsgBox Rs(3)
end if

Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing

五. access

Set Conn = CreateObject("ADODB.Connection" )
str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/db1.mdb"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )


56.*.xml
Environment.LoadFromFile "D:\新建文件夾\a.xml"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set Environment("HuiYuanB")

57、類似時間控件,不能手到輸入的文本檔
   1)手工添加對象,
   2).object.value="2008-4-12"

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

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