CN102541728A - 扩展自动化测试工具识别控件的方法 - Google Patents
扩展自动化测试工具识别控件的方法 Download PDFInfo
- Publication number
- CN102541728A CN102541728A CN2010106025574A CN201010602557A CN102541728A CN 102541728 A CN102541728 A CN 102541728A CN 2010106025574 A CN2010106025574 A CN 2010106025574A CN 201010602557 A CN201010602557 A CN 201010602557A CN 102541728 A CN102541728 A CN 102541728A
- Authority
- CN
- China
- Prior art keywords
- control
- test tool
- automated test
- attribute
- identification information
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种扩展自动化测试工具识别控件的方法,包括:S1:自动化测试工具通过本地配置文件获取待测软件中不可识别控件的控件标识信息,S2:所述自动化测试工具将所述控件标识信息发送给所述待测软件;S3:所述待测软件将所述控件运行时的属性发送给所述自动化测试工具;S4:所述自动化测试工具利用所述控件的代理类解析所述属性,并根据解析后的属性执行控件的操作或验证,所述代理类为与所述控件的类相同的类。本发明实现了对不支持IAccessible接口的控件的识别,提高了回放效率,减小了后期的维护成本。
Description
技术领域
本发明涉及自动化测试技术领域,特别涉及一种扩展自动化测试工具识别控件的方法。
背景技术
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
使用自动化测试工具的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
利用自动化测试工具对软件进行自动化测试,需要被测软件的控件能被自动化测试工具识别,即被测控件是工具中已经预定义的控件,这样才能操作被测软件,和验证被测软件的数据是否是期望结果。
当前的测试软件和技术
UI级别的测试工具:这类软件通过识别软件的界面原色和记录用户的鼠标键盘操作来达到控制应用程序的目的。对于结果比较也是通过识别用户界面中的元素的状态来判断操作的结果。这些方法对于标准的windows控件是通用的,这种方法实现了一种黑盒式的自动化测试,所作的一切都是在模拟用户的操作。这种方法是建立在对软件的UI元素能自动识别的基础上的。
当前的难点:对于非标准的windows控件,现有的工具无法自动识别,导致无法通过自动的方式驱动软件运行。要想对这样的软件进行自动化的测试,必须寻找一些其它的方法。
MSAA(Microsoft Active Accessibility)为在应用程序和帮助技术之间交换信息提供了标准的、一致的机制。例如,MSAA允许程序把所有对象的类型、名称、位置、当前状态暴露给屏幕读者并通知屏幕读者任何windows事件导致的用户接口改变,这原本是微软为有视力障碍人士开发一些接口,但是后来发现这些接口也可以用于对GUI元素的控制从而实现自动化测试。Active Accessibility的主要思想是提供一种以程序方式访问UI元素信息或操作这些UI元素的功能。支持这种功能的UI(User Interface)元素是可访问的。在大多数情况下,这意味着一个UI元素支持IAccessible接口。也可以说在ActiveAccessibility的世界里,一个可访问的UI元素可表示为IAccessible接口。MSAA的核心功能由OLEACC.DLL提供。每次调用一个函数返回的IAccessible接口指针与一个UI元素相对应,OLEACC.DLL就检查此元素是否内在的支持IAccessible。内在的支持意思是该元素的IAccessible是用程序实现的。
当一个UI元素不能内在的支持IAccessible时,OLEACC.DLL检查该元素的Windows类名。如果该类是一个USER或者COMCTL32支持的类,OLEACC.DLL就创建一个代理为UI元素实现IAccessible接口。标准控件默认都是支持IAccessible接口,自定义的一些控件,如果没有实现,是不能正确支持的。
现有技术的缺陷:
目前的测试工具对被测软件的支持不好,只能识别支持了IAccessible接口的控件,大部分控件无法识别,原因是测试工具只能读取标准控件的属性,而后开发的自定义控件属性没有支持IAccessible接口无法获取到。遇到这种情况,目前只能录制到对某点坐标的操作,导致回放效率低下,后期维护的成本很大,而且对无法识别的控件不能完成数据的验证。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现对不支持IAccessible接口的控件的识别。
(二)技术方案
为解决上述技术问题,本发明提供了一种扩展自动化测试工具识别控件的方法,包括以下步骤:
S1:自动化测试工具通过本地配置文件获取待测软件中不可识别控件的控件标识信息,
S2:所述自动化测试工具将所述控件标识信息发送给所述待测软件;
S3:所述待测软件将所述控件运行时的属性发送给所述自动化测试工具;
S4:所述自动化测试工具利用所述控件的代理类解析所述属性,并根据解析后的属性执行控件的操作或验证,所述代理类实现了所述不可识别的控件的控件类中被测的属性和执行操作的方法。
其中,所述步骤S2具体为:
自动化测试工具将所述控件标识信息放入自动化测试工具和待测软件约定的测试机器的共享内存中;
所述待测软件利用进程间通信,循环监视所述共享内存,若有控件标识信息,则读取所述控件标识信息。
其中,所述步骤S3具体为:
所述待测软件将所述控件运行时的属性放入所述共享内存;
所述自动化测试工具利用进程间通信,循环监视所述共享内存,若有控件运行时的属性,则读取所述属性。
其中,所述控件运行时的属性以文本的形式存储在所述共享内存中。
其中,所述文本为XML格式文本。
其中,所述控件标识信息包括:所述控件所属的窗口的名称和控件ID。
(三)有益效果
本发明通过在自动化测试工具中扩展的与非标准控件类相应的代理类,实现了对不支持IAccessible控件的识别,提高了回放效率,减小了后期的维护成本。
附图说明
图1是本发明实施例的一种扩展自动化测试工具识别控件的方法流程图。
图2是图1的方法中待测软件的控件标识信息及控件属性获取示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
为自动化测试工具(如:IBM Rational Functional Tester,简称RFT)编写待测软件控件的代理类,然后通过控件的名称,与被测试软件进行进程间通讯,获得控件的属性(数据),操作被测软件,验证测试结果,从而完成测试,具体流程如图1所示,包括:
步骤S101,自动化测试工具通过本地配置文件获取待测软件中不可识别控件(如:不支持IAccessible接口的控件)的控件标识信息,其中,本地配置文件为待测软件的用于测试的配置文件。控件标识信息包括:控件所属的窗口的名称和控件ID,这两个参数可以唯一确定待测软件中的一个控件。其中配置文件中还包括控件的默认坐标,当进程间通讯失败后,可以根据该默认坐标进行操作。
步骤S102,自动化测试工具将读取的控件标识信息发送给待测软件。本实施例中采用共享内存的进程通信方式来实现发送,如图2所示,具体为:
步骤1、自动化测试工具将控件标识信息放入自动化测试工具和待测软件约定的测试机器的共享内存中。
步骤2、待测软件利用进程间通信,循环监视该共享内存,若有控件标识信息,则读取该控件标识信息。
步骤S103,待测软件将控件运行时的属性发送给自动化测试工具。如图2所示,具体为:
步骤3、待测软件将控件运行时的属性放入所述共享内存,其中包括:该控件的位置、尺寸大小等。该属性以XML格式文件的形式放入共享内存中,以方便解析,如:<Control id=“BtnLogin”Rect=”10.10.10.10”enable=”true”visible=”true”><\Control>。
步骤4、自动化测试工具利用进程间通信,循环监视该共享内存,若有控件运行时的属性,则读取该属性。
步骤S104,自动化测试工具利用所述控件的代理类解析所述属性。其中,代理类实现了步骤S101中获取的不可识别的控件的控件类中被测的属性和执行操作的方法,如待测软件中有类fxButtont,则在测试代码中定义代理类tfxButton与之对应。代理类的属性中,包括控件的位置、大小、是否有焦点及是否可用等标准控件的属性,并且也包含标准控件所支持的方法:如右键单击,左键单击,悬停等。
然后将解析的属性具体值赋值给代理类所创建的实例中相应的属性,根据属性值执行该实例的操作或验证,即执行控件的方法,从而对待测软件进行测试(图2中的步骤5)。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种扩展自动化测试工具识别控件的方法,其特征在于,包括以下步骤:
S1:自动化测试工具通过本地配置文件获取待测软件中不可识别控件的控件标识信息,
S2:所述自动化测试工具将所述控件标识信息发送给所述待测软件;
S3:所述待测软件将所述控件运行时的属性发送给所述自动化测试工具;
S4:所述自动化测试工具利用所述控件的代理类解析所述属性,并根据解析后的属性执行控件的操作或验证,所述代理类实现了所述不可识别的控件的控件类中被测的属性和执行操作的方法。
2.如权利要求1所述的扩展自动化测试工具识别控件的方法,其特征在于,所述步骤S2具体为:
自动化测试工具将所述控件标识信息放入自动化测试工具和待测软件约定的测试机器的共享内存中;
所述待测软件利用进程间通信,循环监视所述共享内存,若有控件标识信息,则读取所述控件标识信息。
3.如权利要求2所述的扩展自动化测试工具识别控件的方法,其特征在于,所述步骤S3具体为:
所述待测软件将所述控件运行时的属性放入所述共享内存;
所述自动化测试工具利用进程间通信,循环监视所述共享内存,若有控件运行时的属性,则读取所述属性。
4.如权利要求3所述的扩展自动化测试工具识别控件的方法,其特征在于,所述控件运行时的属性以文本的形式存储在所述共享内存中。
5.如权利要求4所述的扩展自动化测试工具识别控件的方法,其特征在于,所述文本为XML格式文本。
6.如权利要求1~5中任一项所述的扩展自动化测试工具识别控件的方法,其特征在于,所述控件标识信息包括:所述控件所属的窗口的名称和控件ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106025574A CN102541728A (zh) | 2010-12-14 | 2010-12-14 | 扩展自动化测试工具识别控件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106025574A CN102541728A (zh) | 2010-12-14 | 2010-12-14 | 扩展自动化测试工具识别控件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102541728A true CN102541728A (zh) | 2012-07-04 |
Family
ID=46348670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106025574A Pending CN102541728A (zh) | 2010-12-14 | 2010-12-14 | 扩展自动化测试工具识别控件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541728A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577309A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 自动化测试的方法及装置 |
CN104391797A (zh) * | 2014-12-09 | 2015-03-04 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
CN104572431A (zh) * | 2013-10-24 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN104636248A (zh) * | 2013-11-13 | 2015-05-20 | 航天信息股份有限公司 | 一种基于代码注入的自动化测试辅助识别方法 |
CN105095064A (zh) * | 2014-05-13 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种自绘控件的测试方法、测试装置和自绘控件以及系统 |
CN105204984A (zh) * | 2014-06-17 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种自绘控件测试方法和装置 |
CN105224462A (zh) * | 2015-10-27 | 2016-01-06 | 小米科技有限责任公司 | 控件元素的识别方法和装置 |
CN105302715A (zh) * | 2014-07-30 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 应用程序用户界面的获取方法和装置 |
CN105743736A (zh) * | 2016-01-27 | 2016-07-06 | 武汉联影医疗科技有限公司 | 自动化测试方法及系统 |
CN106155712A (zh) * | 2015-03-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种Windows控件属性的获取方法和装置 |
CN103713988B (zh) * | 2012-09-29 | 2018-01-26 | 腾讯科技(深圳)有限公司 | 程序测试装置及方法 |
CN109766266A (zh) * | 2018-12-15 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 测试工具选择方法、装置、计算机装置及可读存储介质 |
CN109783388A (zh) * | 2019-01-16 | 2019-05-21 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
CN110413502A (zh) * | 2018-04-28 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 程序测试方法及系统、计算机系统和计算机可读存储介质 |
CN110554967A (zh) * | 2019-09-10 | 2019-12-10 | 浙江中控技术股份有限公司 | 一种非标准控件的测试方法及装置 |
CN110704327A (zh) * | 2019-10-11 | 2020-01-17 | 江苏赛诺格兰医疗科技有限公司 | 一种pet-ct系统控制软件自动化测试的辅助方法 |
CN113268412A (zh) * | 2021-04-30 | 2021-08-17 | 摩尔元数(厦门)科技有限公司 | Web系统测试用例录制的控件解析方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182194A (ja) * | 1992-06-30 | 1995-07-21 | Sun Microsyst Inc | コンピュータ装置で試験機能を選択的に実行するための試験ドライバを自動的に発生する方法および装置 |
EP0834810A1 (en) * | 1996-09-19 | 1998-04-08 | Sun Microsystems, Inc. | Automatic generation of test drivers |
CN1744056A (zh) * | 2004-09-04 | 2006-03-08 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN1858719A (zh) * | 2005-12-27 | 2006-11-08 | 华为技术有限公司 | 一种自动化测试实现方法及其系统 |
CN101853157A (zh) * | 2010-05-14 | 2010-10-06 | 中国科学院软件研究所 | 一种应用软件gui对象自动识别方法 |
-
2010
- 2010-12-14 CN CN2010106025574A patent/CN102541728A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182194A (ja) * | 1992-06-30 | 1995-07-21 | Sun Microsyst Inc | コンピュータ装置で試験機能を選択的に実行するための試験ドライバを自動的に発生する方法および装置 |
EP0834810A1 (en) * | 1996-09-19 | 1998-04-08 | Sun Microsystems, Inc. | Automatic generation of test drivers |
CN1744056A (zh) * | 2004-09-04 | 2006-03-08 | 华为技术有限公司 | 一种应用程序的自动测试方法 |
CN1858719A (zh) * | 2005-12-27 | 2006-11-08 | 华为技术有限公司 | 一种自动化测试实现方法及其系统 |
CN101853157A (zh) * | 2010-05-14 | 2010-10-06 | 中国科学院软件研究所 | 一种应用软件gui对象自动识别方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577309A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 自动化测试的方法及装置 |
CN103713988B (zh) * | 2012-09-29 | 2018-01-26 | 腾讯科技(深圳)有限公司 | 程序测试装置及方法 |
CN104572431B (zh) * | 2013-10-24 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN104572431A (zh) * | 2013-10-24 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN104636248A (zh) * | 2013-11-13 | 2015-05-20 | 航天信息股份有限公司 | 一种基于代码注入的自动化测试辅助识别方法 |
CN104636248B (zh) * | 2013-11-13 | 2018-01-16 | 航天信息股份有限公司 | 一种基于代码注入的自动化测试辅助识别方法 |
CN105095064A (zh) * | 2014-05-13 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种自绘控件的测试方法、测试装置和自绘控件以及系统 |
CN105095064B (zh) * | 2014-05-13 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 一种自绘控件的测试方法、测试装置和自绘控件以及系统 |
CN105204984A (zh) * | 2014-06-17 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种自绘控件测试方法和装置 |
CN105204984B (zh) * | 2014-06-17 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 一种自绘控件测试方法和装置 |
CN105302715B (zh) * | 2014-07-30 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 应用程序用户界面的获取方法和装置 |
CN105302715A (zh) * | 2014-07-30 | 2016-02-03 | 腾讯科技(深圳)有限公司 | 应用程序用户界面的获取方法和装置 |
CN104391797B (zh) * | 2014-12-09 | 2017-11-10 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
CN104391797A (zh) * | 2014-12-09 | 2015-03-04 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
CN106155712A (zh) * | 2015-03-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种Windows控件属性的获取方法和装置 |
CN105224462B (zh) * | 2015-10-27 | 2018-02-13 | 小米科技有限责任公司 | 控件元素的识别方法和装置 |
CN105224462A (zh) * | 2015-10-27 | 2016-01-06 | 小米科技有限责任公司 | 控件元素的识别方法和装置 |
CN105743736B (zh) * | 2016-01-27 | 2019-01-04 | 武汉联影医疗科技有限公司 | 自动化测试方法及系统 |
CN105743736A (zh) * | 2016-01-27 | 2016-07-06 | 武汉联影医疗科技有限公司 | 自动化测试方法及系统 |
CN110413502A (zh) * | 2018-04-28 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 程序测试方法及系统、计算机系统和计算机可读存储介质 |
CN109766266A (zh) * | 2018-12-15 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 测试工具选择方法、装置、计算机装置及可读存储介质 |
CN109783388A (zh) * | 2019-01-16 | 2019-05-21 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
CN109783388B (zh) * | 2019-01-16 | 2022-03-01 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
CN110554967A (zh) * | 2019-09-10 | 2019-12-10 | 浙江中控技术股份有限公司 | 一种非标准控件的测试方法及装置 |
CN110554967B (zh) * | 2019-09-10 | 2023-09-08 | 浙江中控技术股份有限公司 | 一种非标准控件的测试方法及装置 |
CN110704327A (zh) * | 2019-10-11 | 2020-01-17 | 江苏赛诺格兰医疗科技有限公司 | 一种pet-ct系统控制软件自动化测试的辅助方法 |
CN113268412A (zh) * | 2021-04-30 | 2021-08-17 | 摩尔元数(厦门)科技有限公司 | Web系统测试用例录制的控件解析方法、装置、设备和介质 |
CN113268412B (zh) * | 2021-04-30 | 2022-08-30 | 摩尔元数(福建)科技有限公司 | Web系统测试用例录制的控件解析方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541728A (zh) | 扩展自动化测试工具识别控件的方法 | |
CN108427646B (zh) | 基于Appium的安卓App自动化测试框架构建方法和装置 | |
CN101882107A (zh) | 一种web应用自动化测试的方法及装置 | |
CN103186460A (zh) | 一种生成测试用例脚本的方法、装置及系统 | |
CN105718570A (zh) | 用于数据库的数据迁移方法和装置 | |
CN105302722B (zh) | Cts自动测试方法及装置 | |
US8745727B2 (en) | Graphical user interface tester | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN106126424A (zh) | 一种脚本可视化的自动化测试方法、装置和移动终端 | |
TWI476587B (zh) | 測試電子裝置之功能的測試方法以及測試裝置 | |
CN112069068A (zh) | 自动化测试数据处理方法、装置、设备及可读存储介质 | |
CN110659197B (zh) | 应用程序的测试用例生成方法、装置和软件测试系统 | |
CN113110960A (zh) | 一种基于硬盘性能的自动调优测试方法及系统 | |
CN101571922A (zh) | 一种用于移动终端自动化测试的文字识别工具及其方法 | |
JP4711138B2 (ja) | 情報処理装置および方法、プログラム、並びに記録媒体 | |
CN106610881A (zh) | 提取程序无响应发生时函数栈的提取方法和装置 | |
WO2021024476A1 (ja) | ソフトウェア解析装置、ソフトウェア解析方法及びコンピュータ可読媒体 | |
CN114328250A (zh) | 软件系统自动自检方法、介质和装置 | |
KR101460860B1 (ko) | 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법 | |
CN103914212A (zh) | 一种终端设备及其应用配置方法 | |
KR20100056338A (ko) | 재활용도를 높일 수 있는 gui 테스트 자동화 시스템 및 그 방법 | |
CN107979690A (zh) | 一种移动终端及其跳过开机向导的方法和系统 | |
CN104699607A (zh) | 一种移动终端自动化测试方法及系统 | |
CN109474822B (zh) | 一种安卓电视多国语言自动化测试的方法及装置 | |
CN109358972B (zh) | 中间件客户端的日志管理方法、装置及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120704 |