一种软件界面的自动化测试方法及装置与流程

文档序号:12120616阅读:516来源:国知局
一种软件界面的自动化测试方法及装置与流程

本发明涉及计算机软件测试技术领域,尤其涉及一种软件界面的自动化测试方法及装置。



背景技术:

当前,软件测试是为了发现软件程序中的错误而执行软件程序的过程,软件测试的主要工作内容是验证(verification)和确认(validation)。其中,验证是保证软件正确地实现既定功能的一系列活动,即保证软件做了所期望的事情。而确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件以正确的方式来做了既定的事件。

随着软件开发技术的发展,敏捷开发成为主流的开发模式。敏捷开发的目的是提高开发效率,其拥抱变化和可持续性强的不断循环迭代开发,给软件测试带来新的挑战。当前的软件测试要求测试周期短,相对当期版修改的内容,有大量存量功能需要例行化质量守护,需要更多的投入来保证系统的整体可靠性。这就需要使用自动化测试技术来代替人工测试,提高效率。

当前,在测试软件的自动化界面时,传统的自动化界面测试通常采用解析式回放,分析被测原件代码,解析代码中的界面元素,再进行模拟测试。该方法存在对被测试对象源码的依赖。在实际操作过程中很多时候通过解析回放无法正确识别到界面元素,或者解析识别界面元素非常困难,使得自动化界面测试使用成本很高。由于需要解析源码,需要测试人员能够读懂源码,实现自动化界面测试的门槛比较高。目前流行的编程语言众多,不同编程语言有不同的语法规则,进一步加剧了解析源码并回放的难度。



技术实现要素:

本发明的实施例提供一种软件界面的自动化测试方法及装置,以解决当前解析式回放的测试方法对被测试对象源码过于依赖,难以正确识别到界面元素,并且流行的编程语言众多,解析源码并回放的难度较大的问题。

为达到上述目的,本发明采用如下技术方案:

一种软件界面的自动化测试方法,包括:

录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;

从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;

从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;

自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;

根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;

根据所述测试结果判断对所述目标操作对象的测试是否成功。

具体的,所述关键操作画面为对被操作对象进行操作时的画面;所述操作信息包括但不局限于对所述被操作对象进行的鼠标单击、鼠标右键点击、鼠标拖拽以及文本框输入操作。

具体的,从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图,包括:

根据预先设置的操作焦点图像,在所述关键操作画面中识别出所述操作焦点;

通过识别所述操作焦点所操作的被操作对象,并以所述被操作对象为中心,截取被操作对象的局部画面;

判断所述局部画面在当前的关键操作画面中是否唯一;

若所述局部画面在当前的关键操作画面中不唯一,在关键操作画面中将所述局部画面的截取范围扩大m%,并重新截取被操作对象的局部画面,直至所述局部画面在当前的关键操作画面中唯一;

其中,m%为以被操作对象为核心的局部画面扩展步长参数,m为大于0且小于100的整数。

具体的,从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据,包括:

若所述局部画面在当前的关键操作画面中唯一,从人为的操作信息和人为操作使用的测试数据中分别确定所述局部画面中被操作对象对应的目标操作信息和目标测试数据;所述目标操作信息包括测试动作类型和测试动作发生位置;

将所述目标操作信息和目标测试数据进行变量化操作,形成目标操作信息和目标测试数据的变量数据;

确定局部画面与所述变量数据的对应关系,并存储目标操作信息、目标测试数据和局部画面与所述变量数据的对应关系。

具体的,自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象,包括:

自动运行待测试软件,根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面;

若未识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象,判断当前识别所述目标操作对象的识别次数是否大于一预设识别次数阈值;

若当前识别所述目标操作对象的识别次数不大于所述预设识别次数阈值,继续根据当前的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面;

若当前识别所述目标操作对象的识别次数大于所述预设识别次数阈值时,对所述匹配相似度进行调整,并确定调整后的匹配相似度是否处于预先设置的匹配相似度阈值区间内;

若调整后的匹配相似度处于预先设置的匹配相似度阈值区间外,确定所述识别所述目标操作对象失败,生成识别失败日志,并保存当前的待测试软件的界面图像;

若调整后的匹配相似度处于预先设置的匹配相似度阈值区间内,根据调整后的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此外,所述对所述匹配相似度进行调整,包括:

确定当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数;

若当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数大于等于1,则调整所述匹配相似度为当前匹配相似度的(100+n)%;

当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数等于0,则调整所述匹配相似度为当前匹配相似度的(100-n)%;其中,n为大于0且小于5的整数。

具体的,根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果,包括:

若识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象,根据所述目标测试数据向所述目标操作对象填充数据;

根据所述目标操作信息对所述目标操作对象进行单个操作,并根据所述目标操作信息确定对所述目标操作对象的操作是否完成;

若对所述目标操作对象的操作未完成,继续根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面;

若对所述目标操作对象的操作完成,生成测试结果。

具体的,根据所述测试结果判断对所述目标操作对象的测试是否成功,包括:

判断所述测试结果与预先设置的结果样本是否相同;

若所述测试结果与预先设置的结果样本相同,确定对所述目标操作对象的测试成功。

一种软件界面的自动化测试装置,包括:

信息记录单元,用于录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;

局部画面确定单元,用于从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;

目标信息确定单元,用于从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;

识别单元,用于自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;

测试结果生成单元,用于根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;

测试结果判断单元,用于根据所述测试结果判断对所述目标操作对象的测试是否成功。

具体的,所述信息记录单元中的关键操作画面为对被操作对象进行操作时的画面;所述操作信息包括但不局限于对所述被操作对象进行的鼠标单击、鼠标右键点击、鼠标拖拽以及文本框输入操作。

具体的,所述局部画面确定单元,包括:

操作焦点识别模块,用于根据预先设置的操作焦点图像,在所述关键操作画面中识别出所述操作焦点;

局部画面截取模块,用于通过识别所述操作焦点所操作的被操作对象,并以所述被操作对象为中心,截取被操作对象的局部画面;

唯一性判断模块,用于判断所述局部画面在当前的关键操作画面中是否唯一;

截取范围调整模块,用于在所述局部画面在当前的关键操作画面中不唯一时,在关键操作画面中将所述局部画面的截取范围扩大m%;

所述局部画面截取模块,还用于重新截取被操作对象的局部画面,直至所述唯一性判断模块确定局部画面在当前的关键操作画面中唯一;

其中,m%为以被操作对象为核心的局部画面扩展步长参数,m为大于0且小于100的整数。

具体的,所述目标信息确定单元,包括:

目标信息确定模块,用于在所述局部画面在当前的关键操作画面中唯一时,从人为的操作信息和人为操作使用的测试数据中分别确定所述局部画面中被操作对象对应的目标操作信息和目标测试数据;所述目标操作信息包括测试动作类型和测试动作发生位置;

变量化操作模块,用于将所述目标操作信息和目标测试数据进行变量化操作,形成目标操作信息和目标测试数据的变量数据;

对应关系确定模块,用于确定局部画面与所述变量数据的对应关系,并存储目标操作信息、目标测试数据和局部画面与所述变量数据的对应关系。

具体的,所述识别单元,包括:

识别模块,用于自动运行待测试软件,根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面;

识别次数判断模块,用于在未识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象时,判断当前识别所述目标操作对象的识别次数是否大于一预设识别次数阈值;

所述识别模块,还用于在当前识别所述目标操作对象的识别次数不大于所述预设识别次数阈值时,继续根据当前的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面;

匹配相似度调整模块,用于在当前识别所述目标操作对象的识别次数大于所述预设识别次数阈值时,对所述匹配相似度进行调整,并确定调整后的匹配相似度是否处于预先设置的匹配相似度阈值区间内;

识别失败确认模块,用于在调整后的匹配相似度处于预先设置的匹配相似度阈值区间外时,确定所述识别所述目标操作对象失败,生成识别失败日志,并保存当前的待测试软件的界面图像;

所述识别模块,还用于在调整后的匹配相似度处于预先设置的匹配相似度阈值区间内时,根据调整后的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此外,所述匹配相似度调整模块,具体用于:

确定当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数;

若当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数大于等于1,则调整所述匹配相似度为当前匹配相似度的(100+n)%;

当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数等于0,则调整所述匹配相似度为当前匹配相似度的(100-n)%;其中,n为大于0且小于5的整数。

此外,所述测试结果生成单元,具体用于:

在识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象时,根据所述目标测试数据向所述目标操作对象填充数据;

根据所述目标操作信息对所述目标操作对象进行单个操作,并根据所述目标操作信息确定对所述目标操作对象的操作是否完成;

在对所述目标操作对象的操作完成时,生成测试结果;

所述识别模块,还用于在对所述目标操作对象的操作未完成时,继续根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此外,所述测试结果判断单元,具体用于:

判断所述测试结果与预先设置的结果样本是否相同;

在所述测试结果与预先设置的结果样本相同时,确定对所述目标操作对象的测试成功。

本发明实施例提供的一种软件界面的自动化测试方法及装置,首先录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;之后,从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;之后,从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;然后,自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;从而根据所述测试结果判断对所述目标操作对象的测试是否成功。可见,本发明实施例可以在快速、简单、不依赖于被测软件源码的情况下实施界面自动化测试,去除了自动化测试对源码的依赖,使自动化界面测试的适用范围极大延伸,可以做到依靠软件界面,无论该软件使用什么样的编程语言编写的,也无论该软件使用的是何种程序框架和结构模式,都可以通过本发明完成自动化测试。可见,本发明实施例可以解决当前解析式回放的测试方法对被测试对象源码过于依赖,难以正确识别到界面元素,并且流行的编程语言众多,解析源码并回放的难度较大的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种软件界面的自动化测试方法的流程图一;

图2为本发明实施例提供的一种软件界面的自动化测试方法的流程图二;

图3为本发明实施例中的软件系统登录界面的被操作对象的实例示意图;

图4为本发明实施例中的被操作对象的局部画面示意图;

图5为本发明实施例提供的一种软件界面的自动化测试装置的结构示意图一;

图6为本发明实施例提供的一种软件界面的自动化测试装置的结构示意图二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种软件界面的自动化测试方法,包括:

步骤101、录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据。

步骤102、从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图。

步骤103、从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据。

步骤104、自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象。

步骤105、根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果。

步骤106、根据所述测试结果判断对所述目标操作对象的测试是否成功。

本发明实施例提供的一种软件界面的自动化测试方法,首先录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;之后,从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;之后,从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;然后,自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;从而根据所述测试结果判断对所述目标操作对象的测试是否成功。可见,本发明实施例可以在快速、简单、不依赖于被测软件源码的情况下实施界面自动化测试,去除了自动化测试对源码的依赖,使自动化界面测试的适用范围极大延伸,可以做到依靠软件界面,无论该软件使用什么样的编程语言编写的,也无论该软件使用的是何种程序框架和结构模式,都可以通过本发明完成自动化测试。可见,本发明实施例可以解决当前解析式回放的测试方法对被测试对象源码过于依赖,难以正确识别到界面元素,并且流行的编程语言众多,解析源码并回放的难度较大的问题。

为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供一种软件界面的自动化测试方法,包括:

步骤201、录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据。

此处,所述关键操作画面为对被操作对象进行操作时的画面;所述操作信息包括但不局限于对所述被操作对象进行的鼠标单击、鼠标右键点击、鼠标拖拽以及文本框输入操作。

此处,结合具体的界面附图来进行说明,如图3所示,一软件系统登录界面,其包含三个被操作对象,分别为用户名输入场301、密码输入场302以及登录按钮303。在录制人为操作该软件系统登录界面时,具体可以是录制在用户名输入场输入用户名100101,在密码输入场输入密码111111,然后点击登录按钮。

步骤202、根据预先设置的操作焦点图像,在所述关键操作画面中识别出所述操作焦点。

此处该操作焦点可以是鼠标指针、计算机光标等。

步骤203、通过识别所述操作焦点所操作的被操作对象,并以所述被操作对象为中心,截取被操作对象的局部画面。

例如,如图4所示,所截取的被操作对象的局部画面可以分别包括用户名输入场301、密码输入场302以及登录按钮303。

步骤204、判断所述局部画面在当前的关键操作画面中是否唯一。

若所述局部画面在当前的关键操作画面中不唯一,则执行步骤205。否则,若所述局部画面在当前的关键操作画面中唯一,则执行步骤206。

步骤205、在关键操作画面中将所述局部画面的截取范围扩大m%。

其中,m%为以被操作对象为核心的局部画面扩展步长参数,m为大于0且小于100的整数。例如,m可以为系统默认的5。

在步骤205之后,返回执行步骤203。

步骤206、从人为的操作信息和人为操作使用的测试数据中分别确定所述局部画面中被操作对象对应的目标操作信息和目标测试数据。

其中,所述目标操作信息包括测试动作类型和测试动作发生位置。该测试动作类型可以为鼠标单击、鼠标右键点击、鼠标拖拽以及文本框输入操作等。

步骤207、将所述目标操作信息和目标测试数据进行变量化操作,形成目标操作信息和目标测试数据的变量数据。

步骤208、确定局部画面与所述变量数据的对应关系,并存储目标操作信息、目标测试数据和局部画面与所述变量数据的对应关系。

如图3和图4所示,即为分析截取出的用户名输入场301、密码输入场302以及登录按钮303的局部画面,并逐一确定对他们的目标操作,和所使用的目标测试数据,例如可将用户名输入场301、密码输入场302所使用的目标测试数据变量化为用户名(userid)和密码(password)。并且建立局部画面、标操作信息、目标测试数据以及变量数据的对应关系,以便于后续自动识别时进行应用。

步骤209、自动运行待测试软件,根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此处,该匹配相似度的初始值可以为70%。

在步骤209之后,执行步骤210或者步骤213。

步骤210、若未识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象,判断当前识别所述目标操作对象的识别次数是否大于预设识别次数阈值。

若当前识别所述目标操作对象的识别次数不大于所述预设识别次数阈值,在延时0.5秒后,返回执行步骤209,以当前的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。此处,预设识别次数阈值可以为3。

若当前识别所述目标操作对象的识别次数大于所述预设识别次数阈值,执行步骤211。

步骤211、对所述匹配相似度进行调整,并确定调整后的匹配相似度是否处于预先设置的匹配相似度阈值区间内。

此外,对所述匹配相似度进行调整,可以是确定当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数;若当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数大于等于1,则调整所述匹配相似度为当前匹配相似度的(100+n)%;当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数等于0,则调整所述匹配相似度为当前匹配相似度的(100-n)%;其中,n为大于0且小于5的整数,例如n=3。对于该匹配相似度阈值区间,可以为匹配相似度阈值最大值100%,最小值45%,但不仅局限于此。

若调整后的匹配相似度处于预先设置的匹配相似度阈值区间外,执行步骤212。若调整后的匹配相似度处于预先设置的匹配相似度阈值区间内,返回执行步骤209,根据调整后的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

步骤212、确定所述识别所述目标操作对象失败,生成识别失败日志,并保存当前的待测试软件的界面图像。

步骤213、若识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象,根据所述目标测试数据向所述目标操作对象填充数据。

步骤214、根据所述目标操作信息对所述目标操作对象进行单个操作,并根据所述目标操作信息确定对所述目标操作对象的操作是否完成。

若对所述目标操作对象的操作未完成,返回执行步骤209,继续根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

若对所述目标操作对象的操作完成,则执行步骤215。

步骤215、生成测试结果。

此处步骤209至步骤215可以是,首先获取到目标测试数据对应的变量,例如在图3和图4所示的实例中,将100101赋值给userid,将111111赋值给password。然后通过用户名输入场图像在测试软件画面识别找到被测试对象的位置,通过测试动作发生位置信息和测试动作类型模拟人工操作:即首先在用户名输入场输入100101,直到完成点击登录按钮操作。整个回放环境可以为变量赋予不同的登录名和密码,循环进行多次测试,从而复用已有的测试脚本,提高测试效率。

步骤216、判断所述测试结果与预先设置的结果样本是否相同。

例如,预先设置的结果样本为用户登录成功,显示登录成功后的界面。则所述测试结果可以与该登录成功后的界面进行匹配,以确定测试结果是否正确。

步骤217、若所述测试结果与预先设置的结果样本相同,确定对所述目标操作对象的测试成功。

本发明实施例提供的一种软件界面的自动化测试方法,首先录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;之后,从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;之后,从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;然后,自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;从而根据所述测试结果判断对所述目标操作对象的测试是否成功。可见,本发明实施例可以在快速、简单、不依赖于被测软件源码的情况下实施界面自动化测试,去除了自动化测试对源码的依赖,使自动化界面测试的适用范围极大延伸,可以做到依靠软件界面,无论该软件使用什么样的编程语言编写的,也无论该软件使用的是何种程序框架和结构模式,都可以通过本发明完成自动化测试。可见,本发明实施例可以解决当前解析式回放的测试方法对被测试对象源码过于依赖,难以正确识别到界面元素,并且流行的编程语言众多,解析源码并回放的难度较大的问题。

如图5所示,本发明实施例提供一种软件界面的自动化测试装置,包括:

信息记录单元41,用于录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据。

局部画面确定单元42,用于从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图。

目标信息确定单元43,用于从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据。

识别单元44,用于自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象。

测试结果生成单元45,用于根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果。

测试结果判断单元46,用于根据所述测试结果判断对所述目标操作对象的测试是否成功。

具体的,所述信息记录单元41中的关键操作画面为对被操作对象进行操作时的画面;所述操作信息包括但不局限于对所述被操作对象进行的鼠标单击、鼠标右键点击、鼠标拖拽以及文本框输入操作。

具体的,如图6所示,所述局部画面确定单元42,包括:

操作焦点识别模块421,用于根据预先设置的操作焦点图像,在所述关键操作画面中识别出所述操作焦点。

局部画面截取模块422,用于通过识别所述操作焦点所操作的被操作对象,并以所述被操作对象为中心,截取被操作对象的局部画面。

唯一性判断模块423,用于判断所述局部画面在当前的关键操作画面中是否唯一。

截取范围调整模块424,用于在所述局部画面在当前的关键操作画面中不唯一时,在关键操作画面中将所述局部画面的截取范围扩大m%。

所述局部画面截取模块422,还用于重新截取被操作对象的局部画面,直至所述唯一性判断模块确定局部画面在当前的关键操作画面中唯一。

其中,m%为以被操作对象为核心的局部画面扩展步长参数,m为大于0且小于100的整数。

具体的,如图6所示,所述目标信息确定单元43,包括:

目标信息确定模块431,用于在所述局部画面在当前的关键操作画面中唯一时,从人为的操作信息和人为操作使用的测试数据中分别确定所述局部画面中被操作对象对应的目标操作信息和目标测试数据;所述目标操作信息包括测试动作类型和测试动作发生位置。

变量化操作模块432,用于将所述目标操作信息和目标测试数据进行变量化操作,形成目标操作信息和目标测试数据的变量数据。

对应关系确定模块433,用于确定局部画面与所述变量数据的对应关系,并存储目标操作信息、目标测试数据和局部画面与所述变量数据的对应关系。

具体的,如图6所示,所述识别单元44,包括:

识别模块441,用于自动运行待测试软件,根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

识别次数判断模块442,用于在未识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象时,判断当前识别所述目标操作对象的识别次数是否大于一预设识别次数阈值。

所述识别模块441,还用于在当前识别所述目标操作对象的识别次数不大于所述预设识别次数阈值时,继续根据当前的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

匹配相似度调整模块443,用于在当前识别所述目标操作对象的识别次数大于所述预设识别次数阈值时,对所述匹配相似度进行调整,并确定调整后的匹配相似度是否处于预先设置的匹配相似度阈值区间内。

识别失败确认模块444,用于在调整后的匹配相似度处于预先设置的匹配相似度阈值区间外时,确定所述识别所述目标操作对象失败,生成识别失败日志,并保存当前的待测试软件的界面图像。

所述识别模块441,还用于在调整后的匹配相似度处于预先设置的匹配相似度阈值区间内时,根据调整后的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此外,所述匹配相似度调整模块443,具体用于:

确定当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数。

若当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数大于等于1,则调整所述匹配相似度为当前匹配相似度的(100+n)%。

当前已经识别出的待测试软件的界面中与所述被操作对象对应的目标操作对象的个数等于0,则调整所述匹配相似度为当前匹配相似度的(100-n)%;其中,n为大于0且小于5的整数。

此外,所述测试结果生成单元45,具体用于:

在识别到待测试软件的界面中存在与所述被操作对象对应的目标操作对象时,根据所述目标测试数据向所述目标操作对象填充数据。

根据所述目标操作信息对所述目标操作对象进行单个操作,并根据所述目标操作信息确定对所述目标操作对象的操作是否完成。

在对所述目标操作对象的操作完成时,生成测试结果。

所述识别模块441,还用于在对所述目标操作对象的操作未完成时,继续根据图像识别技术以预先设置的匹配相似度和所述局部画面中被操作对象,识别待测试软件的界面。

此外,所述测试结果判断单元46,具体用于:判断所述测试结果与预先设置的结果样本是否相同;在所述测试结果与预先设置的结果样本相同时,确定对所述目标操作对象的测试成功。

值得说明的是,本发明实施例提供的一种软件界面的自动化测试装置的具体实现方式可以参见上述图1和图2对应的方法实施例,此处不再赘述。

本发明实施例提供的一种软件界面的自动化测试装置,首先录制待测试软件的运行过程,截取人为操作待测试软件的关键操作画面,并记录人为的操作信息和人为操作使用的测试数据;之后,从所述关键操作画面中识别操作焦点所在控件的图像,从所述操作焦点所在控件的图像中确定能唯一确认被操作对象的局部画面,并对所述局部画面进行截图;之后,从人为的操作信息和人为操作使用的测试数据中确定所述被操作对象对应的目标操作信息和目标测试数据;然后,自动运行待测试软件,根据所述局部画面中被操作对象识别出所述待测试软件的界面中的目标操作对象;根据所述目标测试数据向所述目标操作对象填充数据,并根据所述目标操作信息对所述目标操作对象进行操作,生成测试结果;从而根据所述测试结果判断对所述目标操作对象的测试是否成功。可见,本发明实施例可以在快速、简单、不依赖于被测软件源码的情况下实施界面自动化测试,去除了自动化测试对源码的依赖,使自动化界面测试的适用范围极大延伸,可以做到依靠软件界面,无论该软件使用什么样的编程语言编写的,也无论该软件使用的是何种程序框架和结构模式,都可以通过本发明完成自动化测试。可见,本发明实施例可以解决当前解析式回放的测试方法对被测试对象源码过于依赖,难以正确识别到界面元素,并且流行的编程语言众多,解析源码并回放的难度较大的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1