CN113238969B - 界面自动化测试方法、装置、设备及存储介质 - Google Patents

界面自动化测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113238969B
CN113238969B CN202110700172.XA CN202110700172A CN113238969B CN 113238969 B CN113238969 B CN 113238969B CN 202110700172 A CN202110700172 A CN 202110700172A CN 113238969 B CN113238969 B CN 113238969B
Authority
CN
China
Prior art keywords
interface
control
test
tested
uia
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
CN202110700172.XA
Other languages
English (en)
Other versions
CN113238969A (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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202110700172.XA priority Critical patent/CN113238969B/zh
Publication of CN113238969A publication Critical patent/CN113238969A/zh
Application granted granted Critical
Publication of CN113238969B publication Critical patent/CN113238969B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种界面自动化测试方法、装置、设备及存储介质。该界面自动化测试方法首先采用预设的UIA技术确定界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系,然后根据关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,再基于目标控件对待测试界面进行人工测试,得到标准化测试资产,最后通过标准化测试资产或者衍生资产对待测试界面进行自动化测试。有效提高了界面自动化测试的准确率和测试效率,人工测试的同时输出标准化测试资产,极大地提升了测试资产的积累效率和质量,为C/S程序的界面级自动化测试提供了一种行之有效且具有普适性的自动化测试方案。

Description

界面自动化测试方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种界面自动化测试方法、装置、设备及存储介质。
背景技术
随着软件测试工程化的发展,开发与测试呈现出一体化的发展趋势。Web程序基于相同的Web标准,尤其是超文本标记语言(HyperText Markup Language,HTML)标准,在开源繁荣的生态圈环境下,涌现出一大批web自动化测试框架和测试工具。
然而,C/S(Client/Server)程序的界面级自动化测试一直是盲区。针对C/S软件还没有行业级的标准测试手段,即使是大型的商业测试软件QTP、WinRunner、LoadRunner、TestPartner、SilkTest等,也无法提供一套行之有效的自动化测试工具。例如,目前日常C/S程序升级优化和缺陷修复的测试都是通过手工录入的方式进行,测试资产的积累需要大量手工操作,自动化程度不高,在实际使用过程中干扰严重,效率低下。另外,采用现有手段所生成的测试资产可读性不高,不便于二次加工以及生成衍生案例。
可见,现有技术中C/S程序的界面自动化测试存在测试效率不高、测试不充分以及自动化程度不高等缺陷,亟需一种解决方案以克服现有技术存在的上述缺陷。
发明内容
本申请提供一种界面自动化测试方法、装置、设备及存储介质,用于解决现有技术中C/S程序的界面级自动化测试存在测试效率不高、测试不充分以及自动化程度不高的技术问题。
第一方面,本申请提供一种界面自动化测试方法,包括:
采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系,所述界面控件为待测试界面包含的各原生控件;
根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,所述待测试程序的客户端界面为所述待测试界面;
基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,以通过所述标准化测试资产或者衍生资产对所述待测试界面进行自动化测试。
在一种可能的设计中,在所述采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系之前,还包括:
利用预设控件识别工具获取待测试程序的界面元素信息,所述界面元素信息包括所述待测试程序的各界面元素的元素属性值和元素坐标;
根据所述界面元素信息以及所述待测试程序的基类代码确定所述界面控件的体系结构。
在一种可能的设计中,所述关联关系包括:
所述界面控件的各控件属性与对应UIA属性之间的对应关系;
所述界面控件的各控件类型与对应UIA类型之间的对应关系;
所述界面控件的各控件事件与对应UIA行为之间的对应关系;
其中,所述UIA元素包括与所述各控件属性对应的所述UIA属性、与所述各控件类型对应的所述UIA类型以及与所述各控件事件对应的所述UIA行为。
在一种可能的设计中,所述根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,包括:
获取所述各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽所述各原生控件的差异性;
对所述控件属性中的测试属性的基类代码进行重写,以得到所述控件属性的父级信息,所述父级信息用于唯一描述所述各目标控件的路径;
对所述各控件事件中预设控件事件的基类代码进行重写,以得到所述各控件事件的监控行为;
对所述原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一所述预设控件事件的调用接口,以对外统一汇总到接口处理类中进行所述修改处理;
通过上述步骤完成所述修改处理,以将所有原生控件进行替换得到所述各目标控件。
在一种可能的设计中,所述基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,包括:
于所述待测试界面人工录入测试数据;
基于所述各目标控件,所述待测试程序根据所述测试数据获取测试控件或者测试事件;
针对所述测试控件或者所述测试事件,通过登记对象操作和记录操作完成测试过程,以当停止所述人工录入时,输出所述标准化测试资产。
在一种可能的设计中,所述登记对象操作包括对所述测试控件或者所述测试事件中的界面父级信息、界面地址信息以及界面类型进行获取;
所述记录操作包括对所述测试控件或者所述测试事件的对象名称、行为编码信息以及操作值进行获取。
在一种可能的设计中,所述标准化测试资产包括标准化的对象库以及标准化的测试案例库。
第二方面,本申请提供一种界面自动化测试装置,包括:
第一处理模块,用于采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系,所述界面控件为待测试界面包含的各原生控件;
第二处理模块,用于根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,所述待测试程序的客户端界面为所述待测试界面;
测试模块,用于基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,以通过所述标准化测试资产或者衍生资产对所述待测试界面进行自动化测试。
在一种可能的设计中,所述装置,还包括:第三处理模块;所述第三处理模块,用于:
利用预设控件识别工具获取待测试程序的界面元素信息,所述界面元素信息包括所述待测试程序的各界面元素的元素属性值和元素坐标;
根据所述界面元素信息以及所述待测试程序的基类代码确定所述界面控件的体系结构。
在一种可能的设计中,所述关联关系包括:
所述界面控件的各控件属性与对应UIA属性之间的对应关系;
所述界面控件的各控件类型与对应UIA类型之间的对应关系;
所述界面控件的各控件事件与对应UIA行为之间的对应关系;
其中,所述UIA元素包括与所述各控件属性对应的所述UIA属性、与所述各控件类型对应的所述UIA类型以及与所述各控件事件对应的所述UIA行为。
在一种可能的设计中,所述第二处理模块,具体用于:
获取所述各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽所述各原生控件的差异性;
对所述控件属性中的测试属性的基类代码进行重写,以得到所述控件属性的父级信息,所述父级信息用于唯一描述所述各目标控件的路径;
对所述各控件事件中预设控件事件的基类代码进行重写,以得到所述各控件事件的监控行为;
对所述原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一所述预设控件事件的调用接口,以对外统一汇总到接口处理类中进行所述修改处理;
通过上述步骤完成所述修改处理,以将所有原生控件进行替换得到所述各目标控件。
在一种可能的设计中,所述测试模块,具体用于:
于所述待测试界面人工录入测试数据;
基于所述各目标控件,所述待测试程序根据所述测试数据获取测试控件或者测试事件;
针对所述测试控件或者所述测试事件,通过登记对象操作和记录操作完成测试过程,以当停止所述人工录入时,输出所述标准化测试资产。
在一种可能的设计中,所述登记对象操作包括对所述测试控件或者所述测试事件中的界面父级信息、界面地址信息以及界面类型进行获取;
所述记录操作包括对所述测试控件或者所述测试事件的对象名称、行为编码信息以及操作值进行获取。
在一种可能的设计中,所述标准化测试资产包括标准化的对象库以及标准化的测试案例库。
第三方面,本申请提供一种电子设备,包括:
处理器;以及,
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器配置为经由执行所述计算机程序来执行第一方面所提供的任意一种可能的界面自动化测试方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所提供的任意一种可能的界面自动化测试方法。
第五方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所提供的任意一种可能的界面自动化测试方法。
本申请提供一种界面自动化测试方法、装置、设备及存储介质。该界面自动化测试方法,首先采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系,然后根据关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,再基于目标控件对待测试界面进行人工测试,得到标准化测试资产,最后通过标准化测试资产或者衍生资产对待测试界面进行自动化测试。有效提高了界面自动化测试的准确率和测试效率,人工测试的同时输出标准化测试资产,极大地提升了测试资产的积累效率和质量,为C/S程序的界面级自动化测试提供了一种行之有效且具有普适性的自动化测试方案。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种界面自动化测试方法的流程示意图;
图3为本申请实施提供的另一种界面自动化测试方法的流程示意图;
图4为本申请实施例提供一种原生控件替换为相应目标控件的示意图;
图5为本申请实施例提供的再一种界面自动化测试方法的流程示意图;
图6为本申请实施例提供的又一种界面自动化测试方法的流程示意图;
图7为本申请实施例提供的一种界面自动化测试装置的结构示意图;
图8为本申请实施例提供的另一种界面自动化测试装置的结构示意图;
图9为本申请提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
C/S(Client/Server)程序的界面级自动化测试一直是盲区。针对C/S软件还没有行业级的标准测试手段。例如,目前日常C/S程序升级优化和缺陷修复的测试都是通过手工录入的方式进行,测试资产的积累需要大量手工操作,自动化程度不高,在实际使用过程中干扰严重,效率低下。另外,采用现有手段所生成的测试资产可读性不高,不便于二次加工以及生成衍生案例。
针对现有技术中存在的上述问题,本申请提供一种界面自动化测试方法、装置、设备及存储介质。本申请提供的界面自动化测试方法的发明构思在于:针对待测试界面,从界面控件的体系结构出发,通过UIA技术确定出界面控件的体系结构与UIA元素之间的关联关系,基于该关联关系对待测试界面所对应的待测试程序的基类代码进行修改处理,以将待测试界面所包含的各原生控件替换为相应的各目标控件,进而基于目标控件对待测试界面进行人工测试,输出标准化测试资产,从而通过该标准化测试资产或者衍生资产能够实现对待测试界面的自动化测试,无需大量手工操作的积累过程,测试效率较高且自动化程度高。还便于二次加工以及可生成衍生案例,为C/S程序的界面自动化测试提供了一种行之有效且具有普适性的测试手段。
以下,对本申请实施例的示例性应用场景进行介绍。
图1为本申请实施例提供的一种应用场景示意图,如图1所示,在终端设备11上可以运行待测试程序,用户可以于待测试程序的客户端界面,也即待测试界面进行用户操作以获得待测试程序所提供服务。电子设备12中的处理器被配置为可以执行本申请实施例提供的界面自动化测试方法,以对终端设备11上运行的待测试程序的客户端界面实现自动化测试。
其中,终端设备11可以为计算机、笔记本电脑、平板电脑、智能手机、智能手表等能够支持待测试程序的任意终端,对此本实施例不作限定,图1中的终端设备11以智能手机为例示出。电子设备12可以为服务器、服务器集群或者计算机等设置,对此,本实施不作限定,图1中的电子设备12以计算机为例示出。
另外,本申请实施例对于待测试程序所具备的功能以及可以为用户提供的服务等不作限定。
需要说明的是,上述应用场景仅仅是示意性的,本申请实施例提供的界面自动化测试方法、装置、设备及存储介质包括但不仅限于上述应用场景。
图2为本申请实施例提供的一种界面自动化测试方法的流程示意图。如图2所示,本实施例提供的界面自动化测试方法,包括:
S101:采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系。
其中,界面控件为待测试界面包含的各原生控件。
微软用户交互自动化(Microsoft UI Automation,UIA)技术,是微软基于Net 3.0框架提供的一种自动化测试技术,其可以提供可视化控件元素的标准化属性和行为模式,对PC(Personal Computer)端界面程序具有很好的兼容性。
针对待测试界面所包含的各原生控件,即界面控件,采用预设的UIA技术确定出界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系。其中,界面控件的体系结构包括界面控件的各控件属性、界面控件的各控件类型以及界面控件的各控件事件,进而,预设的UIA技术中的UIA元素则包括与各控件属性对应的UIA属性、与各控件类型对应的UIA类型以及与各控件事件对应的UIA行为。
具体地,界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系则可以包括以下几种:
第一种关联关系可以为例如表1所示的界面控件的各控件属性与对应UIA属性之间的对应关系;
第二种关联关系可以为例如表2所示的界面控件的各控件类型与对应UIA类型之间的对应关系;
第三种关联关系可以为例如表3所示的界面控件的各控件事件与对应UIA行为之间的对应关系。
表1
表2
控件类型 作用 对应UIA类型
页面 Form UIA_WindowControlTypeId(0xC370)
面板 Panel UIA_PaneControlTypeId(0xC371)
组合框 GroupBox UIA_PaneControlTypeId(0xC371)
图片 PictureBox UIA_PaneControlTypeId(0xC371)
Tab键 TabControl UIA_TabControlTypeId(0xC362)
Tab页面 TabPage UIA_TabItemControlTypeId(0xC363)
文本框 TextBox UIA_EditControlTypeId(0xC354)
下拉框 ComboBox UIA_ComboBoxControlTypeId(0xC353)
按钮 Button UIA_ButtonControlTypeId(0xC350)
表格 GridView UIA_TableControlTypeId(0xC374)
表3
需要说明的是,上述表1、表2以及表3仅示意性示出了界面控件的各控件属性、界面控件的各控件类型及界面控件的各控件事件,但并不表示控件属性、控件类型以及控件事件限定于此。另外,各控件事件为各控件类型所表示的响应事件,例如表3中示出的各控件事件为表2中的各控件类型所表示的响应事件。
S102:根据关联关系对待测试程序的基类代码进行修改处理,得到各目标控件。
其中,待测试程序的客户端界面为待测试界面。
在得到界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系后,进一步根据所得到的关联关系对待测试程序的基类代码进行修改处理,以将待测试界面包含的各原生控件替换为对应的各目标控件。可以理解的是,待测试界面为待待测程序的客户端界面。
在一种可能的设计中,本步骤S102可能的实现方式如图3所示。图3为本申请实施提供的另一种界面自动化测试方法的流程示意图。如图3所示,本实施例可以包括:
S1021:获取各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽各原生控件的差异性。
针对待测试程序的基类代码,将用于表示各原生控件的基类代码进行继承,即获取各原始控件的基类代码。并继承原始测试接口以提供统一的接口类,例如,继承IAutoTest接口,其目的在于对内屏蔽各原生控件的差异性,以为最终得到的标准化测试资产提供统一的接口类。其中,原始测试接口是指各原生控件所对应的测试接口。
S1022:对控件属性中的测试属性的基类代码进行重写,以得到各控件属性的父级信息。
其中,父级信息用于唯一描述各目标控件的路径。进一步地,还可以对例如上述表1所示的控件属性中的测试(Text)属性的基类代码进行重写,以得到控件属性的父级信息,父级信息用于唯一描述待测试程序中各目标控件的路径。其中,通过该手段可以得到精准的父级信息。需要说明的是,本实施例对于重写的具体内容不作限定。
S1023:对各控件事件中预设控件事件的基类代码进行重写,以得到各控件事件的监控行为。
例如,还可以对各控件事件中部分事件的基类代码进行重写,以提供统一的事件级的监控行为,其中,该部分事件可以被定义为预设控件事件。具体地,对于各控件事件中部分事件的选取可以根据实际工况进行,对此,本实施不作限定。
S1024:对原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一预设控件事件的调用接口,以对外统一汇总到接口处理类中进行修改处理。
统一处理原始测试接口的返回信息,并统一与自动化测试脚本进行交互以及统一预设控件事件的调用接口,以将对外的基类代码统一汇总至接口处理类中进行基类代码的修改处理,专注于标准化测试资产的加工,以便于生成标准化测试资产。
通过上述步骤S1021至步骤S1024,可以完成对待测试程序的基类代码的修改处理,从而可以将所有原生控件替换为相应的各目标控件。
图4为本申请实施例提供一种原生控件替换为相应目标控件的示意图。通过上述步骤S1021至步骤S1024可以将如图4所示的各原生控件进行替换得到图4所示的相应目标控件,基于界面控件的体系结构中的控件属性和控件事件进行适度抽象和解耦,以实现对各原生控件进行修改处理以得到相应目标控件。可以理解的是,上述修改处理过程是对表示原生控件的基类代码进行侵入式改造,解决了界面自动化测试错误率高以及测试效率低下的问题。并且,对于接口类和接口处理类的抽象可以降低修改处理过程中产生的侵入式代码对待测试程序的基类代码的耦合,进而可以依据原生控件的基类代码的编程逻辑,准确捕获用户行为,以保证输出高质量的标准化测试资产。
需要说明的是,上述修改处理过程中所产生的侵入式代码是安全隔离的,可以使得修改处理过程简单易行。
S103:基于目标控件对待测试界面进行人工测试,得到标准化测试资产,以通过标准化测试资产或者衍生资产对待测试界面进行自动化测试。
在对待测试程序的基类代码进行修改处理,将各原生控件进行替换得到相应各目标控件之后,基于所得到的各目标控件,对待测界面进行人工测试,得到标准化测试资产,进一步则可以利用标准化测试资产或者衍生资产对待测试界面进行自动化测试。
其中,测试资产可以理解为测试过程中记录或输出的静态信息或动态脚本,静态信息相对较为固定,可以用于表述待测试程序的具体对象,而动态脚本可以用于表述人机交互过程,通常与实际的测试案例相关,测试资产还可以理解为是对象库和案例库的统称。
基于此,本申请实施例中将基于目标控件对待测试界面进行人工测试所得到的测试资产定义为标准化测试资产,该标准化测试资产则包括有标准化的对象库的标准化测试资产即为标准化测试资产包括标准化的对象库以及标准化的测试案例库。其中的标准化可以理解为当其他的待测试界面具备有类似的界面控件时,则可以使用标准化测试资产直接进行自动化测试。
衍生资产是对标准化测试资产进行再加工得到的相应结果,例如,假设标准化测试资产为“姓名文本框+输入+张三”,则衍生资产可以为“姓名文本框+输入+李四”等,又或者是对标准化测试资产中不同部分进行加工组合。需要说明的是,本申请实施例对于对标准化测试资产进行再加工得到衍生资产的具体方式不作限定。
在一种可能的设计中,本步骤S103中基于目标控件对待测试界面进行人工测试得到标准化测试资产的可能实现方式如图5所示。图5为本申请实施例提供的再一种界面自动化测试方法的流程示意图。如图5所示,本实施例可以包括:
S201:于待测试界面人工录入测试数据。
在待测试界面上通过人工录入测试数据。其中,测试数据的具体内容可以根据待测程序可以为用户所提供的具体服务决定,对此本实施例不作限定。
S202:基于各目标控件,待测试程序根据测试数据获取测试控件或者测试事件。
当人工录入测试数据之后,基于当前的各目标控件,待测试程序根据所录入的测试数据获取测试数据所对应的控件类型或者响应事件,所获取到的测试数据对应的控件类型被定义为测试控件,所获取到的测试数据对应的响应事件被定义为测试事件。
S203:针对测试控件或者测试事件,通过登记对象操作和记录操作完成测试过程,以当停止人工录入时,输出标准化测试资产。
在获取到测试控件或者测试事件后,针对测试控件或者测试事件,进一步可以通过登记对象操作和记录操作完成测试过程。并当停止人工录入时,通过待测试程序则可以输出标准化测试资产,以利用该标准化测试资产进行待测试解密的自动化测试,该标准化测试资产则可以持久化。
其中,登记对象操作可以包括获取测试控件或者测试事件的界面父级信息(GetAncestors)、获取测试控件或者测试事件的界面地址信息(Get Automation ID)以及获取测试控件或者测试事件的界面类型(Get UIA Type)。
记录操作包括获取测试控件或者测试事件的对象名称(Get Object Name)、获取测试控件或者测试事件的行为编码信息(Get Op-Code)以及获取测试控件或者测试事件的操作值(Get Op-Value)。
通过上述步骤可以得到标准化测试资产,进而利用标准化测试资产或者衍生资产对待测试界面实现自动化测试。
本申请实施例提供的界面自动化测试方法,首先采用预设的UIA技术确定界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系,然后根据关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,再基于目标控件对待测试界面进行人工测试,得到标准化测试资产,最后通过标准化测试资产或者衍生资产对待测试界面进行自动化测试。有效提高了界面自动化测试的准确率和测试效率,人工测试的同时输出标准化测试资产,极大地提升了测试资产的积累效率和质量,为C/S程序的界面级自动化测试提供了一种行之有效且具有普适性的自动化测试方案。
在一种可能的设计中,在步骤S101之前,本申请实施例提供的界面自动化测试方法还可以包如图6所示步骤。图6为本申请实施例提供的又一种界面自动化测试方法的流程示意图。如图6所示,本实施例可以包括:
S301:利用预设控件识别工具获取待测试程序的界面元素信息。
其中,界面元素信息包括待测试程序的各界面元素的元素属性值和元素坐标。
例如,可以利用Inspect工具抓取待测试程序的界面元素信息,其中,界面元素信息包括待测试程序的待测试界面中各界面元素的元素属性值和元素坐标。元素属性值和元素坐标的具体内容由待测试程序自身决定,对此,本实施例不作限定。Inspect工具则可以为预设控件识别工具。显然,预设控件识别工具还可以是其它可以识别界面元素信息的相应工具,对此,本实施例不作限定。
S302:根据界面元素信息以及待测试程序的基类代码确定界面控件的体系结构。
在获取到待测试程序的界面元素信息之后,进一步可以根据界面元素信息以及待测试程序自身的基类代码对待测试界面的界面控件的体系结构进行分析,以确定界面控件的体系结构。例如,所确定的界面控件的体系结构可以如上表1、表2以及表3中所示的界面控件的各控件属性、界面控件的各控件类型以及界面控件的各控件事件。
本实施例在确定界面控件的体系结构与UIA元素之间的关联关系之前通过本实施例的上述步骤确定界面控件的体系结构,使得后续的自动化测试过程可以摆脱预设控件识别工具的限制。并且使得本申请实施例提供的界面自动化测试方法可以从界面控件的本源触发,以保证后续输出高质量的标准化测试资产。
下述为本申请装置实施例,可以用于执行本申请对应的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请对应的方法实施例。
图7为本申请实施例提供的一种界面自动化测试装置的结构示意图。如图7所示,本实施例提供的界面自动化测试装置400,包括:
第一处理模块401,用于采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与预设的UIA技术中UIA元素之间的关联关系。
其中,界面控件为待测试界面包含的各原生控件。
第二处理模块402,用于根据关联关系对待测试程序的基类代码进行修改处理,得到各目标控件。
其中,待测试程序的客户端界面为待测试界面。
测试模块403,用于基于目标控件对待测试界面进行人工测试,得到标准化测试资产,以通过标准化测试资产或者衍生资产对待测试界面进行自动化测试。
在图7的基础上,图8为本申请实施例提供的另一种界面自动化测试装置的结构示意图。如图8所示,本实施例提供的界面自动化测试装置400,还包括:第三处理模块404。该第三处理模块404,用于:
利用预设控件识别工具获取待测试程序的界面元素信息,界面元素信息包括待测试程序的各界面元素的元素属性值和元素坐标;
根据界面元素信息以及待测试程序的基类代码确定界面控件的体系结构。
在一种可能的设计中,关联关系包括:
界面控件的各控件属性与对应UIA属性之间的对应关系;
界面控件的各控件类型与对应UIA类型之间的对应关系;
界面控件的各控件事件与对应UIA行为之间的对应关系;
其中,UIA元素包括与各控件属性对应的UIA属性、与各控件类型对应的UIA类型以及与各控件事件对应的UIA行为。
在一种可能的设计中,第二处理模块402,具体用于:
获取各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽各原生控件的差异性;
对控件属性中的测试属性的基类代码进行重写,以得到控件属性的父级信息,父级信息用于唯一描述各目标控件的路径;
对各控件事件中预设控件事件的基类代码进行重写,以得到各控件事件的监控行为;
对原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一预设控件事件的调用接口,以对外统一汇总到接口处理类中进行修改处理;
通过步骤完成修改处理,以将所有原生控件进行替换得到各目标控件。
在一种可能的设计中,测试模块403,具体用于:
于待测试界面人工录入测试数据;
基于各目标控件,待测试程序根据测试数据获取测试控件或者测试事件;
针对测试控件或者测试事件,通过登记对象操作和记录操作完成测试过程,以当停止人工录入时,输出标准化测试资产。
在一种可能的设计中,登记对象操作包括对测试控件或者测试事件中的界面父级信息、界面地址信息以及界面类型进行获取;
记录操作包括对测试控件或者测试事件的对象名称、行为编码信息以及操作值进行获取。
在一种可能的设计中,标准化测试资产包括标准化的对象库以及标准化的测试案例库。
值得说明的,上述图7和图8以及可选的实施例提供的界面自动化测试装置,可用于执行上述任一实施例提供的界面自动化测试方法的各步骤,具体实现方式和技术效果类似,这里不再赘述。
本申请所提供的上述各装置实施例仅仅是示意性的,其中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
图9为本申请提供的一种电子设备的结构示意图。如图9所示,该电子设备500可以包括:至少一个处理器501和存储器502。图9示出的是以一个处理器为例的电子设备。
存储器502,用于存放处理器501的计算机程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器502可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器501配置为用于执行存储器502存储的计算机程序,以实现以上各方法实施例中界面自动化测试方法的各步骤。
其中,处理器501可能是一个中央处理器(central processing unit,简称为CPU),或者是特定集成电路(application specific integrated circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。当存储器502是独立于处理器501之外的器件时,电子设备500,还可以包括:
总线503,用于连接处理器501以及存储器502。总线可以是工业标准体系结构(industry standard architecture,简称为ISA)总线、外部设备互连(peripheralcomponent,PCI)总线或扩展工业标准体系结构(extended industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器502和处理器501集成在一块芯片上实现,则存储器502和处理器501可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的界面自动化测试方法的各个步骤。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的界面自动化测试方法的各个步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (9)

1.一种界面自动化测试方法,其特征在于,包括:
采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系,所述界面控件为待测试界面包含的各原生控件;
根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,所述待测试程序的客户端界面为所述待测试界面;
基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,以通过所述标准化测试资产或者衍生资产对所述待测试界面进行自动化测试,所述衍生资产是对所述标准化测试资产进行再加工得到的结果;
其中,所述根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,包括:
获取所述各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽所述各原生控件的差异性;对所述界面控件的控件属性中的测试属性的基类代码进行重写,以得到所述控件属性的父级信息,所述父级信息用于唯一描述所述各目标控件的路径;并对所述界面控件的各控件事件中预设控件事件的基类代码进行重写,以得到所述各控件事件的监控行为;以及对所述原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一所述预设控件事件的调用接口,以对外统一汇总到接口处理类中进行所述修改处理,完成所述修改处理,以将所有原生控件进行替换得到所述各目标控件。
2.根据权利要求1所述的界面自动化测试方法,其特征在于,在所述采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系之前,还包括:
利用预设控件识别工具获取待测试程序的界面元素信息,所述界面元素信息包括所述待测试程序的各界面元素的元素属性值和元素坐标;
根据所述界面元素信息以及所述待测试程序的基类代码确定所述界面控件的体系结构。
3.根据权利要求1或2所述的界面自动化测试方法,其特征在于,所述关联关系包括:
所述界面控件的各控件属性与对应UIA属性之间的对应关系;
所述界面控件的各控件类型与对应UIA类型之间的对应关系;
所述界面控件的各控件事件与对应UIA行为之间的对应关系;
其中,所述UIA元素包括与所述各控件属性对应的所述UIA属性、与所述各控件类型对应的所述UIA类型以及与所述各控件事件对应的所述UIA行为。
4.根据权利要求3所述的界面自动化测试方法,其特征在于,所述基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,包括:
于所述待测试界面人工录入测试数据;
基于所述各目标控件,所述待测试程序根据所述测试数据获取测试控件或者测试事件;
针对所述测试控件或者所述测试事件,通过登记对象操作和记录操作完成测试过程,以当停止所述人工录入时,输出所述标准化测试资产。
5.根据权利要求4所述的界面自动化测试方法,其特征在于,所述登记对象操作包括对所述测试控件或者所述测试事件中的界面父级信息、界面地址信息以及界面类型进行获取;
所述记录操作包括对所述测试控件或者所述测试事件的对象名称、行为编码信息以及操作值进行获取。
6.根据权利要求1所述的界面自动化测试方法,其特征在于,所述标准化测试资产包括标准化的对象库以及标准化的测试案例库。
7.一种界面自动化测试装置,其特征在于,包括:
第一处理模块,用于采用预设的微软用户交互自动化UIA技术确定界面控件的体系结构与所述预设的UIA技术中UIA元素之间的关联关系,所述界面控件为待测试界面包含的各原生控件;
第二处理模块,用于根据所述关联关系对待测试程序的基类代码进行修改处理,得到各目标控件,所述待测试程序的客户端界面为所述待测试界面;
测试模块,用于基于所述目标控件对所述待测试界面进行人工测试,得到标准化测试资产,以通过所述标准化测试资产或者衍生资产对所述待测试界面进行自动化测试,所述衍生资产是对所述标准化测试资产进行再加工得到的结果;
其中,所述第二处理模块,还用于:
获取所述各原生控件的基类代码,并获取原始测试接口以提供统一的接口类,对内屏蔽所述各原生控件的差异性;并对所述界面控件的控件属性中的测试属性的基类代码进行重写,以得到所述控件属性的父级信息,所述父级信息用于唯一描述所述各目标控件的路径;并对所述界面控件的各控件事件中预设控件事件的基类代码进行重写,以得到所述各控件事件的监控行为;以及对所述原始测试接口的返回信息进行统一处理,并统一与自动化测试脚本进行交互以及统一所述预设控件事件的调用接口,以对外统一汇总到接口处理类中进行所述修改处理,完成所述修改处理,以将所有原生控件进行替换得到所述各目标控件。
8.一种电子设备,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器配置为经由执行所述计算机程序来执行权利要求1至6任一项所述的界面自动化测试方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的界面自动化测试方法。
CN202110700172.XA 2021-06-23 2021-06-23 界面自动化测试方法、装置、设备及存储介质 Active CN113238969B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110700172.XA CN113238969B (zh) 2021-06-23 2021-06-23 界面自动化测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110700172.XA CN113238969B (zh) 2021-06-23 2021-06-23 界面自动化测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113238969A CN113238969A (zh) 2021-08-10
CN113238969B true CN113238969B (zh) 2024-02-23

Family

ID=77140618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110700172.XA Active CN113238969B (zh) 2021-06-23 2021-06-23 界面自动化测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113238969B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840197A (zh) * 2018-05-04 2019-06-04 上海聆播信息科技有限公司 一种自动化测试对象库的系统及方法
CN111897740A (zh) * 2020-08-24 2020-11-06 北京字节跳动网络技术有限公司 用户界面的测试方法、装置、电子设备及计算机可读介质
CN111949522A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 用户界面自动化测试方法及装置
WO2020233331A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 用户界面自动化测试方法、装置及计算机可读存储介质
CN112231197A (zh) * 2019-07-15 2021-01-15 北京京东尚科信息技术有限公司 一种页面测试的方法、装置和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840197A (zh) * 2018-05-04 2019-06-04 上海聆播信息科技有限公司 一种自动化测试对象库的系统及方法
WO2020233331A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 用户界面自动化测试方法、装置及计算机可读存储介质
CN112231197A (zh) * 2019-07-15 2021-01-15 北京京东尚科信息技术有限公司 一种页面测试的方法、装置和存储介质
CN111949522A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 用户界面自动化测试方法及装置
CN111897740A (zh) * 2020-08-24 2020-11-06 北京字节跳动网络技术有限公司 用户界面的测试方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
CN113238969A (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN110297759B (zh) 一种制作测试页面脚本的方法、装置、设备及存储介质
US9317400B2 (en) Code coverage rate determination method and system
CN108446190B (zh) 接口测试方法及装置
US8943423B2 (en) User interface indicators for changed user interface elements
US8549478B2 (en) Graphical user interface input element identification
CN104991821B (zh) 批量处理监控任务的方法及装置
CN112131829A (zh) 一种芯片寄存器的验证方法、系统及相关装置
CN107526676B (zh) 一种跨系统测试方法及装置
US10209984B2 (en) Identifying a defect density
US20120254662A1 (en) Automated test system and automated test method
CN110082666B (zh) 芯片测试分析方法、装置、设备及存储介质
CN112882933A (zh) 脚本录制方法、装置、设备及存储介质
CN116107789A (zh) 一种监测、分析应用故障原因的方法及存储介质
CN113238969B (zh) 界面自动化测试方法、装置、设备及存储介质
US20140282414A1 (en) Method and system for debugging of a program
CN113377648A (zh) 软件系统诊断方法、装置、电子设备及计算机可读介质
CN113781275A (zh) 一种教育资源管理方法及服务器
CN111639030A (zh) 一种页面测试方法、装置、设备及存储介质
CN107357926B (zh) 网页处理方法、装置及电子设备
CN112363944A (zh) 一种用于多环境接口返回值对比的方法及设备
CN111309598A (zh) 一种测试用例执行环境恢复方法、系统、终端及存储介质
CN110865932A (zh) 一种程序内部接口测试方法、系统、终端及存储介质
CN105359111A (zh) 用户界面检查方法、设备及程序
CN114756440B (zh) 智能卡的数据写入方法、装置、设备及存储介质
CN113392022B (zh) 测试需求分析方法、设备、计算机可读介质和程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant