CN102521129B - 一种自绘窗口的测试方法和装置 - Google Patents

一种自绘窗口的测试方法和装置 Download PDF

Info

Publication number
CN102521129B
CN102521129B CN201110405562.0A CN201110405562A CN102521129B CN 102521129 B CN102521129 B CN 102521129B CN 201110405562 A CN201110405562 A CN 201110405562A CN 102521129 B CN102521129 B CN 102521129B
Authority
CN
China
Prior art keywords
com
window
painting
interface
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110405562.0A
Other languages
English (en)
Other versions
CN102521129A (zh
Inventor
方顺豹
郝永建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Feinno Communication Technology Co Ltd
Original Assignee
Beijing Feinno Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feinno Communication Technology Co Ltd filed Critical Beijing Feinno Communication Technology Co Ltd
Priority to CN201110405562.0A priority Critical patent/CN102521129B/zh
Publication of CN102521129A publication Critical patent/CN102521129A/zh
Application granted granted Critical
Publication of CN102521129B publication Critical patent/CN102521129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自绘窗口的测试方法和装置,涉及领域计算机技术领域,传统非自绘窗口每个控件都有各自的句柄,可以通过句柄实现UI的自动化测试。而自绘窗口是没有窗口句柄的,本发明提供了一种支持自绘窗口的UI的自动化测试的方法。该方法包括:以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;测试程序获取COM对象后,调用COM对象的COM接口对相应控件进行测试。本发明的技术方案,能够灵活实现自绘窗口,同时支持UI的自动化测试。

Description

一种自绘窗口的测试方法和装置
技术领域
本发明涉及领域计算机技术领域,特别涉及一种自绘窗口的测试方法和装置。
背景技术
随着计算机硬件性能的不断提高,带动了各种UI(即:User Interface用户界面)技术的革新。特别在用户交互UI方面,各种赏心悦目的UI层出不穷,使用户在软件使用体验方面得到了大大的改善。通过这种友好的交互,不但提高了软件的品质,更提高了用户的忠诚度。可想而知,在未来,UI还是会作为软件开发的重中之重,对一个软件的好坏产生直接的影响。
在现有的各种UI技术中,自绘窗口是实现绚丽UI界面的一种常用方式。使用此技术实现了绚丽的界面的同时,也同时为UI的自动化测试带来了麻烦。传统非自绘窗口每个控件都有各自的句柄,可以通过句柄实现UI的自动化测试。而自绘窗口是没有窗口句柄的,因为需要使用新的方法来支持UI的自动化测试。
发明内容
本发明提供了一种自绘窗口测试的方法和装置,本发明的技术方案能够灵活实现自绘窗口,同时支持UI的自动化测试。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种自绘窗口的测试方法,该方法包括:
以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;
测试程序获取COM对象后,调用COM对象的COM接口对相应控件进行测试。
在上述方法中,该方法进一步包括:
为自绘窗口中的每个COM对象分配一个指针,将该自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在所述自绘窗口中设置一个特定的属性,将所述队列的指针设置到所述自绘窗口中的特定属性中;
则所述测试程序获取COM对象包括:测试程序获取所述自绘窗口中的特定属性中的值,根据该值找到所述队列,根据该队列中的各指针获取对应的COM对象。
在上述方法中,将该队列的指针设置到所述自绘窗口中的特定属性中包括:
通过Windows API函数中的SetProp函数将该队列的指针设置到自绘窗口中的特定属性中。
在上述方法中,所述测试程序获取所述自绘窗口中的特定属性中的值包括:
测试程序通过Windows API函数中的GetProp函数获取自绘窗口中的特定属性中的值。
在上述方法中,所述COM接口包括:
控件类型接口、控件ID接口、控件名称接口、控件在窗口的位置接口、控件状态接口、控件支持的事件与消息接口。
在上述方法中,COM接口由一个基COM接口派生;
该基COM接口包括所述每个COM接口对应的方法。
在上述方法中,所述调用COM对象的COM接口对相应控件进行测试包括:
通过操作基COM接口中每个COM接口对应的方法实现调用COM对象的COM接口,进而实现对相应控件进行测试。
本发明还公开了一种自绘窗口的测试装置,该装置包括:COM封装模块和测试模块;
COM封装模块,用于以COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;
测试模块,用于获取COM对象后,调用COM对象的COM接口对相应控件进行测试。
在上述装置中,COM封装模块,进一步为自绘窗口中的每个COM对象分配一个指针,将该自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在所述自绘窗口中设置一个特定的属性,将所述队列的指针设置到所述自绘窗口中的特定属性中;
则测试模块,用于获取所述自绘窗口中的特定属性中的值,根据该值找到所述队列,根据所述队列中的各指针获取对应的COM对象。
在上述装置中,COM封装模块,用于通过Windows API函数中的SetProp函数将该队列的指针设置到所述自绘窗口中的特定属性中;
测试模块,用于通过Windows API函数中的GetProp函数获取所述自绘窗口中的特定属性中的值。
综上可见,本发明公开一种自绘窗口的测试方法,该方法包括:以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;测试程序获取COM对象后,调用COM对象的COM接口对相应控件进行测试。本发明的技术方案,能够灵活实现自绘窗口,同时支持UI的自动化测试。
附图说明
图1是本发明实施例中的一种自绘窗口的测试的方法流程图。
图2本发明实施例中的一种自绘窗口的测试装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例中的一种自绘窗口的测试方法流程图,如图1所示,使用如下方式来实现自绘窗口,以支持UI的自动化测试:
101,以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;COM接口包括:控件类型接口、控件ID接口、控件名称接口、控件在窗口的位置接口、控件状态接口、控件支持的事件与消息接口。。
102,测试程序获取COM对象后,调用COM对象的COM接口对相应控件进行测试。。
也就是说,自绘窗口中所有的控件都以COM的方式实现,一个控件就是一个COM对象。这样测试程序可以在得到每个COM对象后,调用COM接口来实现对控件的操作,以实现自动化测试。
为实现测试程序能够获取COM对象,首先,应为自绘窗口中的每个COM对象分配一个相应的指针,将该自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在该自绘窗口中设置一个特定的属性,将上述队列的指针设置到该自绘窗口中的特定属性中。
设置属性值函数是SetProp函数,其功能:该函数在指定窗口的属性表中增加一个新项,或者修改一个现有项。如果指定的字符串不在属性表中,那么就增加该新的项,新项中包含该字符串和句柄,否则就用指定的句柄替换该字符串的全前句柄。
因此,可通过Windows API函数中的SetProp函数将该队列的指针设置到该自绘窗口中的特定属性中。
此时,测试程序可采用以下方式获取COM对象:测试程序获取该自绘窗口中的特定属性中的值,根据该值找到该队列,根据该队列中的各指针获取对应的COM对象。
获取属性值函数是GetProp函数,其功能:该函数从给定窗口的属性列表中检索数据句柄。给定的字符串标识了要检索的句柄。该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中。
因此,测试程序通过Windows API函数中的GetProp函数来获取该自绘窗口中的特定属性中的值。
简单的说,可以采用先将COM对象指针形成的队列的指针设置到该自绘窗口的属性表中,再通过GetProp函数获取上述根据SetProp函数设置的该队列指针对应的属性值来获取该队列,并通过此队列得到所有控件的COM队形的方式,实现测试软件获取COM对象。
同时,为了实现测试程序获取控件的COM对象后,能够调用控件的COM接口对该控件进行操作,COM接口应由一个基COM接口派生;且基COM接口包括每个COM接口对应的方法,可通过操作基COM接口中每个COM接口对应的方法实现调用COM对象的COM接口,进而实现对相应控件进行测试。
图2本发明实施例中的一种自绘窗口的测试装置的结构图,如图2所示,该装置包括:COM封装模块201和测试模块202。
COM封装模块201,用于以COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;
测试模块202,用于获取COM对象后,调用COM对象的COM接口对相应控件进行测试。
为实现测试程序获取COM对象,可采用以下方式:
COM封装模块201,进一步为自绘窗口中的每个COM对象分配一个指针,将自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在自绘窗口中设置一个特定的属性,将上述队列的指针设置到该自绘窗口中的特定属性中;
则测试模块202,用于获取所述自绘窗口中的特定属性中的值,根据该值找到上述队列,根据该队列中的各指针获取对应的COM对象。
在上述装置中,COM封装模块201,用于通过Windows API函数中的SetProp函数将该队列的指针设置到所述自绘窗口中的特定属性中;
测试模块202,用于通过Windows API函数中的GetProp函数获取所述自绘窗口中的特定属性中的值。
在COM封装模块201中定义的各COM对象的COM接口包括:控件类型接口、控件ID接口、控件名称接口、控件在窗口的位置接口、控件状态接口、控件支持的事件与消息接口。这些COM接口由一个基COM接口派生。
为了实现测试模块202能够调用COM对象的COM接口对相应控件进行测试,可采用以下方式:派生COM接口的基COM接口包括每个COM接口对应的方法,通过操作基COM接口中每个COM接口对应的方法实现调用COM对象的COM接口,进而实现对相应控件进行测试。
综上可见,本发明公开一种自绘窗口的测试方法,该方法包括:以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口,测试程序获取COM对象后,调用COM对象的COM接口对相应控件进行测试。本发明的技术方案,能够灵活实现自绘窗口,同时支持UI的自动化测试。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (5)

1.一种自绘窗口的测试方法,其特征在于,该方法包括:
以组件对象模型COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;
为自绘窗口中的每个COM对象分配一个指针,将该自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在所述自绘窗口中设置一个特定的属性,将所述队列的指针设置到所述自绘窗口中的特定属性中;
测试程序获取所述自绘窗口中的特定属性中的值,根据该值找到所述队列,根据所述队列中的各指针获取对应的COM对象,调用COM对象的COM接口对相应控件进行测试;
其中,所述将该队列的指针设置到所述自绘窗口中的特定属性中包括:
通过Windows API函数中的SetProp函数将该队列的指针设置到所述自绘窗口中的特定属性中;
所述测试程序获取所述自绘窗口中的特定属性中的值包括:
所述测试程序通过Windows API函数中的GetProp函数获取所述自绘窗口中的特定属性中的值。
2.根据权利要求1所述的方法,其特征在于,所述COM接口包括:
控件类型接口、控件ID接口、控件名称接口、控件在窗口的位置接口、控件状态接口、控件支持的事件与消息接口。
3.根据权利要求2的方法,其特征在于,
所述COM接口由一个基COM接口派生;
所述基COM接口包括所述每个COM接口对应的方法。
4.根据权利要求3所述的方法,其特征在于,所述调用COM对象的COM接口对相应控件进行测试包括:
通过操作基COM接口中每个COM接口对应的方法实现调用COM对象的COM接口,进而实现对相应控件进行测试。
5.一种自绘窗口的测试装置,其特征在于,该装置包括:COM封装模块和测试模块;
COM封装模块,用于以COM形式封装自绘窗口中的每个控件,则一个控件就是一个COM对象,并定义各COM对象的COM接口;为自绘窗口中的每个COM对象分配一个指针,将该自绘窗口中的所有COM对象的指针放入一个队列中,为该队列分配一个指针,在所述自绘窗口中设置一个特定的属性,将所述队列的指针设置到所述自绘窗口中的特定属性中;
则测试模块,用于获取所述自绘窗口中的特定属性中的值,根据该值找到所述队列,根据所述队列中的各指针获取对应的COM对象;调用COM对象的COM接口对相应控件进行测试;
COM封装模块,用于通过Windows API函数中的SetProp函数将该队列的指针设置到所述自绘窗口中的特定属性中;
测试模块,用于通过Windows API函数中的GetProp函数获取所述自绘窗口中的特定属性中的值。
CN201110405562.0A 2011-12-08 2011-12-08 一种自绘窗口的测试方法和装置 Active CN102521129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110405562.0A CN102521129B (zh) 2011-12-08 2011-12-08 一种自绘窗口的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110405562.0A CN102521129B (zh) 2011-12-08 2011-12-08 一种自绘窗口的测试方法和装置

Publications (2)

Publication Number Publication Date
CN102521129A CN102521129A (zh) 2012-06-27
CN102521129B true CN102521129B (zh) 2014-10-22

Family

ID=46292060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110405562.0A Active CN102521129B (zh) 2011-12-08 2011-12-08 一种自绘窗口的测试方法和装置

Country Status (1)

Country Link
CN (1) CN102521129B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216828A (zh) * 2013-06-03 2014-12-17 刘伟 一种对被测应用程序进行功能遍历的测试方法
CN105204984B (zh) * 2014-06-17 2018-08-17 腾讯科技(深圳)有限公司 一种自绘控件测试方法和装置
CN109144864B (zh) * 2018-08-13 2022-09-06 北京百度网讯科技有限公司 用于测试窗口的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590330A (en) * 1994-12-13 1996-12-31 International Business Machines Corporation Method and system for providing a testing facility in a program development tool
US5634002A (en) * 1995-05-31 1997-05-27 Sun Microsystems, Inc. Method and system for testing graphical user interface programs
CN101021786A (zh) * 2007-03-15 2007-08-22 浪潮集团山东通用软件有限公司 一种调用通用构件的方法
CN100555219C (zh) * 2008-01-21 2009-10-28 中兴通讯股份有限公司 原子操作封装装置和方法
CN101872358A (zh) * 2010-06-02 2010-10-27 北京航空航天大学 用于计算机生成兵力仿真系统的数据池及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590330A (en) * 1994-12-13 1996-12-31 International Business Machines Corporation Method and system for providing a testing facility in a program development tool
US5634002A (en) * 1995-05-31 1997-05-27 Sun Microsystems, Inc. Method and system for testing graphical user interface programs
CN101021786A (zh) * 2007-03-15 2007-08-22 浪潮集团山东通用软件有限公司 一种调用通用构件的方法
CN100555219C (zh) * 2008-01-21 2009-10-28 中兴通讯股份有限公司 原子操作封装装置和方法
CN101872358A (zh) * 2010-06-02 2010-10-27 北京航空航天大学 用于计算机生成兵力仿真系统的数据池及其实现方法

Also Published As

Publication number Publication date
CN102521129A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN103543993B (zh) 应用程序构建方法和系统
CN103744659B (zh) 一种卡片式管理应用入口的方法和设备
WO2017133447A1 (zh) 一种智能设备的控制方法及装置、计算机存储介质
CN103559040A (zh) 一种基于sdk快速构建移动互联网应用模块的系统和方法
CN107786601B (zh) 一种信息处理方法、终端及服务器
CN102855648B (zh) 一种图像处理方法及装置
CN106293743A (zh) 一种移动建模系统及构建移动应用并实现跨平台发布的方法
CN104267898A (zh) 一种快捷触发应用程序或应用程序功能的方法及装置
CN103294335A (zh) 用于创建快键菜单的设备和方法
CN103914375A (zh) 一种自绘界面软件的测试方法和装置
CN101419620A (zh) 一种屏蔽网页元素的方法及其装置
CN102521129B (zh) 一种自绘窗口的测试方法和装置
WO2023040064A1 (zh) OpenHarmony操作系统应用的无代码智能开发系统及其使用方法
CN104461261A (zh) 管理移动终端默认应用的系统及方法
CN108108986A (zh) 一种客户关系管理系统的设计方法、装置及电子设备
WO2008043580A3 (en) Method for generating a graphical user interface
CN104102734A (zh) 数据展示方法及系统
CN104965813B (zh) 文字素材的处理方法和装置
CN103425490B (zh) 基于crm系统中运行对象数据的管理方法
CN102929506A (zh) 一种快速添加桌面元素至桌面的方法
CN115130442A (zh) 报表生成的方法、装置、存储介质及计算机设备
CN102622233A (zh) 自动生成适应于某交互终端设备用户界面的系统及方法
CN104123394B (zh) 用于数据库的报表文件的加工方法
CN105912723A (zh) 一种自定义字段的存储方法
CN103761096B (zh) 基于IBinder机制实现的自动输入方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A room 602

Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.