CN100472472C - Windows平台下基于MSAA的GUI测试驱动方法 - Google Patents

Windows平台下基于MSAA的GUI测试驱动方法 Download PDF

Info

Publication number
CN100472472C
CN100472472C CNB2007100253749A CN200710025374A CN100472472C CN 100472472 C CN100472472 C CN 100472472C CN B2007100253749 A CNB2007100253749 A CN B2007100253749A CN 200710025374 A CN200710025374 A CN 200710025374A CN 100472472 C CN100472472 C CN 100472472C
Authority
CN
China
Prior art keywords
script
window
environment
msaa
windows
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.)
Expired - Fee Related
Application number
CNB2007100253749A
Other languages
English (en)
Other versions
CN101105768A (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CNB2007100253749A priority Critical patent/CN100472472C/zh
Publication of CN101105768A publication Critical patent/CN101105768A/zh
Application granted granted Critical
Publication of CN100472472C publication Critical patent/CN100472472C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Windows平台下基于MSAA的GUI测试驱动方法。其步骤是:由脚本解释器读取脚本文件至内存中;再根据测试脚本进行环境感知,脚本解释器通过环境感知器执行脚本中指定的感知要求,寻找符合要求的操作点,环境感知器使用Windows提供的MSAA接口,并按照脚本中指定条件搜索当前环境中的对象的IAccessible接口,当找到满足条件的窗口时,向脚本返回窗口句柄;如发现符合需求的操作点,由脚本解释器控制动作执行器产生相应的动作,动作执行器把输入焦点设定在特定窗口对象上,然后产生鼠标或键盘输入。本发明使程序对于***作对象有识别和判断能力,测试过程中减少了人工干预,提高了劳动生产率。

Description

Windows平台下基于MSAA的GUI测试驱动方法
一、技术领域
本发明涉及一种Windows平台下的GUI测试驱动方法,特别应用了基于MSAA的GUI操作技术,实现了一个自动化的GUI程序测试驱动***。
二、背景技术
随着计算机***人机接口越来越图形化,GUI(图形用户接口)的应用变得越来越广泛。但是,开发GUI交互程序一个重大的挑战是如何对GUI接口进行测试的问题。自动化的GUI测试要求测试驱动程序能够具备一定的判断能力,能够根据当前环境状况进行判断,选择应该执行的操作。
传统的GUI程序测试,要么通过雇用大量的测试员进行实际的操作,要么使用一些初级的GUI操作工具,盲目地产生输入流。传统测试驱动方法要么耗费大量的人力资源,要么抗干扰的能力很差,一有扰动就会导致进入不正确的状态,最终导致依然需要分配人员值守。
一个优秀的自动GUI测试解决方案,应该能够对于GUI的表现和事件有一定的反应能力,能够根据当前的状态进行判断,然后产生相应的输入。这种方案应该尽可能少地要求人工干预。
三、发明内容
本发明所要解决的技术问题是提供一种具有情景反应能力的GUI测试驱动***,其可以减少对具有GUI的软件的测试过程中的人工干预,自动完成测试用例。
本发明所述的基于MSAA的GUI测试驱动***,它包括测试脚本解释器、环境感知器和动作执行器。脚本解释器用于解释用户编写的测试用例脚本,控制环境感知器识别当前环境以及控制动作执行器产生输入。该程序执行的步骤如下:
a)读取测试驱动脚本:这个由测试人员根据具体的语言规范把抽象的测试用例编写成具体的测试脚本。脚本解释器读取脚本文件到内存中;
b)根据测试脚本进行环境感知:脚本解释器通过环境感知器执行脚本中指定的感知要求,寻找符合要求的操作点;
c)执行特定动作:如果发现符合需求的操作点,由脚本解释器控制动作执行器产生相应的动作。
在上述步骤b)中,环境感知器使用Windows提供的MSAA接口,并按照脚本中指定的条件搜索当前环境中的对象的IAccessible接口,当找到满足条件的窗口时,向脚本返回窗口句柄。
在步骤c)中,动作执行器把输入焦点设定在特定的窗口对象上,然后调用Windows的API产生鼠标或键盘输入。
在编写测试脚本的时候,至少会用到下面的语句:
语句1 观察环境
find topwnd″标题″|
     childwnd″名字″″角色″″类″|
     anywnd″名字″″角色″″类″|
topwnd表示最顶层的窗口,通常表示一个应用程序。只要一个标题参数;childwnd表示在当前窗口环境下,查找符合条件的子窗口的IAccessible,要三个参数;anywnd由于不好确定父窗口是谁,所以从桌面开始查找子窗口的IAccessible接口,要三个参数
语句2 动作
do kbinput″字符串″|
   (click|rclick|dbclick) x y
其中kbinput表示产生键盘输入,″字符串″是要输入的串。下面click表示产生鼠标左键单击操作,rclick表示产生鼠标右键单击操作,dbclick表示产生鼠标左键双击操作,最后x y表示点击操作的坐标这个坐标是基于上一个find命令找到的窗口的左上角。本发明通过脚本解释器控制执行流程,通过环境感知器获得符合条件的环境位置,通过动作执行器产生相应的输入。通过根据需要编写的测试脚本可以对加载到***上的程序进行自动化的操作。
本发明与现有的技术相比,其显著优点是:程序对于***作的对象有识别和判断能力。所以在测试的过程中只是需要很少的人工干预,大大提高了劳动生产率。
四、附图说明
图1显示了本发明的***结构。
图2—1,2—2,2—3分别显示了三个主要工作流程。
五、具体实施方式
1、运行环境:
(1)运行Windows***的PC机,它们作为程序运行的平台。
(2)在PC机器上安装本程序作为GUI测试驱动***。
(3)将被测试软件装载到该平台上。
(4)安装Microsoft的Inspect32辅助编写测试脚本。
(5)为测试过程编写测试脚本。
***结构如图1所示,它包括脚本解释器、环境感知器、动作执行器,所述脚本解释器解释由测试程序员编写的测试脚本程序,通过使用环境感知器的接口在运行环境中对象,当满足条件的对象出现的时候,脚本解释器又会使用动作执行器产生键盘或鼠标的输入。
2、场景:
图2—1,显示了本***的脚本解释器的工作流程。解释程序首先读入指定的测试驱动脚本,然后开始逐句解释脚本。如果当前的语句是一个感知环境的脚本语句(即寻找符合条件的窗口对象,并返回窗口对象的句柄),那么就调用环境感知器执行相应的判断。如果是一个执行动作语句(通常跟在一系列环境感知语句之后),那就调用脚本执行器执行相应的脚本产生输入动作。
在安装好的Windows和本***的PC机上装载要测试的应用程序。然后,为程序编写测试脚本。接着在控制台下输入黑体字部分运行
C:\>PCompiler脚本文件名
然后,脚本解释程序会执行测试脚本,寻找符合条件的窗口对象,然后产生相应的操作。
寻找符合条件的窗口对象的流程如图2-2所示。Windows的窗口***是以桌面为根组织成树状结构。寻找符合条件的窗口对象是从桌面开始搜索,获得当前窗口的IAccessible接口,通过这个IAccessible接口的方法得到窗口的名字(IAccessible::get_accName)、角色(IAccessible::get_accRole)、类(WindowFromAccessibleObject和GetObjectClass)等信息,信息符合判断条件,则返回当前窗口的句柄,否则递归搜索当前窗口的所有子窗口()IAccessible::get_accChild和IEnumVARIANT接口)进行判断,直到找到要找的窗口或者穷举完所有的窗口。
执行相应操作的流程如图2-3所示。首先判断这个语句要执行的是键盘输入还是鼠标输入。如果是键盘输入,读取输入字符串,逐个输入字符串所描述的所有按键事件。如果是鼠标输入,读取鼠标输入的类型(左键单击、右键单击、双击),然后输入相应的鼠标事件。
3、技术描述:
(1)MSAA:
窗口元素的识别使用了Microsoft Active Accessibility技术。这种技术通过对Windows平台下面的窗口程序暴露统一的COM接口。使得程序员可以通过此接口可以识别和操作Windows上的标准界面元素。
这里窗口有三个重要的属性:Name、Class、Role。Name表示窗口的名字,Class表示窗口在***中注册的类名,Role表示开发人员赋予窗口的角色。有了这三个属性以及窗口的父窗口信息,就能够唯一确定一个窗口。
(2)Windows消息机制
在产生动作上面,使用Windows的消息机制,在Windows的桌面环境下产生键盘或鼠标输入。这个过程是通过Windows的API SendInput实现。

Claims (3)

1、一种Windows平台下基于MSAA的GUI测试驱动方法,其特征包括测试脚本解释器、环境感知器和动作执行器,脚本解释器用于解释用户编写的测试用例脚本,控制环境感知器识别当前环境以及控制动作执行器产生输入;其步骤如下:
a)由脚本解释器读取测试用例脚本至内存中;
b)根据测试用例脚本进行环境感知,脚本解释器通过环境感知器执行测试用例脚本中指定的感知要求,其中环境感知器使用Windows提供的MSAA接口,并按照测试用例脚本中指定的条件搜索当前环境中的对象的IAccessible接口,当找到满足条件的窗口时,向测试用例脚本返回窗口句柄;
c)最后由脚本解释器控制动作执行器产生相应的动作。
2、根据权利要求1所述的Windows平台下基于MSAA的GUI测试驱动方法,其特征是:在步骤c)中,动作执行器把输入焦点设定在特定的窗口对象上,然后调用Windows的API产生鼠标或键盘输入。
3、根据权利要求1或2所述的Windows平台下基于MSAA的GUI测试驱动方法,其特征是:需要使用下面的语言机制:
语句1 观察环境
find topwnd″标题″|
     childwnd″名字″″角色″″类″|
     anywnd″名字″″角色″″类″|
topwnd表示最顶层的窗口,通常表示一个应用程序,只要一个标题参数;childwnd表示在当前窗口环境下,查找符合条件的子窗口的IAccessible,要三个参数;anywnd由于不好确定父窗口是谁,所以从桌面开始查找子窗口的IAccessible接口,要三个参数;
语句2 动作
do kbinput″字符串″|
   (click|rclick|dbclick)x y
其中kbinput表示产生键盘输入,″字符串″是要输入的串,下面click表示产生鼠标左键单击操作,rclick表示产生鼠标右键单击操作,dbclick表示产生鼠标左键双击操作,最后x y表示点击操作的坐标这个坐标是基于上一个find命令找到的窗口的左上角。
CNB2007100253749A 2007-07-26 2007-07-26 Windows平台下基于MSAA的GUI测试驱动方法 Expired - Fee Related CN100472472C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100253749A CN100472472C (zh) 2007-07-26 2007-07-26 Windows平台下基于MSAA的GUI测试驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100253749A CN100472472C (zh) 2007-07-26 2007-07-26 Windows平台下基于MSAA的GUI测试驱动方法

Publications (2)

Publication Number Publication Date
CN101105768A CN101105768A (zh) 2008-01-16
CN100472472C true CN100472472C (zh) 2009-03-25

Family

ID=38999672

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100253749A Expired - Fee Related CN100472472C (zh) 2007-07-26 2007-07-26 Windows平台下基于MSAA的GUI测试驱动方法

Country Status (1)

Country Link
CN (1) CN100472472C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751329B (zh) * 2008-12-18 2012-01-25 大唐移动通信设备有限公司 一种实现自动测试的方法和***
JP5490036B2 (ja) * 2011-02-14 2014-05-14 株式会社Nttドコモ 試験装置
CN109542440A (zh) * 2018-11-29 2019-03-29 金蝶软件(中国)有限公司 对窗口的操作方法和装置、计算机装置及可读存储介质
CN110287088B (zh) * 2019-01-14 2021-08-31 南京大学 一种基于动态ui模型的自动化测试方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943048A (en) * 1997-11-19 1999-08-24 Microsoft Corporation Method and apparatus for testing a graphic control area
CN1851667A (zh) * 2006-02-15 2006-10-25 华为技术有限公司 一种图形用户界面的测试方法和***
CN1866219A (zh) * 2005-12-09 2006-11-22 华为技术有限公司 基于自动化测试脚本对被测对象进行测试的方法和***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943048A (en) * 1997-11-19 1999-08-24 Microsoft Corporation Method and apparatus for testing a graphic control area
CN1866219A (zh) * 2005-12-09 2006-11-22 华为技术有限公司 基于自动化测试脚本对被测对象进行测试的方法和***
CN1851667A (zh) * 2006-02-15 2006-10-25 华为技术有限公司 一种图形用户界面的测试方法和***

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GUI自动测试工具设计与实现. 杨凡德,李小将,闫舒.装备指挥技术学院学报,第14卷第3期. 2003
GUI自动测试工具设计与实现. 杨凡德,李小将,闫舒.装备指挥技术学院学报,第14卷第3期. 2003 *
一种基于GUI的测试脚本开发环境. 阚红星,龚育昌.计算机***应用,第1期. 2005
一种基于GUI的测试脚本开发环境. 阚红星,龚育昌.计算机***应用,第1期. 2005 *

Also Published As

Publication number Publication date
CN101105768A (zh) 2008-01-16

Similar Documents

Publication Publication Date Title
JP7017613B2 (ja) 自動検出されるターゲットラベルに基づくロボティックプロセスオートメーションアクティビティのネーミング(名付け)
US9465726B2 (en) Abstract layer for automatic user interface testing
US20170052824A1 (en) Method and system for process automation in computing
CN113015956B (zh) 用于机器人流程自动化的活动目标选择的***和方法
US8875103B2 (en) Method of testing multiple language versions of a software system using one test script
US11054960B1 (en) Fuzzy target selection for robotic process automation
CN1530817A (zh) 有效内容的向导:任务和结构内容的执行
JP2006228210A (ja) 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成
CN100472472C (zh) Windows平台下基于MSAA的GUI测试驱动方法
Cheng et al. Seeclick: Harnessing gui grounding for advanced visual gui agents
CN112667218A (zh) 一种处理方法、装置、设备及存储介质
Cheng et al. YOLOv5‐MGC: GUI Element Identification for Mobile Applications Based on Improved YOLOv5
Xue et al. [Retracted] Visual Identification of Mobile App GUI Elements for Automated Robotic Testing
CN117215661A (zh) 一种事件处理的方法、装置以及存储介质
CN115269101A (zh) 一种基于RPA实现Excel数据透视表拾取的方法
CN106371818B (zh) 一种用于处理用户级事件以编制应用程序的方法
Rose et al. Modechart toolset user’s guide
CN115390720A (zh) 包括自动文档滚动的机器人过程自动化(rpa)
CN113703637A (zh) 巡检任务代码化方法、装置、电子设备和计算机存储介质
CN109669871B (zh) 一种实现Oracle Form自动化测试的方法
CN101819527B (zh) 一种提高嵌入式图形用户接口***实时性的方法
US20140068558A1 (en) Displaying Dependent Files for Computer Code in a Tabbed-Application User Interface
CN101308648B (zh) 自动化测试显示装置的方法及其***
CN114115835B (zh) 自动编码执行流程构建方法、装置、存储介质及智能终端
US11966724B1 (en) Framework and system for building assisted automations from recordings using program synthesis

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090325

Termination date: 20160726