QTP测试CodeJock Xtreme Suite控件

2024-03-26 05:48

本文主要是介绍QTP测试CodeJock Xtreme Suite控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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.csdn.net/Testing_is_believing/archive/2010/01/03/5125592.aspx

这篇关于QTP测试CodeJock Xtreme Suite控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847461

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

可测试,可维护,可移植:上位机软件分层设计的重要性

互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前后端吗? 有必要。本文从三个方面论述。分别是可测试,可维护,可移植。 可测试 软件黑盒测试更普遍,但很难覆盖所有应用场景。于是有了接口测试、模块化测试以及单元测试。都是通过降低测试对象

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if