QTP测试CodeJock Xtreme Suite控件

本文介绍如何使用QTP测试CodeJockXtremeSuite中的常见控件,包括DatePicker、PropertyGrid、ReportControl等,并提供了封装函数及使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CodeJock Xtreme SuiteVB编程中经常使用的类库,但是在使用QTP进行测试时往往碰到很多对象识别和控制的问题。

DatePicker

使用QTP录制DatePicker控件得到如下脚本:

'' 录制的脚本

'VbWindow("frmMain").Activate

'' 选择一个日期

'VbWindow("frmMain").ActiveX("Xtreme DatePicker Control").WinObject("XTPDatePicker").Click 361,91

'' 选择日期范围

'VbWindow("frmMain").ActiveX("Xtreme DatePicker Control").WinObject("XTPDatePicker").Drag 526,80

'VbWindow("frmMain").ActiveX("Xtreme DatePicker Control").WinObject("XTPDatePicker").Drop 526,98

 

 

DatePicker封装常用操作函数并用RegisterUserFunc函数注册到ActiveX测试对象中:

 

' 获取选定的单个日期

Function Xtreme_DataPicker_GetSelectedDate(obj)   

       Xtreme_DataPicker_GetSelectedDate = obj.Object.Selection.Blocks(0).DateBegin

End Function

RegisterUserFunc "ActiveX","Xtreme_DataPicker_GetSelectedDate","Xtreme_DataPicker_GetSelectedDate"

 

' 获取开始日期

Function Xtreme_DataPicker_StartDate(obj)      

   Xtreme_DataPicker_StartDate = obj.Object.Selection.Blocks(0).DateBegin ' 只考虑了一个范围的情况

End Function

RegisterUserFunc "ActiveX","Xtreme_DataPicker_StartDate","Xtreme_DataPicker_StartDate"

 

' 获取结束日期

Function Xtreme_DataPicker_EndDate(obj)

   Xtreme_DataPicker_EndDate = obj.Object.Selection.Blocks(0).DateEnd ' 只考虑了一个范围的情况

End Function

RegisterUserFunc "ActiveX","Xtreme_DataPicker_EndDate","Xtreme_DataPicker_EndDate"

 

' 选定一个指定的日期

Function Xtreme_DataPicker_SelectDate(obj,sDate)

   ' 选之前先把已经选择的日期清空

       obj.Object.ClearSelection

       obj.Object.Select sDate

End Function

RegisterUserFunc "ActiveX","Xtreme_DataPicker_SelectDate","Xtreme_DataPicker_SelectDate"

 

' 选定一个日期范围

Function Xtreme_DataPicker_SelectDateRange(obj,sStartDate,sEndDate)

       obj.Object.SelectRange  sStartDate,sEndDate

       obj.Object.RedrawControl

End Function

RegisterUserFunc "ActiveX","Xtreme_DataPicker_SelectDateRange","Xtreme_DataPicker_SelectDateRange"

 

 

下面是一些使用的例子:

VbWindow("frmMain").Activate

Set oXtremeDataPicker = VbWindow("frmMain").ActiveX("Xtreme DatePicker Control")

Msgbox oXtremeDataPicker.Xtreme_DataPicker_GetSelectedDate

Msgbox oXtremeDataPicker.Xtreme_DataPicker_StartDate

Msgbox  oXtremeDataPicker.Xtreme_DataPicker_EndDate

 

VbWindow("frmMain").Activate

oXtremeDataPicker.Xtreme_DataPicker_SelectDate  "2010-01-07"

oXtremeDataPicker.Xtreme_DataPicker_SelectDate  "2010-01-08"

 

VbWindow("frmMain").Activate

oXtremeDataPicker.Xtreme_DataPicker_SelectDateRange  "2010-01-10","2010-01-12"

oXtremeDataPicker.Xtreme_DataPicker_SelectDateRange  "2010-01-16","2010-01-19"

 

PropertyGrid

QTP中录制PropertyGrid控件的操作得到如下脚本:

 

'' 录制的脚本

'VbWindow("frmMain").Activate

'VbWindow("frmMain").VbTreeView("wndTreeView").Select "Common Properties"

'VbWindow("frmMain").VbTreeView("wndTreeView").Select "Common Properties;General"

'VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").WinList("ListBox").Window("Window").Click 90,23

'VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").WinEdit("Edit").Set "abc"

'VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").WinEdit("Edit").Type  micReturn

 

 

PropertyGrid控件的常用操作封装如下所示的函数:

 

' 设置某项的值

Function Xtreme_PropertyGrid_SetValue( obj, sCaption, sValue )

       Set oItem = obj.Object.FindItem(CStr(sCaption))       ' 查找

       obj.Object.EditItem oItem,True     ' 设置为编辑模式

       oItem.Value = sValue      ' 赋值

End Function

RegisterUserFunc "ActiveX", "Xtreme_PropertyGrid_SetValue" , "Xtreme_PropertyGrid_SetValue"

 

' 获取某项的值

Function Xtreme_PropertyGrid_GetValue( obj, sCaption )

       Set oItem = obj.Object.FindItem(CStr(sCaption))       ' 查找

    Xtreme_PropertyGrid_GetValue =oItem.Value

End Function

RegisterUserFunc "ActiveX", "Xtreme_PropertyGrid_GetValue" , "Xtreme_PropertyGrid_GetValue"

 

 

以下是使用例子:

VbWindow("frmMain").Activate

 

VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").Xtreme_PropertyGrid_SetValue  "Type of Output" , "Console Application"

VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").Xtreme_PropertyGrid_SetValue  "Startup Object" , "Program"

 

Msgbox VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").Xtreme_PropertyGrid_GetValue("Type of Output")

Msgbox VbWindow("frmMain").ActiveX("Xtreme PropertyGrid Control").Xtreme_PropertyGrid_GetValue("Project File")

 

 

ReportControl

在函数库中添加如下函数,封装ReportControl控件的常用操作:

 

' 获取指定单元格的文本

Function Xtreme_ReportControl_GetTextByCell( obj, iRow, iColumn )

   obj.Object.ExpandAll True

       Xtreme_ReportControl_GetTextByCell = obj.Object.Rows.Row(iRow).Record.Item(iColumn).Caption

End Function

RegisterUserFunc "ActiveX","Xtreme_ReportControl_GetTextByCell","Xtreme_ReportControl_GetTextByCell"

 

'设置指定单元格的文本

Function Xtreme_ReportControl_SetTextByCell( obj, iRow, iColumn , sValue )

   obj.Object.ExpandAll True

       Set row = obj.Object.Rows.Row(iRow)

       Set col = obj.Object.Columns.Column(iColumn)

       obj.Object.EditItem row,col

       obj.Type sValue

End Function

RegisterUserFunc "ActiveX","Xtreme_ReportControl_SetTextByCell","Xtreme_ReportControl_SetTextByCell"

 

 

下面是使用的例子:

 

VbWindow("frmMain").Activate

Print VbWindow("frmMain").ActiveX("Xtreme Report Control_2").Xtreme_ReportControl_GetTextByCell ( 0, 0 )

VbWindow("frmMain").ActiveX("Xtreme Report Control_2").Xtreme_ReportControl_SetTextByCell  0, 0 ,"abcdefg"

 

VbWindow("frmMain_2").Activate

Print VbWindow("frmMain_2").ActiveX("Xtreme Report Control").Xtreme_ReportControl_GetTextByCell ( 3, 4 )

 

 

 

ShortcutBar

'' 录制的脚本

'VbWindow("frmMain").Activate

'VbWindow("frmMain").ActiveX("Xtreme ShortcutBar Control").WinObject("XTPShortcutBar").Click 52,420

'VbWindow("frmMain").ActiveX("Xtreme ShortcutBar Control").VbTreeView("treeFavorites").Select "Inbox"

 

 

从录制的脚本来看,QTPShortcutBar控件的识别和操作依赖坐标,封装一个Xtreme_ShortcutBar_Select函数如下:

 

Function Xtreme_ShortcutBar_Select( obj, Caption )

       For i=0 to obj.Object.ItemCount - 1

              If obj.Object.Item(i).Caption = Caption Then

                     obj.Object.Item(i).Selected = true

                     Exit For

              End If    

       Next

End Function

RegisterUserFunc "ActiveX","Xtreme_ShortcutBar_Select","Xtreme_ShortcutBar_Select"

 

 

使用的例子如下:

 

VbWindow("frmMain").Activate

VbWindow("frmMain").ActiveX("Xtreme ShortcutBar Control").Xtreme_ShortcutBar_Select "Notes"

VbWindow("frmMain").ActiveX("Xtreme ShortcutBar Control").Xtreme_ShortcutBar_Select "Mail"

 

 

TaskPanel

 

''' 录制的脚本

'VbWindow("frmMain").Activate

'VbWindow("frmMain").ActiveX("Xtreme Task Panel Control").WinObject("XTPTaskPanel").Click 84,306

'VbWindow("frmMain").ActiveX("Xtreme Task Panel Control").WinObject("XTPTaskPanel").Click 71,76

'VbWindow("frmMain").Dialog("ToolBox").WinButton("确定").Click

 

封装函数如下:

Function Xtreme_TaskPanel_ClickItem(obj, GroupCaption, ItemCaption)

' 先把所有项设置为为选择状态

For a=1 to obj.Object.Groups.Count

       For b = 1 to obj.Object.Groups.Item(a).Items.Count

              obj.Object.Groups.Item(a).Items.Item(b).Selected = false

              obj.Type micUp      ' 通过键盘(向上键)移到最顶端

       Next

Next

 

For i=1 to obj.Object.Groups.Count

       If obj.Object.Groups.Item(i).Caption = GroupCaption Then       ' 查找指定的Group

              obj.Object.Groups.Item(i).Expanded = true

              For j=1 to obj.Object.Groups.Item(i).Items.Count

            If  obj.Object.Groups.Item(i).Items.Item(j).Caption = ItemCaption Then ' 查找指定的Item

                            obj.Object.Groups.Item(i).Items.Item(j).EnsureVisible()                         

                            For n=1 to i+j-1

                    obj.Type micDwn   ' 通过键盘(向下键)移到指定的Item

                            Next

                            obj.Type micReturn ' 通过键盘(回车键)模拟单击选择Item

                            Exit For

                     End If

              Next

              Exit For

       End If

Next

End Function

RegisterUserFunc "ActiveX","Xtreme_TaskPanel_ClickItem","Xtreme_TaskPanel_ClickItem"

 

 

使用例子如下:

VbWindow("frmMain").Activate

VbWindow("frmMain").ActiveX("Xtreme Task Panel Control").Xtreme_TaskPanel_ClickItem "Data", "DataSet"

VbWindow("frmMain").Dialog("ToolBox").Activate

VbWindow("frmMain").Dialog("ToolBox").WinButton("确定").Click

 

VbWindow("frmMain").ActiveX("Xtreme Task Panel Control").Xtreme_TaskPanel_ClickItem "Components", "Timer"

VbWindow("frmMain").Dialog("ToolBox").Activate

VbWindow("frmMain").Dialog("ToolBox").WinButton("确定").Click

 

 

 

 

 

 

注:QtestWare已添加对CodeJock Xtreme Suite VB类库的支持

http://blog.youkuaiyun.com/Testing_is_believing/archive/2010/01/03/5125592.aspx

☆ 资料说明:☆ 专业级MFC界面控件套装,支持最近的Visual Studio 2010和Windows7风格; 压缩包内包括安装程序和注册机; ☆ 软件简介:☆ Codejock Software 创建于 1998 年,专业开发 MS Visual Studio 开发环境下的组件,便于 VC 开发人员轻松开发出各种界面,如类似 VC++6.0 的开发界面、 Outlook 界面等,并支持 XP 风格。由于功能的完善, Extreme Toolkit 被许多大公司采用。 2003 年 Codejock 公司加快开发,开发出一系列界面组件,包括 Extreme Toolkit 4.1 , Extreme Toolkit Pro , Extreme Suite 等组件包,支持开发环境也从 VC++5/ 6 升 级到 VC++.NET 和 VB ,而且支持 Windows XP 、 OfficeXP/2003 、 Outlook2003 、 Visual Studio 2005 等风格主题。目前是 VC/VB 和 .NET 开发环境下最好的界面开发组件之一。 Codejock 软件公司的 Xtreme 套件(Xtreme Suite)包含了三种流行的组件: Xtreme 命令工具栏(Xtreme Command Bars)—— 把需要创建的具有改进对接算法的所有组件提供给 Windows 的图形用户界面(GUI)工程师,这些组件用来创建具有 Microsoft Office XP 风格的工具栏和菜单。 Xtreme 浮动面板(Xtreme Docking Pane)—— 把所有组件提供给 Windows 的图形用户界面(GUI)工程师,这些组件用来创建具有改进 Visual Studio.NET 风格的浮动面板。 Xtreme 属性网格(Xtreme Property Grid)—— 把完善的 Visual Studio.NET 风格的属性网格提供给 Windows 的图形用户界面(GUI)工程师。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值