CN112148588B - 一种自动化测试的对象资源的自动分析方法及测试工具 - Google Patents
一种自动化测试的对象资源的自动分析方法及测试工具 Download PDFInfo
- Publication number
- CN112148588B CN112148588B CN202010848041.1A CN202010848041A CN112148588B CN 112148588 B CN112148588 B CN 112148588B CN 202010848041 A CN202010848041 A CN 202010848041A CN 112148588 B CN112148588 B CN 112148588B
- Authority
- CN
- China
- Prior art keywords
- object resource
- control
- identifier
- interface
- name
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
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
本发明公开了一种自动化测试的对象资源的自动分析方法及测试工具,该自动分析方法包括:采集待测试软件界面的源代码库中全部的对象资源文件,获取每一对象资源文件下的对象资源标识、国际化标识以及每一国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中;在自动化测试脚本开发过程中,依据对象资源库对界面控件进行识别,并将界面控件与相应的对象资源标识建立关联;在自动化测试脚本运行过程中,根据界面控件的对象资源标识和国际化标识判断界面控件是否发生变更;若发生变更,则将自动化测试脚本标记为待调试脚本,以便于后续维护自动化测试脚本。在本发明中,可自适应分析一些简单的界面变更,进行脚本的适配工作,减少脚本的维护工作量。
Description
技术领域
本发明属于自动化测试领域,更具体地,涉及一种自动化测试的对象资源的自动分析方法及测试工具。
背景技术
自动化测试已经是软件开发过程中必不可少的一个环节,目前自动化测试主要包括接口自动化测试和界面自动化测试;接口自动化测试是直接进行接口的调用测试,并针对接口返回的结果进行核对;界面自动化测试是通过驱动界面的控件执行与人工测试同样的操作,因此界面自动化测试需要完全依赖于界面控件。
在实际的软件开发及测试过程中,由于需求的不断变化,导致软件界面也会不停的进行变更,从而会影响到界面自动化测试脚本的运行,其中,常见的界面变更有:新增界面控件、调整界面控件的名称和删除界面控件等。在软件界面发生变更时,往往都需要重新运行一遍自动化测试脚本,通过报错的情况来分析是否是由界面变更所引起,需要耗费大量的时间对测试脚本进行维护。此外,对于国际化界面的自动化测试场景,也需要单独适配自动化测试脚本后才能运行,自动化测试脚本的复用性较低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种自动化测试的对象资源的自动分析方法及测试工具,其目的在于该自动分析方法可自适应分析一些简单的界面变更,并且可以分析出哪些自动化脚本受到界面变更的影响,可提前进行一些自动化脚本的适配工作,减少脚本的维护工作量,此外,可采用同一个自动化测试脚本对多语言软件的界面进行测试,减少自动化测试脚本的维护,提高测试脚本的复用性,由此解决软件界面变更时,需要耗费大量的时间对测试脚本进行维护以及自动化测试脚本的复用性较低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种自动化测试的对象资源的自动分析方法,所述自动分析方法包括:
采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中;
在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联;
在所述自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件是否发生变更;
若发生变更,则将所述自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本。
优选地,所述采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中包括:
将所述待测试软件界面的源代码库存储在自动化测试工具的本地;
设置所述对象资源库所属的数据库的参数,将所述自动化测试工具与所述对象资源库所属的数据库建立连接;
遍历获取所述待测试软件界面的源代码库中的对象资源文件;
针对每一所述对象资源文件,遍历获取所述对象资源文件下的全部对象资源标识;
针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称;
判断所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识是否存在于所述对象资源库中;
若存在,则更新所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所对应的控件名称;
若不存在,则将所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所和所述控件名称插入到所述对象资源库中。
优选地,每一所述对象资源文件包括至少一个所述对象资源标识,每一所述对象资源标识与至少一个所述国际化标识相对应;
所述针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称包括:
针对每一所述对象资源标识,判断是否获取到全部所述国际化标识所对应的控件名称;
若没有获取到全部所述国际化标识所对应的控件名称,则对所述对象资源标识对应的所述国际化标识进行遍历,直到得到全部所述国际化标识对应的控件名称;
若已获取到全部所述国际化标识所对应的控件名称,则针对每一所述对象资源文件,判断是否获取到全部所述对象资源标识;
若没有获取到全部所述对象资源标识,则针对所述对象资源文件下的对象资源标识进行遍历,直至得到全部的所述对象资源标识;
若已获取到全部所述对象资源标识,则针对所述待测试软件界面的源代码库,判断是否完成对全部所述对象资源文件的处理;
若没有完成对全部所述对象资源文件的处理,则继续遍历获取所述待测试软件界面的源代码库中的其他对象资源文件。
优选地,所述在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联包括:
启动自动化测试工具的测试软件,在所述自动化测试工具上加载所述被测软件界面;
遍历执行测试用例得到所述被测软件界面的堆dump数据,遍历所述堆dump数据,得到可访问的全部类控件对象;
针对每一所述类控件对象,判断所述类控件对象是否是当前选中激活的界面控件;
若所述类控件对象是当前选中激活的界面控件,则获取所述类控件对象的路径属性和相应的对象名称,基于所述类控件对象的路径属性、相应的对象名称和所述对象资源库将所述界面控件与相应的对象资源标识建立关联;
若所述类控件对象不是当前选中激活的界面控件,则判断是否已经完成全部类对象控件的处理;
若已经完成对全部类控件对象的处理,则判断是否完成全部测试用例的执行;
若没有完成对全部测试用例的执行,则继续遍历执行所述测试用例。
优选地,所述基于所述类控件对象的路径属性、相应的对象名称和所述对象资源库将所述界面控件与相应的对象资源标识建立关联包括:
判断在所述对象资源库中是否存在与所述类控件对象的路径属性相匹配的目标文件路径;
若存在相匹配的文件路径,则判断在所述对象资源库中是否存在与所述对象名称相同的目标控件名称;
若存在与所述对象名称相同的目标控件名称,则根据所述目标文件路径和所述目标控件名称得到目标对象资源标识;
将所述目标对象标识与所述类控件对象建立关联,从而将所述界面控件与相应的对象资源标识建立关联。
优选地,所述根据所述目标文件路径和所述目标控件名称得到目标对象资源标识包括:
判断在所述对象资源库中是否存在多个所述目标控件名称;
若存在多个所述目标控件名称,则获取各个所述目标控件对象对应的对象资源标识;
将所述类控件对象的路径属性、对象名称和各个所述目标控件对象对应的对象资源标识记录到日志中,并通过提示框提示用户选择其中一个对象资源标识作为目标对象标识。
优选地,所述在自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件的控件名称是否发生变更包括:
启动自动化测试工具的测试软件,设置国际化标识,以在设定的国际化语言下进行自动化测试;
遍历全部的自动化测试脚本,遍历查找所述自动化测试脚本中的对象资源标识;
判断所述对象资源标识在所述对象资源库中是否存在;
若所述对象资源标识在所述对象资源库中存在,则判断所述对象资源库中的控件名称与当前界面实际的名称是否一致;
若一致,则将所述对象资源库中的控件名称加载至相应的对象资源标识上,以便于进行自动化测试。
优选地,所述判断所述对象资源库中的控件名称与当前界面实际的名称是否一致之后还包括:
若不一致,则所述对象资源标识所对应的界面控件的控件名称发生变更。
优选地,所述若发生变更,则将所述自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本包括:
若发生变更,则将所述对象资源标识和相应的路径属性记录到日志中,将当前自动化测试脚本标记为待调试脚本。
按照本发明的另一方面,提供了一种自动化测试工具,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的自动分析方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提出了一种自动化测试的对象资源的自动分析方法及测试工具,该自动分析方法包括:采集待测试软件界面的源代码库中全部的对象资源文件,获取每一对象资源文件下的对象资源标识、国际化标识以及每一国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中;在自动化测试脚本开发过程中,依据对象资源库对界面控件进行识别,并将界面控件与相应的对象资源标识建立关联;在自动化测试脚本运行过程中,根据界面控件的对象资源标识和国际化标识判断界面控件是否发生变更;若发生变更,则将自动化测试脚本标记为待调试脚本,以便于后续维护自动化测试脚本。
在本发明中,将自动化测试工具直接关联源代码库,可分析源代码库中的对象资源的各项参数信息,进行自动化的对象资源的分析,从而判断界面控件是否发生变更,若发生变更则将相应的测试脚本标记为待调试脚本,以提示维护人员重点关注,便于维护自动化测试脚本。在本发明中,该自动分析方法可自适应分析一些简单的界面变更,并且可以分析出哪些自动化脚本受到界面变更的影响,可提前进行一些自动化脚本的适配工作,减少脚本的维护工作量;此外,可采用同一个自动化测试脚本对多语言软件的界面进行测试,减少自动化测试脚本的维护,提高测试脚本的复用性。
附图说明
图1是本发明实施例提供的一种自动化测试的对象资源的自动分析方法的流程示意图;
图2a是本发明实施例提供的图1中步骤10的具体流程示意图;
图2b是本发明实施例提供的图2中步骤105的具体流程示意图;
图3是本发明实施例提供的图1中步骤20的具体流程示意图;
图4是本发明实施例提供的图1中步骤30的具体流程示意图;
图5是本发明实施例提供的一种自动化测试工具的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
参阅图1,本实施例提供一种自动化测试的对象资源的自动分析方法,所述自动分析方法包括:
步骤10:采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中。
其中,对象资源文件下包括多个对象资源的各项参数信息,每一个对象资源在界面上对应为一个界面控件,每一个对象资源的属性信息包括对象资源标识、对象资源的国际化标识以及每一国际化标识对应的控件名称,其中,对象资源标识用于区分不同的对象资源,国际化标识为各国语言对应的简称,例如,国际化标识可以为CN(chinese的简称)或EN(English的简称)。
其中,界面控件指的是可在窗体上放置的可视化图形“元件”,例如按钮、文件编辑框等,其中大多数是具有执行功能或通过“事件”引发代码运行并完成响应的功能。
其中,控件名称为界面控件在界面上显示的名称,例如,某一个界面控件的控件名称为“打开”。
其中,对象资源库可以为一数据库,将前述获取到的对象资源文件的各项参数信息存储在对象资源库中,自动化测试工具通过访问对象资源库获取到对象资源文件的各项参数信息。
步骤20:在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联。
在实际应用场景下,在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联。
由于在每一个对象资源文件下对象资源标识是唯一的,因此可以通过对象资源标识获取到对象资源的其他参数信息,进而确定界面控件是否发生变更。
步骤30:在所述自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件是否发生变更。
其中,界面控件的变更包括删除界面控件、新增界面控件和更改界面控件的名称。
步骤40:若发生变更,则将所述自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本。
本实施例提出了一种自动化测试的对象资源的自动分析方法,将自动化测试工具直接关联源代码库,可分析源代码库中的对象资源信息,进行自动化的对象资源的分析,从而判断界面控件是否发生变更,若发生变更则将相应的测试脚本标记为待调试脚本,以提示维护人员重点关注,便于维护自动化测试脚本。在本实施例中,该自动分析方法可自适应分析一些简单的界面变更,并且可以分析出哪些自动化脚本受到界面变更的影响,可提前进行一些自动化脚本的适配工作,减少脚本的维护工作量;此外,可采用同一个自动化测试脚本对多语言软件的界面进行测试,减少自动化测试脚本的维护,提高测试脚本的复用性。另一方面,自动化测试工具与软件源代码的密切结合,简化自动化脚本的部分开发逻辑,提高自动化脚本的开发效率。
实施例2:
下面参阅图2a,具体说明步骤10的实现过程。在步骤10中,所述采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中包括如下步骤:
步骤101:将所述待测试软件界面的源代码库存储在自动化测试工具的本地。
步骤102:设置所述对象资源库所属的数据库的参数,以将所述自动化测试工具与所述对象资源库所属的数据库建立连接。
其中,数据库参数包括:数据库IP地址、端口、实例、用户名密码及数据库名。
通过数据库参数将自动化测试工具与数据库建立连接,从而将从待测试软件界面的源代码库中采集到的对象资源的各项参数信息存储在该数据库下的对象资源库中,便于后续快速匹配检索使用。
步骤103:遍历获取所述待测试软件界面的源代码库中的对象资源文件。
步骤104:针对每一所述对象资源文件,遍历获取所述对象资源文件下的全部对象资源标识。
步骤105:针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称。
步骤106:判断所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识是否存在于所述对象资源库中,若存在,则执行步骤107,若不存在,则执行步骤108。
步骤107:若存在,则更新所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所对应的控件名称。
若所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识存在于所述对象资源库中,则可以进一步判断控件名称是否发生变化,若发生变化,则更新控件名称,若没有发生变化,则无需进行进一步更新。
步骤108:若不存在,则将所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所和所述控件名称插入到所述对象资源库中。
在实际应用场景下,每一所述对象资源文件包括至少一个所述对象资源标识,每一所述对象资源标识与至少一个所述国际化标识相对应;
参阅图2b,在步骤105中,所述针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称具体包括如下步骤:
步骤1051:针对每一所述对象资源标识,判断是否获取到全部所述国际化标识所对应的控件名称,若没有获取到全部所述国际化标识所对应的控件名称,则执行步骤1052,若已获取到全部所述国际化标识所对应的控件名称,则执行步骤1053。
步骤1052:若没有获取到全部所述国际化标识所对应的控件名称,则对所述对象资源标识对应的所述国际化标识进行遍历,直到得到全部所述国际化标识对应的控件名称。
步骤1053:若已获取到全部所述国际化标识所对应的控件名称,则针对每一所述对象资源文件,判断是否获取到全部所述对象资源标识,若没有获取到全部所述对象资源标识,执行步骤1054,若已获取到全部所述对象资源标识,执行步骤1055。
步骤1054:若没有获取到全部所述对象资源标识,则针对所述对象资源文件下的对象资源标识进行遍历,直至得到全部的所述对象资源标识。
步骤1055:若已获取到全部所述对象资源标识,则针对所述待测试软件界面的源代码库,判断是否完成对全部所述对象资源文件的处理。
步骤1056:若没有完成对全部所述对象资源文件的处理,则继续遍历获取所述待测试软件界面的源代码库中的其他对象资源文件。
在本实施例中,通过对对象资源文件、对象标识和国际化标识进行三层循环判断,可以确保获取到全部的对象资源的各项参数信息,避免遗漏。
下面参阅图3,说明步骤20的具体实现过程。在步骤20中,所述在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联包括如下步骤:
步骤201:启动自动化测试工具的测试软件,在所述自动化测试工具上加载所述被测软件界面。
步骤202:遍历执行测试用例得到所述被测软件界面的堆dump数据,遍历所述堆dump数据,得到可访问的全部类控件对象。
步骤203:针对每一所述类控件对象,判断所述类控件对象是否是当前选中激活的界面控件。
步骤204:若所述类控件对象是当前选中激活的界面控件,则获取所述类控件对象的路径属性和相应的对象名称,基于所述类控件对象的路径属性、相应的对象名称和所述对象资源库将所述界面控件与相应的对象资源标识建立关联。
其中,所述类控件对象的路径属性可以反映类控件对象在界面上的结构路径和层级关系。
在本实施例中,判断在所述对象资源库中是否存在与所述类控件对象的路径属性相匹配的目标文件路径;若存在相匹配的文件路径,则判断在所述对象资源库中是否存在与所述对象名称相同的目标控件名称;若存在与所述对象名称相同的目标控件名称,则根据所述目标文件路径和所述目标控件名称得到目标对象资源标识;将所述目标对象标识与所述类控件对象建立关联,从而将所述界面控件与相应的对象资源标识建立关联。
在实际应用场景下,同一个对象资源文件下会存在多个不同的对象资源标识所对应的控件名称相同的情况,例如,一个界面有多个“打开”的按钮,代码中会定义多个不同对象资源标识,但是他们对应的控件名称是一样的。鉴于前述情况,所述根据所述目标文件路径和所述目标控件名称得到目标对象资源标识具体包括如下步骤:判断在所述对象资源库中是否存在多个所述目标控件名称;若存在多个所述目标控件名称,则获取各个所述目标控件对象对应的对象资源标识;将所述类控件对象的路径属性、对象名称和各个所述目标控件对象对应的对象资源标识记录到日志中,并通过提示框提示用户选择其中一个对象资源标识作为目标对象标识。
最后,将所述类控件对象的路径属性和目标对象资源标识更新到自动化脚本中对应位置,从而将所述界面控件与相应的对象资源标识建立关联。
步骤205:若所述类控件对象不是当前选中激活的界面控件,则判断是否已经完成全部类对象控件的处理。
步骤206:若已经完成对全部类控件对象的处理,则判断是否完成全部测试用例的执行。
步骤207:若没有完成对全部测试用例的执行,则继续遍历执行所述测试用例。
按照前述方式将所述界面控件与相应的对象资源标识建立关联,将自动化测试工具直接关联源代码库,可分析源代码库中的对象资源信息,进行自动化的对象资源的分析,从而判断界面控件是否发生变更。
下面参阅图4,说明步骤30的具体实现过程。在步骤30中,所述在自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件的控件名称是否发生变更包括:
步骤301:启动自动化测试工具的测试软件,设置国际化标识,以在设定的国际化语言下进行自动化测试。
其中,默认国际化标识为CN,即界面是以中文呈现的。
步骤302:遍历全部的自动化测试脚本,遍历查找所述自动化测试脚本中的对象资源标识。
步骤303:判断所述对象资源标识在所述对象资源库中是否存在,若存在执行步骤304,若不存在,则说明该对象资源标识在源代码库中被删除,将相应的测试脚本标记为待调试脚本。
步骤304:若所述对象资源标识在所述对象资源库中存在,则判断所述对象资源库中的控件名称与当前界面实际的名称是否一致,若一致,则执行步骤305,若不一致,则执行步骤306。
步骤305:若一致,则将所述对象资源库中的控件名称加载至相应的对象资源标识上,以便于进行自动化测试。
步骤306:若不一致,则所述对象资源标识所对应的界面控件的控件名称发生变更。
在实际应用场景下,若发生变更,则将所述对象资源标识和相应的路径属性记录到日志中,将当前自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本。
在本实施例中,在对全部的对象资源完成分析后,判断该自动化测试脚本是否有待调测脚本,若不存在待调测脚本,则自动化测试工具运行该自动化测试脚本执行自动化测试任务。
实施例3:
请参阅图5,图5是本发明实施例提供的一种自动化测试工具的结构示意图。本实施例的自动化测试工具包括一个或多个处理器41以及存储器42。其中,图5中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器42作为一种基于自动分析方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,上述实施例的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,实现前述实施例的方法。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(RandomAccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种自动化测试的对象资源的自动分析方法,其特征在于,所述自动分析方法包括:
采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中;
在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联;
在所述自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件是否发生变更;
若发生变更,则将所述自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本。
2.根据权利要求1所述的自动分析方法,其特征在于,所述采集待测试软件界面的源代码库中全部的对象资源文件,获取每一所述对象资源文件下的对象资源标识、国际化标识以及每一所述国际化标识对应的控件名称,并将采集到的信息存储在对象资源库中包括:
将所述待测试软件界面的源代码库存储在自动化测试工具的本地;
设置所述对象资源库所属的数据库的参数,将所述自动化测试工具与所述对象资源库所属的数据库建立连接;
遍历获取所述待测试软件界面的源代码库中的对象资源文件;
针对每一所述对象资源文件,遍历获取所述对象资源文件下的全部对象资源标识;
针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称;
判断所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识是否存在于所述对象资源库中;
若存在,则更新所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所对应的控件名称;
若不存在,则将所述对象资源文件的文件路径、所述对象资源标识和所述国际化标识所和所述控件名称插入到所述对象资源库中。
3.根据权利要求2所述的自动分析方法,其特征在于,每一所述对象资源文件包括至少一个所述对象资源标识,每一所述对象资源标识与至少一个所述国际化标识相对应;
所述针对每一所述对象资源标识,遍历获取所述对象资源标识下的国际化标识和每一所述国际化标识对应的控件名称包括:
针对每一所述对象资源标识,判断是否获取到全部所述国际化标识所对应的控件名称;
若没有获取到全部所述国际化标识所对应的控件名称,则对所述对象资源标识对应的所述国际化标识进行遍历,直到得到全部所述国际化标识对应的控件名称;
若已获取到全部所述国际化标识所对应的控件名称,则针对每一所述对象资源文件,判断是否获取到全部所述对象资源标识;
若没有获取到全部所述对象资源标识,则针对所述对象资源文件下的对象资源标识进行遍历,直至得到全部的所述对象资源标识;
若已获取到全部所述对象资源标识,则针对所述待测试软件界面的源代码库,判断是否完成对全部所述对象资源文件的处理;
若没有完成对全部所述对象资源文件的处理,则继续遍历获取所述待测试软件界面的源代码库中的其他对象资源文件。
4.根据权利要求1所述的自动分析方法,其特征在于,所述在自动化测试脚本开发过程中,依据所述对象资源库对界面控件进行识别,并将所述界面控件与相应的对象资源标识建立关联包括:
启动自动化测试工具的测试软件,在所述自动化测试工具上加载所述被测软件界面;
遍历执行测试用例得到所述被测软件界面的堆dump数据,遍历所述堆dump数据,得到可访问的全部类控件对象;
针对每一所述类控件对象,判断所述类控件对象是否是当前选中激活的界面控件;
若所述类控件对象是当前选中激活的界面控件,则获取所述类控件对象的路径属性和相应的对象名称,基于所述类控件对象的路径属性、相应的对象名称和所述对象资源库将所述界面控件与相应的对象资源标识建立关联;
若所述类控件对象不是当前选中激活的界面控件,则判断是否已经完成全部类对象控件的处理;
若已经完成对全部类控件对象的处理,则判断是否完成全部测试用例的执行;
若没有完成对全部测试用例的执行,则继续遍历执行所述测试用例。
5.根据权利要求4所述的自动分析方法,其特征在于,所述基于所述类控件对象的路径属性、相应的对象名称和所述对象资源库将所述界面控件与相应的对象资源标识建立关联包括:
判断在所述对象资源库中是否存在与所述类控件对象的路径属性相匹配的目标文件路径;
若存在相匹配的文件路径,则判断在所述对象资源库中是否存在与所述对象名称相同的目标控件名称;
若存在与所述对象名称相同的目标控件名称,则根据所述目标文件路径和所述目标控件名称得到目标对象资源标识;
将所述目标对象标识与所述类控件对象建立关联,从而将所述界面控件与相应的对象资源标识建立关联。
6.根据权利要求5所述的自动分析方法,其特征在于,所述根据所述目标文件路径和所述目标控件名称得到目标对象资源标识包括:
判断在所述对象资源库中是否存在多个所述目标控件名称;
若存在多个所述目标控件名称,则获取各个所述目标控件对象对应的对象资源标识;
将所述类控件对象的路径属性、对象名称和各个所述目标控件对象对应的对象资源标识记录到日志中,并通过提示框提示用户选择其中一个对象资源标识作为目标对象标识。
7.根据权利要求1所述的自动分析方法,其特征在于,所述在自动化测试脚本运行过程中,根据所述界面控件的对象资源标识和所述国际化标识判断所述界面控件的控件名称是否发生变更包括:
启动自动化测试工具的测试软件,设置国际化标识,以在设定的国际化语言下进行自动化测试;
遍历全部的自动化测试脚本,遍历查找所述自动化测试脚本中的对象资源标识;
判断所述对象资源标识在所述对象资源库中是否存在;
若所述对象资源标识在所述对象资源库中存在,则判断所述对象资源库中的控件名称与当前界面实际的名称是否一致;
若一致,则将所述对象资源库中的控件名称加载至相应的对象资源标识上,以便于进行自动化测试。
8.根据权利要求7所述的自动分析方法,其特征在于,所述判断所述对象资源库中的控件名称与当前界面实际的名称是否一致之后还包括:
若不一致,则所述对象资源标识所对应的界面控件的控件名称发生变更。
9.根据权利要求8所述的自动分析方法,其特征在于,所述若发生变更,则将所述自动化测试脚本标记为待调试脚本,以便于后续维护所述自动化测试脚本包括:
若发生变更,则将所述对象资源标识和相应的路径属性记录到日志中,将当前自动化测试脚本标记为待调试脚本。
10.一种自动化测试工具,其特征在于,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的自动分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010848041.1A CN112148588B (zh) | 2020-08-21 | 2020-08-21 | 一种自动化测试的对象资源的自动分析方法及测试工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010848041.1A CN112148588B (zh) | 2020-08-21 | 2020-08-21 | 一种自动化测试的对象资源的自动分析方法及测试工具 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148588A CN112148588A (zh) | 2020-12-29 |
CN112148588B true CN112148588B (zh) | 2022-04-19 |
Family
ID=73888854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010848041.1A Active CN112148588B (zh) | 2020-08-21 | 2020-08-21 | 一种自动化测试的对象资源的自动分析方法及测试工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148588B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347062A (zh) * | 2021-06-04 | 2021-09-03 | 北京飞讯数码科技有限公司 | 一种sip性能测试方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630286A (zh) * | 2009-08-07 | 2010-01-20 | 金蝶软件(中国)有限公司 | 一种自动化测试方法及装置 |
CN104572431A (zh) * | 2013-10-24 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN107766253A (zh) * | 2017-11-13 | 2018-03-06 | 南京大学 | 一种基于模型变更的自动维护测试脚本的方法 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
CN111061525A (zh) * | 2018-10-16 | 2020-04-24 | 福建天泉教育科技有限公司 | 国际化界面切换方法、存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417119B2 (en) * | 2016-03-11 | 2019-09-17 | Intuit Inc. | Dynamic testing based on automated impact analysis |
-
2020
- 2020-08-21 CN CN202010848041.1A patent/CN112148588B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630286A (zh) * | 2009-08-07 | 2010-01-20 | 金蝶软件(中国)有限公司 | 一种自动化测试方法及装置 |
CN104572431A (zh) * | 2013-10-24 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN107766253A (zh) * | 2017-11-13 | 2018-03-06 | 南京大学 | 一种基于模型变更的自动维护测试脚本的方法 |
CN111061525A (zh) * | 2018-10-16 | 2020-04-24 | 福建天泉教育科技有限公司 | 国际化界面切换方法、存储介质 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
为UIAutomation添加自动化测试标签的探索;杨萧玉;《http://yulingtianxia.com/blog/2016/03/28/Add-UITest-Label-for-UIAutomation/》;20160328;第1-13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112148588A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930635B (zh) | 基于swagger快速自动化测试的方法及系统 | |
WO2018010552A1 (zh) | 测试方法和装置 | |
CN110008123B (zh) | 一种自动部署测试软件的方法以及相应的装置 | |
CN108038054B (zh) | 一种自动化测试方法及装置、计算机可读存储介质 | |
CN110554962A (zh) | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 | |
CN111159520B (zh) | 样本鉴定方法、装置及安全应急响应系统 | |
CN112732587B (zh) | 一种自动化测试日志的获取方法、装置、电子设备及存储介质 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN109657475A (zh) | 代码漏洞排查方法、装置、设备及存储介质 | |
CN112148588B (zh) | 一种自动化测试的对象资源的自动分析方法及测试工具 | |
CN112631704A (zh) | 一种界面元素识别方法、装置、存储介质及电子设备 | |
CN114238154B (zh) | 一种符号执行方法、单元测试方法、电子设备及存储介质 | |
CN117407312A (zh) | 应用测试方法、装置、计算机设备及存储介质 | |
CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN112486811A (zh) | 一种接口测试方法、装置、设备及介质 | |
CN110795341A (zh) | 一种服务器的自动测试方法、系统及装置 | |
CN115269443A (zh) | 软件缺陷自动定位测试方法及系统 | |
CN115454851A (zh) | 接口回归测试方法、装置、存储介质及电子装置 | |
CN113836036A (zh) | 浏览器兼容性自动化测试方法、系统、设备及存储介质 | |
CN114416545A (zh) | 确定测试代码覆盖率的方法、装置和电子设备 | |
CN113515452A (zh) | 应用的自动测试方法、系统、电子设备及存储介质 | |
CN113434405A (zh) | 测试文件的确定方法及装置、存储介质及电子装置 | |
CN112035308A (zh) | 系统接口测试表格的生成方法及装置 | |
CN116932413B (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 |