使用QTP测试标准Windows对象.docx
《使用QTP测试标准Windows对象.docx》由会员分享,可在线阅读,更多相关《使用QTP测试标准Windows对象.docx(12页珍藏版)》请在冰豆网上搜索。
使用QTP测试标准Windows对象
使用QTP测试标准的Windows对象
教学目的:
教学内容:
标准Windows对象是指基于Win32API和MFC创建的应用程序。
一、Desktop对象的使用
通过Desktop对象可以访问Windows的桌面顶层对象。
包括CaptureBitmap、ChildObjects、RunAnalog方法。
1.使用CaptureBitmap方法来截屏
'把屏幕截图保存到指定文件
Desktop.CaptureBitmap"d:
\TestCaptureBitmap.bmp",true
可以把屏幕对象的截屏保存为:
.png或.bm图像文件,取决于文件的扩展名
2.使用ChildObjects方法获取某个对象中包含的对象列表
使用ChildObjects方法可以获取到某个测试对象中包含的所有对象。
如下面的脚本通过Desktop对象的ChildObjects方法获取当前桌面中所有名为“无标题-记事本”的窗口对象
'创建描述对象
SetobjDesc=Description.Create()
'指定为标题为“无标题-记事本”的对象
objDesc("text").Value="无标题-记事本"
'通过Desktop对象的ChildObjects方法获取当前桌面中所有名为“无标题-记事本”的窗口
SetObjectCollection=Desktop.ChildObjects(objDesc)
MsgBoxObjectCollection.Count
3.使用RunAnalog方法运行低级录制过程
QTP支持录制鼠标和键盘操作的低级过程,这种录制模式叫“AnalogRecording”,如在QTP自带的Flight程序中,插入订票记录后,选择“File–>FaxOrder”,对AgentSignature中的签名,就可以用这种录制模式来录制签名的动作。
'激活窗口
Window("FlightReservation").Activate
'选择菜单
Window("FlightReservation").WinMenu("Menu").Select"File;FaxOrder..."
'录制签名的过程
Window("FlightReservation").Window("FaxOrderNo.10").RunAnalog"Track1"
'运行名为“Track1”的Analog脚本
Desktop.RunAnalog"Track1"
二、SystemUtil对象的使用
可以利用SystemUtil对象,在测试脚本的运行过程中,控制应用程序和进程,SystemUtil对象包括BlockInput、CloseDescendentProcesses、CloseProcessByHwnd、CloseProcessById、CloseProcessByName、CloseProcessByWndTitile、Run、UnblockInput
1、使用Run方法运行文件或程序
Run方法的使用格式:
Runfile,[params],[dir],[op],[mode]
其中,
“file”参数是必须输入的,是需要被运行的程序,或者是需要被打开的文件
“params”是可选输入参数,指启动应用程序所需的参数
“dir”是可选参数,指应用程序或文件的默认工作目录
“op”是可选参数,指文件打开的模式,包括”open”,”edit”,”explore”,”find”,”print”5种模式
“mode”参数是可选参数,用于指定程序窗口打开时的状态。
2、在脚本运行过程中屏蔽鼠标和键盘
在脚本运行过程中,屏蔽鼠标和键盘的输入可以使用SystemUtil对象的BlockInput(屏蔽输入)和UnBlockInput(解除屏蔽)方法。
3、关闭进程
CloseDescendentProcesses用于关闭所有由QTP打开的进程
CloseProcessByHwnd用于关闭包含指定句柄的窗口的进程
CloseProcessById用于关闭指定进程ID(PID)的进程
CloseProcessByName用于关闭指定名称的进程
CloseProcessByWndTitile用于关闭拥有指定标题的窗口的进程
SystemUtil对象的这些关闭进程的方法可以用于关闭任何标准应用程序,包括那些停止响应的应用程序。
三、Clipboard对象的使用
可以在测试脚本运行过程中,使用Clipboard对象来复制、剪切和粘贴文本对象,Clipboard对象拥有与VB语言中的Clipboard对象一样的方法,包括:
Clear:
用于清空Clipboard中的数据
GetData:
用于获取Clipboard中的数据
GetFormat:
用于获取Clipboard中的数据格式
GetText:
用于获取Clipboard中的文本数据
SetData:
用于向Clipboard设置数据
SetText:
用于向Clipboard设置文本数据
使用方法:
'创建Clipboard对象
SetMyClipboard=CreateObject("Mercury.Clipboard")
'清空Clipboard中的所有数据
MyClipboard.Clear
'设置Clipboard中的文本为“TEST”
MyClipboard.SetText"TEST"
'获取Clipboard中的文本
MsgBoxMyClipboard.GetText
CreateObject方法:
创建对象
‘打开Excel,在QTP的专家视图中输入以下代码
DimExcelSheet
SetExcelSheet=CreateObject("Excel.Sheet") ‘ 创建一个工作表
'MakeExcelvisiblethroughtheApplicationobject.
ExcelSheet.Application.Visible=True
'Placesometextinthefirstcellofthesheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value="ThisiscolumnA,row1"
'Savethesheet.
ExcelSheet.SaveAs"d:
\TEST.XLS" ‘ 路径可根据实际修改
'CloseExcelwiththeQuitmethodontheApplicationobject.
ExcelSheet.Application.Quit
'Releasetheobjectvariable.
SetExcelSheet=Nothing
四、标准Windows控件的基本属性和方法
1、使用Exist属性来判断控件是否存在
可以通过访问控件的Exist属性来判断控件是否存在于当前打开的应用程序中。
如,下面的测试脚本用于判断Login窗口是否存在:
'判断某个控件是否存在
IfDialog("Login").Exist(3)Then
MsgBox("Login窗口存在.")
Else
MsgBox("Login窗口不存在.")
EndIf
Exist属性中可指定“TimeOut”参数,用于指定查找控件的时间,调用Exist将返回True或false,用于表示窗口是否存在。
2、使用CheckProperty检查控件属性
使用CheckProperty方法可以实现与标准检查点相类似的功能,如,下面的测试脚本使用CheckProperty检查控件的属性是否与指定的值相一致,如果一致,则在测试结果中标识这pass,否则标识为fail:
'使用CheckProperty检查控件的属性是否与指定的值相一致
IfDialog("Login").WinEdit("AgentName:
").CheckProperty("text","MERCURY")then
'如果一致,则在测试结果中标识为Pass
Reporter.ReportEventmicPass,"AgentName","AgentName输入框的值为'MERCURY'"
Else
'否则标识为Fail
Reporter.ReportEventmicFail,"AgentName","AgentName输入框的值不等于'MERCURY'"
EndIf
运行结果:
3、使用GetROProperty获取控件属性
GetROProperty用于返回测试对象的当前属性,如,下面的测试脚本用于获取Login窗口的标题属性:
DimLoginTitle
Dialog("Login").Activate
'获取Login窗口的标题
LoginTitle=Dialog("Login").GetROProperty("text")
MsgboxLoginTitle
五、各类标准Windows控件的测试
1、Dialog对象的测试
Dialog对象是指Windows的对话框控件。
对Dialog对象的常用测试是Activate方法,用于定位对话框,使其处于激活状态。
如:
'定位并激活对话框
Dialog("Login").Activate
Activate方法模拟用户点击对话框的标题栏,定位到对话框,通常,在操作对话框中的控件之前,都需要先使用这个方法,确保当前对话框可用。
2、Static对象的测试
Static对象是指Windows静态文本、图像控件,可以用Check方法插入对图像的检查点,在录制过程中,选择菜单“Insert->Checkpoint->BitmapCheckpoint”,然后选择指定的图像区域,将产生如下代码:
Dialog("Login").Static("Static").CheckCheckpoint("Static")
3、WinButton对象的测试
WinButton对象的常用测试操作是Click方法,用于模拟用户单击按钮的事件,如:
Dialog("Login").WinButton("OK")
4、WinCalendar对象的测试(不要勾选VB和ActiveX)
WinCalendar对象是指日期和时间选择控件,如Windows搜索助理界面的指定日期控件就是WinCalendar对象,
'设置日期
Window("搜索结果").WinCalendar("SysDateTimePick32").SetDate"3-Mar-2008"
Window("搜索结果").WinCalendar("SysDateTimePick32_2").SetDate"4-Mar-2008"
'设置为当天日期
Window("搜索结果").WinCalendar("SysDateTimePick32").SetDateDate
SetDate方法的参数是“Date”,可以使用两种方式传入:
1)日期字符串型:
格式为d-MMM-yyyy,其中d表示日,MMM表示英文月份缩写,yyyy是年份
2)使用VBScript的日期函数,例如Date,Now,IsDate,CDate等。
5、WinCheckBox对象的测试
WinCheckBox对象的常用测试操作是Set方法,用于模拟用户把某个选择项选上,如,下面的脚本用于把CustomerName选择框勾上:
'定位