軟件測(cè)試工具QTP經(jīng)驗(yàn)總結(jié)
Mercury QuickTest 企業(yè)級(jí)自動(dòng)化測(cè)試工具! 目前已經(jīng)被惠普收購(gòu),正式名字為HP QuickTest Professional software ,最新的版本為HP QuickTest Professional 10.0. HP QuickTest Professional 提供符合所有主要應(yīng)用軟件環(huán)境的功能測(cè)試和回歸測(cè)試的自動(dòng)化。采用關(guān)鍵字驅(qū)動(dòng)的理念已簡(jiǎn)化測(cè)試用例的創(chuàng)建和維護(hù)。它讓用戶可以直接錄制屏幕上的操作流程,自動(dòng)生成功能測(cè)試或者回歸測(cè)試用例。專業(yè)的測(cè)試者也可以通過提供的內(nèi)置腳本和調(diào)試環(huán)境來取得對(duì)測(cè)試和對(duì)象屬性的完全控制。
1、拆分語(yǔ)句split
例:取得當(dāng)前日期后拆分
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
例:飛機(jī)票取票價(jià)
shuA=Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("New York to Zurich").GetCellData(3,3)
3、取距某年某月某日的天數(shù)datediff
例:計(jì)算距2008-08-08奧運(yùn)天數(shù)
datediff("d",now,"2008-8-8")
4、描述性編程text:=
例:取得某頁(yè)面上某文字的鏈接
Browser("").Page("").Link("text:=娛樂").Click
或
neirong="娛樂"
Browser("").Page("").Link("text:="&neirong).Click
5、網(wǎng)頁(yè)中HTML編輯器的錄制
功能:驗(yàn)證126郵箱的發(fā)信功能正確
操作步驟:
a.錄制腳本,動(dòng)作包括整個(gè)發(fā)信的過程。
b.修改腳本,在輸入信件主題代碼后加wait 10語(yǔ)句
c.回放腳本,觀察在郵件正文中輸入的內(nèi)容,回放時(shí)QTP是否寫入
d.重新修改腳本,保證回放時(shí)QTP在郵件正文中寫入內(nèi)容
英文解決方案:
Browser("網(wǎng)易126免費(fèi)郵--你的專業(yè)電子郵局").Page("網(wǎng)易電子郵箱 - xueqinzhaoqing@126.co").Frame("indexFrame").WebEdit("subject").Click
wait 1
Setting.WebPackage( "ReplayType")=2 '配置使用瀏覽器事件或鼠標(biāo)運(yùn)行鼠標(biāo)操作的'方式.1 - 使用瀏覽器事件運(yùn)行鼠標(biāo)操作,2 - 使用鼠標(biāo)運(yùn)行鼠標(biāo)操作。
Set ōbj=createobject("wscrīpt.shell")
obj.sendkeys "{TAB}"
wait 2
obj.sendkeys "abc1111"
wait 1
Setting.WebPackage( "ReplayType")=1
中文解決方案
strCopy = "軟件測(cè)試."
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添加文件時(shí)可以直接往里拖的哦。
7.函數(shù):新建記事本,改名為public.vbs例:
function ZHIRSS
ZHIRSS="RSS行業(yè)資訊分類維護(hù)"
end function
使用語(yǔ)句executefile "d:\zhaopin\case\denglu.vbs"或設(shè)置QTP test/settings/resources/+函數(shù)目錄
8.設(shè)置動(dòng)作循環(huán):右擊/actiong call properties/run on all rows
9.設(shè)置動(dòng)作允許被調(diào)用:右擊/action properties/general/reusable action打勾
10.QTP與MTM連接:Tools/option/run/allow other mercury products to run...
11.插入已存在的動(dòng)作1)insert/call to copy of action...復(fù)制可修改
2)insert/call to existing of action...復(fù)制不可修改
12.QTP報(bào)告自動(dòng)跳出設(shè)置:Options>Run>View results when run session ends
13.判斷表格是否存在:
If Browser("數(shù)商3.0后臺(tái)管理系統(tǒng)").Page("Page").Frame("main_5").WebTable("標(biāo)題").Exist then
reporter.ReportEvent 0,"pass","系統(tǒng)顯示了所有的資訊列表!"
else
reporter.ReportEvent 1,"fail","系統(tǒng)沒有顯示資訊列表!"
end if
14.獲取表格行數(shù):Browser("數(shù)商3.0后臺(tái)管理系統(tǒng)").Page("Page").Frame("main_5").WebTable("標(biāo)題").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.取參數(shù)化數(shù)據(jù)的行數(shù),只在某幾行進(jìn)執(zhí)行某些語(yǔ)句
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.取樹結(jié)構(gòu)
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)
30.關(guān)閉所有IE
SystemUtil.CloseProcessByName("iexplore.exe")
31.創(chuàng)建action template.
當(dāng)希望在每一個(gè)新建action時(shí)都增加一些頭部說明,比如作者、創(chuàng)建日期、說明等,用action template
來實(shí)現(xiàn)最簡(jiǎn)單快捷。
方法:用記事本等文本編輯器,輸入如下類似的內(nèi)容:
'Company: xxxx
'Author: xxx
'Product: xxx
'Date: xx
然后將文件保存為ActionTemplate.mst,并存放到QTP安裝目錄下的dat目錄。
32.啟動(dòng)IE的語(yǔ)句:SystemUtil.Run "iexplore.exe", "http://www.***.com"
關(guān)閉IE或其他程序的語(yǔ)句:SystemUtil.CloseProcessByName "app.exe"
or SystemUtil.CloseProcessByWndTitle "Some Title"
33.獲取圖片的名稱
ObjectName = Browser(…).Page(…).Image("Find").GetProperty("Name")
34.檢查某個(gè)對(duì)象是否存在,如果存在彈出對(duì)話框說明對(duì)象存在。
If Browser("Browser").Page("Page").Applet("login.html").JavaEdit("username").Exist Then
MsgBox("The object exists.")
End if
35.同步點(diǎn)
Browser("數(shù)商3.0制作平臺(tái)").Dialog("Microsoft Internet Explorer").WaitProperty "visible", True, 120000
設(shè)置test/test settings/object synchronizationg timeout 一致
36.視圖框顯示為亂碼時(shí):調(diào)整原頁(yè)面編碼,在QTP/tools/change active screen
37.添加附件:
Browser("**").Page("**").WebFile("filePath").Click
Browser("**").Dialog("**").WinEdit("文件名(N):").Set "D:\**.jpg"
Browser("下載中心--新增下載文件").Dialog("選擇文件").WinButton("打開(O)").Click
添加相應(yīng)的對(duì)象
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.數(shù)據(jù)執(zhí)行保護(hù)
方法一、右擊我的電腦/高級(jí)/性能/設(shè)置/數(shù)據(jù)執(zhí)行保護(hù)/為除下列選定程序之外的所有程序和服務(wù)啟用DEP/添加被保護(hù)的程序。
方法二、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.引用自定義環(huán)境變量
Environment.LoadFromFile "D:\詢價(jià)\case\環(huán)境\huiyuan.xml"
44. 環(huán)境變量有2種,一種是QTP的內(nèi)置變量,一種是用戶自定義的變量。內(nèi)置變量是可以直接就可以用,自定義環(huán)境變量需要在菜單中選擇“文件”——> “設(shè)置”——>“環(huán)境”,在變量類型中選擇“用戶自定義”,然后進(jìn)行添加,可以對(duì)添加的變量全部導(dǎo)出,導(dǎo)出的文件為.xml格式的文檔。既然可以導(dǎo) 出,那么必然可以導(dǎo)入.xml文件,你可以在該對(duì)話框中的選中“從外部文件導(dǎo)入”,然后添加其文件路徑即可。(當(dāng)然這些操作都可以直接使用腳本來實(shí)現(xiàn), 如:Environment.LoadFromFile(“FileName”))
例如:在桌面建立一個(gè)Var.xml,如下
-<Environment> //以這個(gè)開始的內(nèi)部都是定義環(huán)境變量,直到以</Environment>結(jié)束
- <Variable> // 變量定義起始標(biāo)識(shí)
<Name>aa</Name> // 變量名稱
<Value>11</Value> // 變量值
</Variable> // 變量定義結(jié)束標(biāo)識(shí)
- <Variable>
<Name>bb</Name>
<Value>22</Value>
</Variable>
- <Variable>
<Name>cc</Name>
<Value>33</Value>
</Variable>
</Environment>
然后導(dǎo)入本測(cè)試的環(huán)境變量文件中,在專家視圖里編寫下面的腳本代碼:
Dim aParam3
aParam3=Environment.Value(“aa”) // 調(diào)用環(huán)境變量
msgbox aParam3
運(yùn)行測(cè)試,會(huì)輸出”11”
45.在HTML編輯器中寫入數(shù)據(jù)
用低水平錄制寫入編輯器過程,增加編輯部器前的對(duì)象,加入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
兩個(gè)頁(yè)面title相同無法識(shí)別時(shí)使用描述必編輯
Browser("creationtime:=1").page(title:=****).WebEdit("name:=***").Set "***"
或Browser("creationtime:=1").page(index:=1).WebEdit("index:=0").Set "***"
47.場(chǎng)景恢復(fù):
當(dāng)某些提示框會(huì)在不定期時(shí)有提示時(shí),如果自動(dòng)點(diǎn)擊確定或某些按鈕
1、tools/recovery scenaril manager,制作相應(yīng)的提示框和要點(diǎn)擊的按鈕,并保存
2、test/settings/recovery,添加剛保存的.qrs
48.輸入驗(yàn)證碼,先提示一個(gè)輸入框,在輸入框內(nèi)輸入驗(yàn)證碼,點(diǎn)擊[確定],把輸入的驗(yàn)證碼框
Dim a
a = InputBox("輸入名字")
49.對(duì)象庫(kù)中對(duì)象名稱不分為_2,_3...設(shè)置: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.驗(yàn)證測(cè)試輸入框輸入的最大允許字?jǐn)?shù)功能的正確
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,"添加支付方式,支付方式輸入框允許輸入的最大字符功能錯(cuò)誤",""
end if
此函數(shù)的功能為:驗(yàn)證測(cè)試輸入框輸入的最大允許字?jǐn)?shù)功能的正確,函數(shù)可寫在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.超時(shí)設(shè)置:Setting("DefaultTimeout") =1000000
52.共享對(duì)象庫(kù):Set App = CreateObject("QuickTest.Application")
App.Test.Settings.Resources.ObjectRepositoryPath = "path"
53.取顏色 browser("b").page("p").Object.currentStyle“:.color
54.顯示行號(hào)設(shè)置:Tools- --> Editor Options...-->General-->Show line number,
55.不同數(shù)據(jù)庫(kù)檢查點(diǎn)手動(dòng)SQL寫法
QTP插入數(shù)據(jù)庫(kù)檢查點(diǎn),手動(dòng)指定SQL語(yǔ)句的寫法。
一、SQL Server格式(本地?zé)o需安裝SQL Server)
connectionstring(連接字符串):
1.本地沒有創(chuàng)建數(shù)據(jù)源的方式
DRIVER=SQL Server;SERVER=數(shù)據(jù)庫(kù)IP地址;UID=用戶名;PWD=密碼;APP=Microsoft Office 2003;WSID=本地主機(jī)名;DATABASE=數(shù)據(jù)庫(kù)名
實(shí)例:
DRIVER=SQL Server;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJHLJUN;DATABASE=dcwork
2.本地已創(chuàng)建數(shù)據(jù)源的方式
DSN=數(shù)據(jù)源名稱;UID=用戶名;PWD=密碼;APP=Microsoft Office 2003;WSID=數(shù)據(jù)庫(kù)的主機(jī)名;DATABASE=數(shù)據(jù)庫(kù)名
實(shí)例:
DSN=LocalServer;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJDCWORKTEST;DATABASE=dcwork
3.SQL語(yǔ)句實(shí)例(從數(shù)據(jù)庫(kù)表HR_LANGUAGE_TYPE中,查詢字段語(yǔ)言名稱LANGUAGE_NAME,條件語(yǔ)言名稱=中文,按語(yǔ)言名稱升序排序結(jié)果)
source(SQL語(yǔ)句):
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.本地沒有創(chuàng)建數(shù)據(jù)源的方式
DRIVER={IBM DB2 ODBC DRIVER};UID=用戶名;PWD=密碼;MODE=SHARE;DBALIAS=數(shù)據(jù)庫(kù)名;
實(shí)例:
DRIVER={IBM DB2 ODBC DRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
2.本地已創(chuàng)建數(shù)據(jù)源的方式
DSN=數(shù)據(jù)源名稱;UID=用戶名;PWD=密碼;MODE=SHARE;DBALIAS=DCWORK;
實(shí)例:
DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
3.SQL語(yǔ)句實(shí)例
source:SQL語(yǔ)句
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.本地沒有創(chuàng)建數(shù)據(jù)源的方式
DRIVER={Oracle in OraHome92};SERVER=數(shù)據(jù)庫(kù)服務(wù)名;UID=用戶名;PWD=密碼;DBQ=數(shù)據(jù)庫(kù)名;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;
實(shí)例:
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.本地已創(chuàng)建數(shù)據(jù)源的方式
DSN =數(shù)據(jù)源名稱;UID=用戶名;PWD=密碼;DBQ=數(shù)據(jù)庫(kù)名;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;
實(shí)例:
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語(yǔ)句實(shí)例
source:SQL語(yǔ)句
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、類似時(shí)間控件,不能手到輸入的文本檔
1)手工添加對(duì)象,
2).object.value="2008-4-12"
聯(lián)系客服