扩展自动化测试工具识别控件的方法技术

技术编号:7481093 阅读:260 留言:0更新日期:2012-07-05 06:22
本发明专利技术公开了一种扩展自动化测试工具识别控件的方法,包括:S1:自动化测试工具通过本地配置文件获取待测软件中不可识别控件的控件标识信息,S2:所述自动化测试工具将所述控件标识信息发送给所述待测软件;S3:所述待测软件将所述控件运行时的属性发送给所述自动化测试工具;S4:所述自动化测试工具利用所述控件的代理类解析所述属性,并根据解析后的属性执行控件的操作或验证,所述代理类为与所述控件的类相同的类。本发明专利技术实现了对不支持IAccessible接口的控件的识别,提高了回放效率,减小了后期的维护成本。

【技术实现步骤摘要】

本专利技术涉及自动化测试
,特别涉及一种。
技术介绍
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试, 得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。使用自动化测试工具的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。利用自动化测试工具对软件进行自动化测试,需要被测软件的控件能被自动化测试工具识别,即被测控件是工具中已经预定义的控件,这样才能操作被测软件,和验证被测软件的数据是否是期望结果。当前的测试软件和技术UI级别的测试工具这类软件通过识别软件的界面原色和记录用户的鼠标键盘操作来达到控制应用程序的目的。对于结果比较也是通过识别用户界面中的元素的状态来判断操作的结果。这些方法对于标准的windows控件是通用的,这种方法实现了一种黑盒式的自动化测试,所作的一切都是在模拟用户的操作。这种方法是建立在对软件的UI元素能自动识别的基础上的。当前的难点对于非标准的windows控件,现有的工具无法自动识别,导致无法通过自动的方式驱动软件运行。要想对这样的软件进行自动化的测试,必须寻找一些其它的方法。MSAA(Microsoft Active Accessibility)为在应用程序和帮助技术之间交换信息提供了标准的、一致的机制。例如,MSAA允许程序把所有对象的类型、名称、位置、当前状态暴露给屏幕读者并通知屏幕读者任何windows事件导致的用户接口改变,这原本是微软为有视力障碍人士开发一些接口,但是后来发现这些接口也可以用于对⑶I元素的控制从而实现自动化测试。Active Accessibility的主要思想是提供一种以程序方式访问UI元素信息或操作这些UI元素的功能。支持这种功能的UI (User Interface)元素是可访问的。在大多数情况下,这意味着一个UI元素支持IAccessible接口。也可以说在Active Accessibility的世界里,一个可访问的UI元素可表示为IAccessible接口。MSAA的核心功能由0LEACC.DLL提供。每次调用一个函数返回的IAccessible接口指针与一个UI元素相对应,0LEACC.DLL就检查此元素是否内在的支持IAccessible。内在的支持意思是该元素的IAccessible是用程序实现的。当一个UI元素不能内在的支持IAccessible时,0LEACC. DLL检查该元素的Windows类名。如果该类是一个USER或者C0MCTL32支持的类,OLEACC. DLL就创建一个代理为UI元素实现IAccessible接口。标准控件默认都是支持IAccessible接口,自定义的一些控件,如果没有实现,是不能正确支持的。现有技术的缺陷目前的测试工具对被测软件的支持不好,只能识别支持了 IAccessible接口的控件,大部分控件无法识别,原因是测试工具只能读取标准控件的属性,而后开发的自定义控件属性没有支持IAccessible接口无法获取到。遇到这种情况,目前只能录制到对某点坐标的操作,导致回放效率低下,后期维护的成本很大,而且对无法识别的控件不能完成数据的验证。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是如何实现对不支持IAccessible接口的控件的识别。(二)技术方案为解决上述技术问题,本专利技术提供了一种, 包括以下步骤Sl 自动化测试工具通过本地配置文件获取待测软件中不可识别控件的控件标识 fn息,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格式文件的形式放入共享内存中,以方便解析,如KControl id =“BtnLogin”Rect ="10. 10. 10. 10”enable =”true”visible =”true”X\Control>。步骤4、自动化测试工具利用进程间通信,循环监视该共享内存,若有控件运行时的属性,则读取该属性。步骤S104,自动化测试工具利用所述控件的代理类解析所述属性。其中,代理类实现了步骤SlOl中获取的不可识别的控件的控件类中被测的属性和执行操作的方法,如待测软件中有类fxButtont,则在测试代码中定义代理类t本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李阳
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术