【分享】标准Windows控件的常规测试方法及VBS脚本代码

上一篇 / 下一篇  2011-07-17 12:03:32 / 个人分类:软件测试中的VBS

标准Windows控件包括对话框、按钮、静态文本及图像控件、日期时间选择控件,单选按钮、多选框、下拉框、Windows窗体控件、输入框和加密输入框、列表、列表视图、菜单、滚动条、数值选择控件、状态栏、页签、工具栏、树及其他控件和控件状态,现分别按照VBS名称及常规测试方法总结如下:

1、使用Exist属性判断控件是否存在

Rem判断某个控件是否存在

If DialogLogin.Exist(3) Then

 MsgBox(“Login窗口存在”)

Else

 MsgBox(“Login窗口不存在”)

End If

2、用CheckProperty检查控件属性

  使用CheckProperty检查控件属性是否与指定的值一致,如果一致则在结果中标识Pass,否则标识为Fail

Dialog(“Login”).WinEdit(“Agnt Name”)>CheckProperty(“text”)

Reporter.ReporEvent micPass,“Agent Name”

3、使用GetRoproperty返回测试对象的当前属性

Dim LoginTitle

Login Title = Dialog(“login”).GetROProperty(“text”) Rem获取窗口标题

MsgBox LoginTitle

4Dialog对象的测试

Dialog对象是指Windows的对话框控件,对Dialog对象的常用测试是Activate方法,该方法用于模拟用户点击对话框的标题栏,定位到对话框并激活窗口。通常在操作对话框中的控件之间先使用该方法,确保当前对话框可用。如:

Dialog(“Login”).Activate

5Static对象的测试

Static对象是指Windows静态文本、图像控件,可以用Check方法插入对图像的检查点,在录制过程中,选择Insert |Checkpoint |Bitmap Checkpoint,然后选择制定的图像区域,将产生的代码如下:

Dialog(“Login”).Static(“Static”).Check CheckPoint(“Static”)

注意在插入检查点后,可以定位到代码行中的CheckPoint,单击鼠标右键,选择CheckPoint Properties来重新编辑检查点

6WinButton对象的测试

WinButton对象很常见,即单击按钮控件,常规测试操作是Click单击,示例代码如下:

Dialog(“Login”).WinButton(“OK”).Click Rem单击OK按钮

7WinCalender对象的测试

WinCalender对象是指日期和时间选择控件,例如,Windows搜索助理界面的指定日期控件,常用测试操作是设定日期,需要使用SetDate方法,Date的参数传入有2种方式:

(1)日期字符串型,格式为D-MM-YYYY,如:

Window(“我的电脑”).WinCalender(“SysDateTimePick32”).SetDate”3-Jen-2010”

(2)使用VBScript的日期函数,DateNowIsDateCDate等,如:

Window(“我的电脑”).WinCalender(“SysDateTimePick32”).SetDate Date Rem设置为当天

此外还可以使用WinCalender对象的SetTime方法来设定时间,如:

Dialog(“Common Controls”).WinCalendar(“SysDateTimePick32”).SetTime”11:11:11”

就是把控件的时间设置为111111

8WinCheckBox对象的测试

WinCheckBox对象为选择框控件,常规测试操作是Set方法,用于模拟用户把某个选项选上,Set方法的参数可以输入ONOFFDIMMED三种状态值,示例代码如下:

Window(“Flight Reservation”).Dialog(“Open Order”).Activate

Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Customer Name”).Set”ON”        RemCustomer Name选项打上钩

Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set”CNJ”

9WinComboBox对象的测试

WinComboBox对象为下拉框控件,常规测试操作是Select方法,用于模拟用户从下拉框中选择某项内容,

Rem从下拉框中选择

Window(“Flight Reservation”).WinComboBox(“Fly To:”).Select”Frankfurt”

Window(“Flight Reservation”).WinButton(“FLIGHT”).Click

还可以通过GetItemsCount来获得下拉框中所有选项总数,如:

MsgBox Window(“Flight Reservation”).WinComboBox(“Fly To:”).GetItemsCount

Dim ItemStr

ItemStr = Window(“Flight Reservation”).WinComboBox(“Fly To:”).GetItem(1)

If ItemStr = “Denver” Then

MsgBox “OK”

Else

MsgBox ItemStr

End if

10Windows对象的测试

Windows对象是指窗体控件,常规的测试操作包括ActivateMaximizeRestore,还可以通过GetROProperty方法来获得窗口的标题,用来判断是否为指定的名称。测试示例脚本代码如下:

Window(“记事本”).Activate  Rem激活记事本窗口

Window(“记事本”).Maximize Rem最大化记事本窗口

Window(“记事本”).Restore   Rem恢复记事本窗口

MsgBox Window(“记事本”).GetROProperty(“text”) Rem获取记事本窗口标题

11WinEdit对象的测试

WinEdit对象为常见的输入框,常用的测试方法是Set,用于模拟向输入框中输入文本,如果需要加密的文字,可以使用SetSecure方法,这个主要用于在录制测试脚本时,对输入密码进行加密,然后在回放时进行解密,这样就避免密码明文显示在测试脚本中。示例代码如下:

Dialog(“Login”).Activate

Dialog(“Login”).WinEdit(“AgentName:”).Set “MERCURY”

RemPassword框中输入加密后的密码提示字符串

Dialog(“Login”).WinEditor(“PassWord:”).SetSecure“****************************”

Rem ***为加密后的密码字符串,此处省略为***

Dialog(“Login”).WinButton(“OK”).Click

此外,还有一个SetSelection方法,为选择编辑框,如:

Window(“REASES”).Dialog(“楼板布置”).WinEdit(“板厚”).SetSelection 0,1

12WinEditor对象的测试

WinEditor对象与WinEdit对象方法类似,可以通过Set方法和SetSecure方法来模拟用户输入的加密或未加密的内容,也可以使用Type来模拟用户往输入框输入文本,如:

Rem往记事本中输入一段文字

Window(“记事本”).WinEditor(“Edit”).Type “1234567890ABCDEF”

Rem键入回车键

Window(“记事本”).WinEditor(“Edit”).Type micReturn

13WinList对象的测试

WinList对象是指列表控件,常用的测试操作为Select,用于模拟用户选择列表中的一项内容,如:

Window().Dialog().Activate

Rem选择WinList中的某项内容,通过名称指定

Window(“REASES”).Dialog(“楼层组装”).WinList(“标准层”).Select “1标准层

Window(“Flights Reservation”).Dialog(“Flights Table”).WinButton(“OK”).Click

也可以指定Index来选择内容,注意Index是从0开始的。

14WinListView对象的测试

WinListView对象是指列表视图控件,常用的操作方式是Select操作,用于模拟用户选择列表视图中的一项内容,示例脚本如下:

Rem通过名称职定选择SysListView32中的某项内容

Window(“我的电脑_2”).WinListView(“SysListView32”).Select “本地磁盘(C:\) ”

Rem通过指定Index来选择,Index0开始

Window(“我的电脑_2”).WinListView(“SysListView32”).Select 2 rem选择第三项

WinListView还可以使用ExtendSelect方法,用于模拟用户按下CTRL键进行多选,如:

Window(“我的电脑_2”).WinListView(“SysListView32”).Select “本地磁盘(C:\) ”

Window(“我的电脑_2”).WinListView(“SysListView32”). ExtendSelect “本地磁盘(D:\) ”

15WinMenu对象的测试

WinMenu对象是指菜单控件,常用的测试操作是Select方法,用来模拟用户选择某个菜单项,如:

Rem通过指定菜单名称来选择菜单项新建文件

Window(“记事本”).Activate

Window(“记事本”).WinMenu(“Menu”).Select”文件(F);新建(N)Ctrl+N ”

Rem通过指定Index来选择菜单,注意Index是从1开始的

Window(“记事本”).WinMenu(“Menu”).Select”<Item 1>;<Item 2>”

可以使用BuildMenuPath方法构建菜单路径,如:

Rem构建菜单选择路径“文件|新建”

MenuPath = Window(“记事本”).WinMenu(“Menu”).BulidMenuPath(”文件(F);新建(N)Ctrl+N ”)

Window(“记事本”).WinMenu(“Menu”).Select MenuPath

也可以使用Index来指定菜单项:

MenuPath = Window(“记事本”).WinMenu(“Menu”).BulidMenuPath(1,2)

Window(“记事本”).WinMenu(“Menu”).Select MenuPath

也可以达到上述效果。

16WinRadioButton对象的测试

WinRadioButton对象是指单选按钮控件,常用的测试操作就是Set方法,用时指定需要Set的控件名称即可,代码如下:

Rem重力荷载代表值选项被选定

Window(“REASES”).Dialog(“工况组合”).WinRadioButton(“重力荷载代表值”).Set

17WinScrollBar对象的测试

WinScrollBar对象指滚动条,常规的测试方法有SetNextLineNextPagePrevLinePrevPage。如果模拟向上滚动1行,可以使用PrevLine方法,多行则可以指定参数为行数,如果想让滚动1页,可以使用PrevPage方法,NextPage相当按下PageDown按钮,PrevPage相当于按下PageUp按钮。

Window(“Book1”).Activate

Rem单击Excel应用程序中的滚动条,让其向下滚动一行

Window(“Book1”).WinScrollBar(“ScrollBar”).NextLine 1

Window(“Book1”).WinScrollBar(“ScrollBar”).NextPage 1

Window(“Book1”).WinScrollBar(“ScrollBar”).Set 5

通常可以使用GetROProperty方法先获得ScrollBarmaxscrollpos属性,取得最大滚动范围,再根据值设定滚动条的位置,免得Set方法设置的位置超过了范围,示例脚本如下:

Window(“Book1”).Activate

Rem获取ScrollBarmaxscrollpos属性

Max = Window(“Book1”).WinScrollBar(“ScrollBar”).GetROProperty(“maxscrollpos”)

Rem设置滚动条位置在中间

Pos = max/2

Window(“Book1”).WinScrollBar(“ScrollBar”).Set Pos

18WinSpin对象的测试

WinSpin是数值选择控件,如Windows的日期和时间属性窗口中的年份选择控件,常用的测试操作是NextPrevSet方法,示例脚本如下:

Dialog(“日期和时间属性”).Activate

Rem如果是2009年,则向后选择

If Dialog(“日期和时间属性”).WinEdit(“Edit”).GetROProperty(“text”) = 2009 Then

Dialog(“日期和时间属性”).WinSpin(“msctls_statusbar32”).Next

End if

Rem直接把日期设置为2010

Dialog(“日期和时间属性”).WinSpin(“msctls_updown32”).Set 2010

19WinStatusBar对象的测试

WinStatusBar是指状态栏控制,常用的操作是通过GetContent获得状态栏的所有信息,简单的脚本如下:

Rem获取记事本的状态栏信息

Status = Window(“记事本”).WinStatusBar(“msctls_statusbar32”).GetContent

MsgBox Status

需要注意的是,GetContent获得的是全部的状态栏的信息,如果状态栏分成若干部分的时候,就要使用WinStatusBarGetItem方法了,如下列脚本,首先使用GetItemsCount方法获得状态栏的个数,然后使用GetItem方法循环取得每一部分的状态栏信息:

Rem使用GetItemsCount方法获得状态栏部分的个数

StatusItemsCount = Window(“C:\”).WinStatusBar(“msctls_statusbar32”).GetItemsCount

Rem循环获得每一部分状态栏的信息

For I=0 to StatusItemCount-1

StatusItem = Window(“C:\”).WinStatusBar(“msctls_statusbar32”). GetItems(I)

  MsgBox StatusItem

Next

20WinTab对象的测试

WinTab对象指页签控件,常用的测试操作就是Select方法,Select的方法也可以使用IndexIndex是按照页签的顺序从0开始的,此外还提供了GetSelection方法用于确定当前所选的页签是哪个,脚本如下:

Rem Windows的时间日期属性窗口页签显示

Dialog(“日期和时间属性”).WinTab(“SysTabControl32”).Select“时区”

Dialog(“日期和时间属性”).WinTab(“SysTabControl32”).SelectInternet时间”

Dialog(“日期和时间属性”).WinTab(“SysTabControl32”).Select“时间和日期”

Select方法的输入参数换成Index120)也可以达到同样的效果。

Rem选择第二个页签

Dialog(“日期和时间属性”).WinTab(“SysTabControl32”).Select 1

Rem通过GetSelection获得当前所选的页签名称

SelectTab = Dialog(“日期和时间属性”).WinTab(“SysTabControl32”).GetSelection

Reporter.ReportEvent micDone,”当前所选的Tab页是:“,SelectedTab

21WinToolBar对象的测试

WinToolBar对象是指工具栏控件,其常用的操作方式是Press方法,用于模拟用户单击工具栏上的某个按钮,如向上、“后退”、“搜索”等,脚本代码如下所示:

Window(“C:\”).WinToolBar(“ToolBarWindow32”).Press“向上”

Window(“我的电脑”).WinToolBar(“ToolBarWindow32”).Press“后退”

Window(“C:\”).WinToolBar(“ToolBarWindow32”).Press“搜索”

Press方法也可以是IndexIndex按照按钮顺序从1开始,如将上面的代码的“向上”、“后退”和“搜索”改为314,效果是一样的。

22WinTreeView对象的测试

WinTreeView对象指树形选择控件,常用的测试操作包括SelectExpandExpandAllCollapse等方法。

Rem在资源管理器中选择某个磁盘

Window(“我的电脑”).WinTreeView(“SysTreeView32”).Select“桌面;我的电脑;本地磁盘(C:)”

节点用分号(;)隔开。相应的用Expand展开某个节点,用ExpandAll展开全部目录节点:

Window(“我的电脑”).WinTreeView(“SysTreeView32”).Expand“桌面;我的电脑‘展开某个节点

Window(“我的电脑”).WinTreeView(“SysTreeView32”).ExpandAll“桌面;我的电脑;本地磁盘(C:)”‘展开全部目录节点

Collapse收起处于展开状态的节点

Window(“我的电脑”).WinTreeView(“SysTreeView32”). Collapse

23WinObject对象的测试

WinObject对象对于测试那些不被QTP识别并归类成特定控件类型的Windows控件,与拥有与其他个各类空间对应的测试对象基本相同的基本方法和属性,如ExistClickTypeGetRoPropertyCheckProperty等,如:

Window(“REASES”).Window(“平面图”).WinObject(“MBaseView”).Drag 100,100

Window(“REASES”).Window(“平面图”).WinObject(“MBaseView”).Drop 1000,1000


TAG:

 

评分:0

我来说两句

Open Toolbar