一种录制回放测试方法和相关装置
技术领域
本申请涉及软件测试技术领域,特别是涉及一种录制回放测试方法和相关装置。
背景技术
目前,当需要测试软件时,可以由测试人员人工执行测试操作,但是其缺点是耗费人力,效率较低。录制回放测试是另一种常用的软件测试方式,通过录制人工测试的操作流程,对操作回放复现,从而实现了软件测试的自动化,极大程度上节省了人力消耗,并提高了软件测试效率。
录制回放测试过程大致包括以下三个环节:首先,当测试人员手动地在被测软件上进行操作(例如屏幕点击操作和/或按键操作)的同时,录制操作时界面上被点击的坐标位置和/或按键信息,保存为一个操作序列;其后,由计算机程序按照之前保存的操作序列,模拟该操作序列中的各项操作,实现对测试人员手动操作的回放;最终,通过对比录制时和回放时被测软件呈现的截图效果,判断回放时被测软件是否通过测试。
然而,采用现有的录制回放测试方法实际测试软件时,因为多种原因极易回放失败,不但影响测试的进行,而且影响测试结果的判定。例如,现有的录制回放方法对于点击操作的记录是基于记录点击位置在操作界面上的绝对坐标或相对坐标,而实际回放中,可能由于界面变更、屏幕尺寸变更或滚动条位置误差等原因,导致回放时被点击内容与录制时坐标对应的被点击内容不一致的情况,从而回放失败。显然,此种回放失败的结果是由于该方法无法适应界面或屏幕尺寸等变更情况,所以此种回放失败的结果不应作为判定软件测试通过与否的关键依据。可见,现有的录制回放测试方法可靠性较差,测试结果缺乏准确性。
目前,如何提高软件测试的可靠性和准确性已成为本领域急需解决的技术问题。
发明内容
基于上述问题,本申请提供了一种录制回放测试方法和相关装置,以提高软件测试的可靠性和准确性。
本申请实施例公开了如下技术方案:
第一方面,本申请提供一种录制回放测试方法,用于测试软件,所述方法包括:
获得人工操作被测软件时录制的操作序列;所述操作序列记录有执行顺序确定的多项操作,以及每项操作对应的操作界面截图;所述操作界面截图中包含被触发控件,所述被触发控件与所述操作具有对应关系;
利用所述操作界面截图获得所述被触发控件的语义信息;所述被触发控件的语义信息包括以下至少一种:被触发控件的分类信息、文字信息或图像特征;
获取所述被测软件的实时界面截图,并利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息;所述各个控件对应的语义信息包括以下至少一种:所述各个控件对应的分类信息、文字信息或图像特征;
根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果是,则对所述目标控件模拟回放所述被触发控件对应的所述操作;
根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
可选地,所述利用所述操作界面截图获得所述被触发控件的语义信息,具体包括:
对所述操作界面截图中的所述被触发控件进行分类,获得所述被触发控件的分类信息;
和/或,对所述被触发控件进行文字信息识别,获得识别到的所述被触发控件的文字信息;
和/或,对所述被触发控件进行图像特征识别,获得识别到的所述被触发控件的图像特征。
可选地,所述利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息,具体包括:
对所述实时界面截图中的各个控件进行分类,获得所述各个控件对应的分类信息;
和/或,对所述各个控件中包含文字信息的控件进行文字信息识别,获得识别到的所述包含文字信息的控件对应的文字信息;
和/或,对所述各个控件进行图像特征识别,获得识别到的所述各个控件对应的图像特征。
可选地,方法还包括:
对所述实时界面截图进行分割,获得多个相互独立的图像子区域;每个所述图像子区域包含一个控件;
所述对所述实时界面截图中的各个控件进行分类,具体包括:
对各个所述图像子区域中的控件分别进行分类;
所述对所述各个控件中包含文字信息的控件进行文字信息识别,具体包括:
对各个所述图像子区域中包含文字信息的控件分别进行文字信息识别;
所述对所述各个控件进行图像特征识别,具体包括:
对各个所述图像子区域中的控件分别进行图像特征识别。
可选地,方法还包括:
根据所述操作界面截图获得所述被触发控件的位置信息;以及,根据所述实时界面截图获得所述各个控件对应的位置信息;
所述根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,具体包括:
根据所述被触发控件的语义信息和所述各个控件对应的语义信息,以及所述被触发控件的位置信息和所述各个控件对应的位置信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件。
可选地,所述根据所述被触发控件的语义信息和所述各个控件对应的语义信息,以及所述被触发控件的位置信息和所述各个控件对应的位置信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,具体包括:
将所述各个控件分别与所述被触发控件进行语义信息匹配性评分,获得所述各个控件对应的第一匹配分值;将所述各个控件分别与所述被触发控件进行位置信息匹配性评分,获得所述各个控件对应的第二匹配分值;
根据所述各个控件对应的所述第一匹配分值和所述第二匹配分值,获得所述各个控件对应的综合匹配分值;
判断是否存在所述综合匹配分值高于预设匹配分值的控件,如果是,则将所述综合匹配分值最高的控件确定为与所述被触发控件相匹配的所述目标控件。
可选地,方法还包括:
如果所述实时界面截图中不包含与所述被触发控件相匹配的目标控件,则等待预设时间后,判断所述操作界面截图对应的当前的重试次数是否超过预设次数,如果否,则获取新的实时界面截图,并对所述操作界面截图对应的重试次数加1;
确定所述新的实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果否,则继续重试,直至所述重试次数超过所述预设次数时,确定所述操作回放失败,或者直至在所述重试次数超过所述预设次数之前,确定在当次获取的新的实时界面截图中包含与所述被触发控件相匹配的目标控件。
可选地,所述根据所述操作序列中记录的各项操作对应的回放结果,确定所述被测软件是否通过测试,具体包括:
如果所述所有操作的回放结果均为回放成功,则确定所述被测软件通过测试;
或者,如果所述所有操作的回放结果中超过预设比率的操作的回放结果为回放成功,则确定所述被测软件通过测试。
可选地,方法还包括:对所述操作序列记录的多项操作中重要的操作进行标记;
所述根据所述操作序列中记录的各项操作对应的回放结果,确定所述被测软件是否通过测试,具体包括:
判断被标记的所述操作对应的回放结果是否均为回放成功,如果是,则确定所述被测软件通过测试;如果否,则确定所述被测软件未通过测试。
可选地,方法还包括:
获取所述操作对应的第一响应界面截图;
在所述第一响应界面截图中标记至少一个参照控件;所述参照控件控件在回放过程中不受操作触发;
利用所述第一响应界面截图获得所述参照控件的语义信息;所述参照控件的语义信息包括以下至少一种:所述参照控件的分类信息、文字信息或图像特征;
在所述对所述目标控件模拟回放所述被触发控件对应的所述操作之后,获取所述操作对应的第二响应界面截图;
确定所述第二响应界面截图中是否包含语义信息与所述参照控件的语义信息相互匹配的控件,如果是,则所述操作回放成功;如果否,则所述操作回放失败。
第二方面,本申请提供一种录制回放测试装置,用于测试软件,所述装置包括:
操作序列获取模块,用于获得人工操作被测软件时录制的操作序列;所述操作序列记录有执行顺序确定的多项操作,以及每项操作对应的操作界面截图;所述操作界面截图中包含被触发控件,所述被触发控件与所述操作具有对应关系;
语义信息第一获取模块,用于利用所述操作界面截图获得所述被触发控件的语义信息;所述被触发控件的语义信息包括以下至少一种:被触发控件的分类信息、文字信息或图像特征;
语义信息第二获取模块,用于获取所述被测软件的实时界面截图,并利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息;所述各个控件对应的语义信息包括以下至少一种:所述各个控件对应的分类信息、文字信息或图像特征;
控件匹配模块,用于根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果是,则操作回放模块对所述目标控件模拟回放所述被触发控件对应的所述操作;
软件测试结果确定模块,用于根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
相较于现有技术,本申请具有以下有益效果:
本申请提供的录制回放测试方法,基于录制时和回放时被测软件的操作界面上控件的语义信息(例如分类信息,文字信息或图像特征等),从回放时操作界面上确定出与录制时操作界面上的被触发控件相匹配的目标控件。录制时对于被触发控件施加的操作,在回放时可对应地施加于目标控件,从而实现对录制时操作界面对应的操作的回放。对于录制得到的操作序列中的每项操作,按照操作序列中各项操作的执行顺序,逐一按照上述方式确定出目标控件并执行对应的操作,从而能够完成整个操作序列的回放,最终确定被测软件的测试结果。
该方法依据控件的语义信息来匹配控件,因此,保证了目标控件与被触发控件的一致性,以便后续回放时进行模拟操作能够准确地触发目标控件。该方法不仅仅依赖于操作截图上的坐标位置进行操作的回放,因此能够有效减少回放失败的几率,可见,应用该方法进行软件测试,测试的可靠性得到提高。进一步地,由于测试可靠性提高,因而能够获得更加准确的被测软件的测试结果。此外,该方法不依赖于坐标位置,因此,可兼容于多种不同的设备,以及测试不同的版本和/或界面样式的软件。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种录制回放测试方法的流程图;
图2为本申请实施例提供的另一种录制回放测试方法的流程图;
图3为本申请实施例提供的又一种录制回放测试方法的流程图;
图4为本申请实施例提供的一种录制回放测试装置的结构示意图。
具体实施方式
正如前文描述,目前的录制回放测试方法应用于软件测试时,回放成功与否极大程度上受到录制时操作作用的坐标位置影响,因而一旦被作用(即被触发控件)的位置在实际应用中存在些许偏差,即造成回放失败的结果。从而,软件功能测试的可靠性和准确性。
基于上述问题,发明人经过研究,提供了一种录制回放测试方法和相关装置。本申请提供的技术方案中,将录制时测试人员人工操作所触发的控件定义为被触发控件,当需要进行操作回放时,根据实时界面截图中各个控件与被触发控件语义信息的匹配性,确定是否存在目标控件,该目标控件即为回放时需要模拟施加相同操作的控件。对于录制所得的操作序列中每项操作,按照顺序以上述方式逐一寻找目标控件并施加操作,最终完成对整个操作序列的回放。该技术方案按照语义信息匹配控件,从而能够保证目标控件与被触发控件的一致性,减少操作回放失败的几率。进一步地提高测试的可靠性和准确性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例一
参见图1,该图为本申请实施例提供的一种录制回放测试方法的流程图。该方法应用于对软件进行测试。
如图1所示,本申请实施例提供的录制回放测试方法,包括:
步骤101:获得人工操作被测软件时录制的操作序列。
需要说明的是,本实施例中,操作序列记录有执行顺序确定的多项操作,以及每项操作对应的操作界面截图。作为示例,软件测试人员依次执行n项操作,操作序列中依次将其记为:操作1,操作2,…操作n。其中n为大于或等于2的整数。操作1,操作2,…操作n各自对应的操作界面截图依次即为操作界面截图1,操作界面截图2,…操作界面截图n。
在本实施例中,操作与操作界面截图的对应性,可以具体体现在时间的对应性上。作为一示例,操作施加时刻前T毫秒时刻采集到的操作界面截图作为该操作对应的操作界面截图,其中,T为大于0的数值。
可以理解的是,操作界面截图中包含被触发控件,被触发控件与操作具有对应关系。例如,操作1对应于操作界面截图1,操作1作用于被测软件的控件1,控件1即作为操作1对应的被触发控件,采集的操作界面截图1中包含该控件1。
在本实施例中,操作界面截图中还可能包含有被触发控件以外的其他控件,这些其他控件不受该操作界面截图对应的操作所触发。一项操作对应的被触发控件的数量可能为1个,也可能为多个。同一被触发控件可能由操作序列中的某一项操作触发,也可能由操作序列中的多项操作触发,例如,操作1和操作3对应的被触发控件相同。
在实际应用中,操作所对应的被触发控件可能是输入框、按钮或文本等。本实施例中,对于被触发控件的具体形式、种类等均不加以限定。需要说明的是,被触发控件要求是回放过程中可经操作触发的。。
步骤102:利用所述操作界面截图获得所述被触发控件的语义信息。
本实施例中,被触发控件的语义信息包括但不限于:被触发控件的分类信息、文字信息或图像特征。即,被触发控件的语义信息可以为其分类信息、文字信息或图像特征的任意组合。
对于本领域技术人员来说,对图像中某一块区域进行分类、识别某一块区域的文字信息,以及识别某一块区域的图像特征,属于比较成熟的技术,因此,本步骤对于如何获得被触发控件的语义信息不进行赘述。
步骤103:获取所述被测软件的实时界面截图,并利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息。
需要说明的是,本步骤中实时界面截图,测试人员对被测软件进行人工测试,并获取录制的操作序列之后,需要进行操作回放时能够从被测软件采集到的实时界面截图。例如,需要对操作序列中第一项操作,即操作1,进行回放,则实时地获取一张被测软件的实时界面截图,随后获取该图片中各个控件对应的语义信息。
本实施例中,每张实时界面截图中包括至少一个控件。各个控件对应的语义信息包括但不限于:各个控件对应的分类信息、文字信息或图像特征。例如,实时界面截图中包含3个控件,分别为控件K1,控件K2和控件K3,其中,控件K1的语义信息包括分类信息和文字信息,控件K2的语义信息包括分类信息和图像特征,控件K3的语义信息包括分类信息、文字信息和图像特征。
获取实时界面截图中包含的各个控件对应的语义信息的具体方式,可以参照前述步骤102中获取被触发控件的语义信息的实现方式。此处,不再加以赘述。
步骤104:根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果是,则执行步骤105。
步骤105:对所述目标控件模拟回放所述被触发控件对应的所述操作。
在本实施例中,寻找到实时界面截图中包含与被触发控件相匹配的目标控件,并对该目标控件模拟回放施加于被触发控件上的操作后,即表明对于该操作的回放结果为回放成功,在目标控件上顺利模拟执行该操作。
步骤106:根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
可以理解的是,当进行回放时,对操作序列中各项操作进行回放的顺序与操作序列中各项操作的顺序一致。例如,操作序列中包含操作1、操作2和操作3,如果操作1回放成功,则其后针对操作2从步骤102重复执行本方法,如果操作2也回放成功,则其后针对操作3从步骤102重复执行本方法。如果操作序列中操作项数大于3时,按照前述描述类推。本申请在判定被测软件测试通过与否时,考虑到整个操作序列各项操作对应的回放结果。作为一种示例性的实现方式,如果操作序列中各项操作均回放成功,则确定被测软件通过本次测试。
可以理解的是,在实际应用中,应被测软件的类型以及所涉及技术领域等不同,可能有不同的测试通过标准。例如,还可能当操作序列中各项操作回放成功率达到预设比率时,确定被测软件通过测试。因此,本实施例中,步骤106的具体实现方式不加以限定。
以上即为本申请实施例提供的一种录制回放测试方法。该方法基于录制时和回放时被测软件的操作界面上控件的语义信息(例如分类信息,文字信息或图像特征等),从回放时操作界面上确定出与录制时操作界面上的被触发控件相匹配的目标控件。录制时对于被触发控件施加的操作,在回放时可对应地施加于目标控件,从而实现对录制时操作界面对应的操作的回放。对于录制得到的操作序列中的每项操作,按照操作序列中各项操作的执行顺序,逐一按照上述方式确定出目标控件并执行对应的操作,从而能够完成整个操作序列的回放,最终确定被测软件的测试结果。
该方法依据控件的语义信息来匹配控件,因此,保证了目标控件与被触发控件的一致性,以便后续回放时进行模拟操作能够准确地触发目标控件。该方法不仅仅依赖于操作截图上的坐标位置进行操作的回放,因此能够有效减少回放失败的几率,可见,应用该方法进行软件测试,测试的可靠性得到提高。进一步地,由于测试可靠性提高,因而能够获得更加准确的被测软件的测试结果。此外,该方法不依赖于坐标位置,因此,可兼容于多种不同的设备,以及测试不同的版本和/或界面样式的软件。
目前现有的录制回放测试方法,以录制时获取的操作序列中各项操作的间隔为基准。例如,录制时操作1与操作2之间间隔为50ms,则回放时也按照50ms时间间隔模拟回放。在实际应用中,这种方式存在一定的问题。例如,操作1为搜索页面的操作,操作2为点击词条的操作,模拟回放时而由于页面加载时间过长,直至50ms之后,词条仍未出现,因此无法回放操作2。从而,导致操作2回放失败。然而,这种回放失败的问题同样也会影响软件测试的可靠性和准确性。
基于前述实施例,针对上述问题,本申请还提供了另一种录制回放测试方法。下面结合实施例和附图对该方法的具体实现进行详细描述。
方法实施例二
参见图2,该图为本申请实施例提供的另一种录制回放测试方法的流程图。
如图2所示,本实施例提供的录制回放测试方法,包括:
步骤201:获得人工操作被测软件时录制的操作序列。
本实施例中,步骤201的实现方式与前述实施例中步骤101的实现方式相同。关于步骤201的相关描述可参照前述实施例,此处不再赘述。
步骤202:对所述操作界面截图中的所述被触发控件进行分类,获得所述被触发控件的分类信息;和/或,对所述被触发控件进行文字信息识别,获得识别到的所述被触发控件的文字信息;和/或,对所述被触发控件进行图像特征识别,获得识别到的所述被触发控件的图像特征。
执行本步骤时,可以按照以下示例方式获取被触发控件的分类信息和文字信息:
首先对被触发控件进行分类。将被触发控件的类型确定为:按钮、单行文本或输入框等。本实施例中,对于被触发控件的可选类型范围不加以限定。
分类后,如果被触发控件属于包含文字信息的控件类别,例如被触发控件为单行文本类型,则被触发控件包含可以识别的文字信息。对于此类被触发控件,可以利用多种可选的文字识别技术对文字信息进行识别,例如光学字符识别(Optical CharacterRecognition,OCR)技术。本步骤对于被触发控件对应的文字信息识别方式不加以限定。
显然,分类后,能够更加便捷快速地确定出该被触发控件是否包含文字信息,是否需要对该被触发控件进行文字识别。从而节省了语义信息获取时间。
可以理解的是,被触发控件的图像特征是其区别于其他控件的又一特征。因此,后续进行被触发控件与实时界面截图中其他控件的语义信息匹配时,控件的图像特征也可作为一种重要匹配元素。
本实施例中,在执行本步骤时,如果操作界面截图中还包含被触发控件以外的其他控件,作为另一种实现方式,还可以对操作界面截图中所有控件分别获取对应的语义信息。其后,当需要回放其他操作时,由于其他操作对应的被触发控件可能发生了变化,如果其他操作对应的操作界面截图中包含之前获取过语义信息的控件并在本次作为被触发控件,则在执行本步骤时可以直接抽取其他操作对应的被触发控件的语义信息,再执行后续步骤的操作。
步骤203:获取所述被测软件的实时界面截图,对所述实时界面截图中的各个控件进行分类,获得所述各个控件对应的分类信息;和/或,对所述各个控件中包含文字信息的控件进行文字信息识别,获得识别到的所述包含文字信息的控件对应的文字信息;和/或,对所述各个控件进行图像特征识别,获得识别到的所述各个控件对应的图像特征。
执行本步骤时,与步骤202相似地,可以按照以下示例方式获取实时界面截图中各个控件对应的分类信息和文字信息:
首先对各个控件进行分类。将被各个控件的类型确定为:按钮、单行文本或输入框等。本实施例中,对于各个控件的可选类型范围不加以限定。
分类后,如果存在一些控件属于包含文字信息的控件类别,例如各个控件中,控件A为单行文本类型,则控件A中包含可以识别的文字信息。对于此类包含文字信息的控件,可以利用文字识别技术对文字信息进行识别,例如OCR技术。本步骤对于包含文字信息的控件对应的文字信息识别方式不加以限定。例如,识别出控件A的文字信息为“发送”。
显然,对各个控件分类后,能够更加便捷快速地确定出哪些控件包含文字信息,是否需要对该这一类控件进行文字识别。从而节省了各个控件对应的语义信息的获取时间。
可以理解的是,被控件的图像特征是其区别于其他控件的又一特征。例如红色按钮与绿色按钮的颜色不同。后续进行被触发控件与实时界面截图中其他控件的语义信息匹配时,实时界面截图中控件的图像特征也可作为一种重要匹配元素。
需要说明的是,本实施例在上述步骤202和步骤203获取控件的语义信息之前,还可预先对操作界面截图以及实时界面截图进行分割,分割为多个相互独立的图像子区域。每个图像子区域中包含一个控件。可以理解的是,将图像进行分割后再获取图像子区域中控件的语义信息,能够进一步提高语义信息的获取速度。
本实施例中,在确定目标控件的存在与否时,还可将控件的位置信息作为评判参考依据之一。下面通过步骤204至205进行描述。
步骤204:根据所述操作界面截图获得所述被触发控件的位置信息;以及,根据所述实时界面截图获得所述各个控件对应的位置信息。
作为示例,被触发控件的位置为(xt,yt);实时界面截图中包括两个控件,控件B和控件C,其中控件B的位置为(xB,yB),控件C的位置为(xC,yC)。
步骤205:根据所述被触发控件的语义信息和所述各个控件对应的语义信息,以及所述被触发控件的位置信息和所述各个控件对应的位置信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件。如果是,则执行步骤206;如果否,则执行步骤207。
作为本步骤的一种可能的实现方式,可以通过匹配评分的方式确定目标控件存在与否。下面利用S1~S3具体介绍该实现方式。
S1:将所述各个控件分别与所述被触发控件进行语义信息匹配性评分,获得所述各个控件对应的第一匹配分值;将所述各个控件分别与所述被触发控件进行位置信息匹配性评分,获得所述各个控件对应的第二匹配分值。
由于语义信息中可能包含多种,例如控件的分类信息、文字信息和图像特征等,因此,在对各个控件分别与所述被触发控件进行语义信息匹配性评分时,可以具体地将各个控件分别与所述被触发控件进行分类信息、文字信息和图像特征的匹配性评分,获得各个控件对应的分类信息匹配分值、文字信息匹配分值以及图像特征匹配分值,根据这些评分结果进行累加,最终获得各个控件对应的第一匹配分值。
作为获取第二匹配分值的一种可能的实现方式,可以具体根据所述被触发控件的位置信息和所述各个控件对应的位置信息,求取各个控件与被触发控件的距离。预先设定有各个距离档位对应的分值,例如距离小于第一预设距离,则给予控件的第二匹配分值为90分,距离在第一预设距离与第二预设距离(第二预设距离大于第一预设距离)之间,则给予控件的第二匹配分值为80分。
需要说明的是,本实施例中,对于第一匹配分值和第二匹配分值的设置标准不加以限定。
S2:根据所述各个控件对应的所述第一匹配分值和所述第二匹配分值,获得所述各个控件对应的综合匹配分值。
在具体实现是,可以将每个控件对应的第一匹配分值与其对应的第二匹配分值相加,所得的和作为该控件对应的综合匹配分值。例如,控件B相对于被触发控件,获得的第一匹配分值为90分,第二匹配分值为80分,则控件B最终获得的综合匹配分值为170分。
当然,在实际应用中还可采用其他方式获得综合匹配分值。例如为第一匹配分值和第二匹配分值分别赋予第一权重和第二权重,求第一匹配分值与第一权重的和以及第二匹配分值与第二权重的和,并将两个和做加法,最终所得到的结果作为综合匹配分值。
以上仅为S2示例性实现方式,本实施例对于获取控件对应的综合匹配分值的具体方法不加以限定。
S3:判断是否存在所述综合匹配分值高于预设匹配分值的控件,如果是,则将所述综合匹配分值最高的控件确定为与所述被触发控件相匹配的所述目标控件。
例如,预设匹配分值为160分,实时界面截图中包含控件B、控件C以及控件D,其对应的综合匹配分值分别为140分、165分和170分。由于控件D的综合匹配分值高于预设匹配分值且为最高的综合匹配分值,因此,将控件D确定为目标控件。可应用控件D执行后续步骤206。
可以理解的是,以上S1~S3仅为本步骤的示例性实现方式。在实际应用中还可基于被触发控件的语义信息和各个控件对应的语义信息,以及被触发控件的位置信息和所述各个控件对应的位置信息,采用其他方式确定目标控件的存在与否。因此,本实施例对于步骤205的具体实现方式不加以限定。
可以理解的是,通过执行步骤204至205综合利用语义信息和位置信息来确定实时界面截图中的目标控件,能够提高所确定的目标控件的准确性,保证目标控件与操作界面截图中的被触发控件高度一致,从而进一步提升对于被测软件进行测试的准确性。
步骤206:对所述目标控件模拟回放所述被触发控件对应的所述操作。
步骤207:等待预设时间后,判断所述操作界面截图对应的当前的重试次数是否超过预设次数,如果是,则所述操作界面对应的操作回放失败;如果否,则执行步骤208。
步骤208:获取新的实时界面截图,并对所述操作界面截图对应的重试次数加1。确定所述新的实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果否,则继续重试,直至所述重试次数超过所述预设次数时,确定所述操作回放失败,或者直至在所述重试次数超过所述预设次数之前,确定在当次获取的新的实时界面截图中包含与所述被触发控件相匹配的目标控件。
本实施例中,如若实时界面截图中不包含与被触发控件相互匹配的目标控件,则等待并不断重新获取新的实时界面截图,直至重试次数超过预设次数。例如,重试次数为10次,如果当前未找到目标控件且重试次数超过10次,则确定操作界面截图对应的操作回放失败,而如果未超过10次,则可以继续重试。
本实施例提供的录制回放测试方法,对于操作序列中各项操作的回放以查找目标控件为基础,查找目标控件时,通过步骤207至208描述的轮询方式进行。相比于现有技术提供的录制回放测试方法,在回放操作时,不以录制时操作之间的时间间隔为依据,而是以查找到目标控件为基准进行操作回放,只要能够在预设重试次数内查找到目标控件,即可回放操作,视为回放成功。从而,避免因加载时间等原因导致回放失败的问题。
步骤209:根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
本申请还提供了步骤209一种示例性的实现方式。例如,预先在操作序列中对重要的操作进行标记。需要说明的是,对于不同的被测软件,其被测过程中重要的测试操作评价准则可能不同。因此,对于何为重要的操作不进行具体限定。在执行本步骤时,判断被标记的所述操作对应的回放结果是否均为回放成功,如果是,则确定所述被测软件通过测试;如果否,则确定所述被测软件未通过测试。
以上即为本申请实施例提供的另一种录制回放测试方法。该方法通过在预设次数内轮询查找目标控件的方式,进一步地保证了操作的回放成功几率和稳定性,减少因操作的加载时间长于操作间隔时间导致的回放失败几率。此外,本实施例依据语义信息和位置信息综合匹配确定目标控件,其中语义信息除包含图像特征外还可能包含分类信息和文字信息,从而使得语义信息非常丰富,依据该方法确定出的目标控件更为准确,从而进一步提高了测试的准确性。
在实际应用中,还可结合操作的响应结果进行测试通过与否的判定。例如,操作1为支付操作,录制时执行操作1后,响应于操作1,软件界面上显示90元,而回放该操作1后,软件界面上显示80元。由于录制和回放时的响应结果不同,且操作1的响应结果对于整个测试流程来说非常重要,则即便寻找到目标控件并模拟执行了操作1,由于响应结果不理想,也要判定被测软件本次测试失败。
针对此问题,本申请还进一步提供了又一种录制回放测试方法。下面结合实施例和附图对该方法的具体实现进行详细描述。
方法实施例三
参见图3,该图为本申请实施例提供的又一种录制回放测试方法的流程图。
如图3所示,本实施例提供的录制回放测试方法,包括:
步骤301:获得人工操作被测软件时录制的操作序列。
步骤302:利用所述操作界面截图获得所述被触发控件的语义信息。
步骤303:获取所述操作对应的第一响应界面截图。
第一响应界面截图指的是,录制时被测软件操作界面截图上被触发控件经过操作界面截图对应的操作触发后,被测软件呈现的响应效果的截图。
步骤304:在所述第一响应界面截图中标记至少一个参照控件。
前文提到,本实施例中,参照控件指的是回放过程中不受操作触发的控件。作为示例,被测软件为具有支付功能的软件,其软件界面上标记的参照控件可以是显示支付数值的控件。另外,软件中还可能包含某些具有展示与响应触发功能控件,这些控件也有可能作为实施例中提及的标记的参照控件。本实施例中对于标记的参照控件的具体形式不加以限定。
将标记的参照控件用于后续评价回放通过与否以及测试通过与否时进行语义信息的对比。
步骤305:利用所述第一响应界面截图获得所述参照控件的语义信息。
所述参照控件的语义信息包括以下至少一种:所述参照控件的分类信息、文字信息或图像特征。作为示例,参照控件的语义信息可以仅包含参照控件的文字信息,例如“90元”。
获取参照控件的语义信息的具体实现方式可参见前述实施例中获取控件语义信息的相关描述。此处不再赘述。
步骤306:获取所述被测软件的实时界面截图,并利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息。
步骤307:根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果是,则执行步骤308。
步骤308:对所述目标控件模拟回放所述被触发控件对应的所述操作。
步骤309:获取所述操作对应的第二响应界面截图。
第二响应界面截图指的是,回放时被测软件实时界面截图上目标控件经过操作界面截图对应的操作触发后,被测软件呈现的响应效果的截图。
在实际应用中,判断操作回放成功与否可将第一响应界面截图与第二响应界面截图进行整体的比对,也可将以参照控件为比对目标进行比对。下面针对后一实现方式进行描述。
步骤310:确定所述第二响应界面截图中是否包含语义信息与所述参照控件的语义信息相互匹配的控件,如果是,则所述操作回放成功;如果否,则所述操作回放失败。
需要说明的是,本实施例中可以对获取第二响应界面截图中各个控件的语义信息,然后第二响应界面截图中各个控件的语义信息与参照控件的语义信息进行比较。如果存在匹配的控件,则表明操作界面截图对应的操作回放成功。否则,表明回放失败。
步骤311:根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
对于操作序列中记录的任一项或者多项操作,均可结合其回放时的响应结果与录制时的响应结果的比对结果进行操作回放结果的评价和确定。
以上即为本申请实施例提供的又一种录制回放测试方法。该方法结合操作的响应结果确定操作回放结果,从而操作回放结果的准确性提高,并进一步地提高测试结果的准确性。
基于前述实施例提供的录制回放测试方法,相应地,本申请还提供一种录制回放测试装置。下面结合实施例和附图对该装置的具体实现进行描述。
装置实施例
参见图4,该图为本申请实施例提供的一种录制回放测试装置的结构示意图。该装置应用于对软件进行测试。
如图4所示,本实施例提供的录制回放测试装置,包括:操作序列获取模块401,语义信息第一获取模块402,语义信息第二获取模块403,控件匹配模块404,操作回放模块405,以及软件测试结果确定模块406。
其中,操作序列获取模块401,用于获得人工操作被测软件时录制的操作序列;所述操作序列记录有执行顺序确定的多项操作,以及每项操作对应的操作界面截图;所述操作界面截图中包含被触发控件,所述被触发控件与所述操作具有对应关系;
语义信息第一获取模块402,用于利用所述操作界面截图获得所述被触发控件的语义信息;所述被触发控件的语义信息包括以下至少一种:被触发控件的分类信息、文字信息或图像特征;
语义信息第二获取模块403,用于获取所述被测软件的实时界面截图,并利用所述实时界面截图获取所述实时界面截图中包含的各个控件对应的语义信息;所述各个控件对应的语义信息包括以下至少一种:所述各个控件对应的分类信息、文字信息或图像特征;
控件匹配模块404,用于根据所述被触发控件的语义信息和所述各个控件对应的语义信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果是,则操作回放模块405对所述目标控件模拟回放所述被触发控件对应的所述操作;
软件测试结果确定模块406,用于根据所述操作序列记录的各项操作对应的回放结果,确定所述被测软件是否通过测试。
该装置基于录制时和回放时被测软件的操作界面上控件的语义信息(例如分类信息,文字信息或图像特征等),从回放时操作界面上确定出与录制时操作界面上的被触发控件相匹配的目标控件。录制时对于被触发控件施加的操作,在回放时可对应地施加于目标控件,从而实现对录制时操作界面对应的操作的回放。对于录制得到的操作序列中的每项操作,按照操作序列中各项操作的执行顺序,逐一按照上述方式确定出目标控件并执行对应的操作,从而能够完成整个操作序列的回放,最终确定被测软件的测试结果。
该装置依据控件的语义信息来匹配控件,因此,保证了目标控件与被触发控件的一致性,以便后续回放时进行模拟操作能够准确地触发目标控件。该装置不仅仅依赖于操作截图上的坐标位置进行操作的回放,因此能够有效减少回放失败的几率,可见,应用该装置进行软件测试,测试的可靠性得到提高。进一步地,由于测试可靠性提高,因而能够获得更加准确的被测软件的测试结果。此外,该装置不依赖于坐标位置,因此,可兼容于多种不同的设备,以及测试不同的版本和/或界面样式的软件。
可选地,所述语义信息第一获取模块402,具体可以包括:
分类信息第一获取单元,用于对所述操作界面截图中的所述被触发控件进行分类,获得所述被触发控件的分类信息;
和/或,文字信息第一获取单元,用于对所述被触发控件进行文字信息识别,获得识别到的所述被触发控件的文字信息;
和/或,图像特征第一获取单元,用于对所述被触发控件进行图像特征识别,获得识别到的所述被触发控件的图像特征。
可选地,语义信息第二获取模块403,具体可以包括:
分类信息第二获取单元,用于对所述实时界面截图中的各个控件进行分类,获得所述各个控件对应的分类信息;
和/或,文字信息第二获取单元,用于对所述各个控件中包含文字信息的控件进行文字信息识别,获得识别到的所述包含文字信息的控件对应的文字信息;
和/或,图像特征第二获取单元,用于对所述各个控件进行图像特征识别,获得识别到的所述各个控件对应的图像特征。
可选地,上述装置还包括:
分割模块,用于对所述实时界面截图进行分割,获得多个相互独立的图像子区域;每个所述图像子区域包含一个控件;
所述分类信息第二获取单元,具体用于对各个所述图像子区域中的控件分别进行分类;
所述文字信息第二获取单元,具体用于对各个所述图像子区域中包含文字信息的控件分别进行文字信息识别;
所述图像特征第二获取单元,具体用于对各个所述图像子区域中的控件分别进行图像特征识别。
可选地,上述装置还包括:
位置信息获取模块,用于根据所述操作界面截图获得所述被触发控件的位置信息;以及,根据所述实时界面截图获得所述各个控件对应的位置信息。
可选地,控件匹配模块404,具体包括:
第一匹配单元,用于根据所述被触发控件的语义信息和所述各个控件对应的语义信息,以及所述被触发控件的位置信息和所述各个控件对应的位置信息,确定所述实时界面截图中是否包含与所述被触发控件相匹配的目标控件。
可选地,第一匹配单元,具体包括:
评分单元,用于将所述各个控件分别与所述被触发控件进行语义信息匹配性评分,获得所述各个控件对应的第一匹配分值;将所述各个控件分别与所述被触发控件进行位置信息匹配性评分,获得所述各个控件对应的第二匹配分值;
计分单元,用于根据所述各个控件对应的所述第一匹配分值和所述第二匹配分值,获得所述各个控件对应的综合匹配分值;
匹配判断单元,用于判断是否存在所述综合匹配分值高于预设匹配分值的控件,如果是,则将所述综合匹配分值最高的控件确定为与所述被触发控件相匹配的所述目标控件。
目前现有的录制回放测试方案,以录制时获取的操作序列中各项操作的间隔为基准。例如,录制时操作1与操作2之间间隔为50ms,则回放时也按照50ms时间间隔模拟回放。在实际应用中,这种方式存在一定的问题。例如,操作1为搜索页面的操作,操作2为点击词条的操作,模拟回放时而由于页面加载时间过长,直至50ms之后,词条仍未出现,因此无法回放操作2。从而,导致操作2回放失败。然而,这种回放失败的问题同样也会影响软件测试的可靠性和准确性。
为解决该问题,本申请实施例提供的录制回放测试装置,还可进一步包括:
第一重试判断模块,用于当所述实时界面截图中不包含与所述被触发控件相匹配的目标控件,等待预设时间后,判断所述操作界面截图对应的当前的重试次数是否超过预设次数,如果否,则获取新的实时界面截图,并对所述操作界面截图对应的重试次数加1;
第二重试判断模块,用于确定所述新的实时界面截图中是否包含与所述被触发控件相匹配的目标控件,如果否,则继续重试,直至所述重试次数超过所述预设次数时,确定所述操作回放失败,或者直至在所述重试次数超过所述预设次数之前,确定在当次获取的新的实时界面截图中包含与所述被触发控件相匹配的目标控件。
第一重试判断模块和第二重试判断模块,通过在预设次数内轮询查找目标控件的方式,进一步地保证了操作的回放成功几率和稳定性,减少因操作的加载时间长于操作间隔时间导致的回放失败几率。
可选地,所述软件测试结果确定模块406,具体包括:
第一结果确定单元,用于在所述所有操作的回放结果均为回放成功的情况下,确定所述被测软件通过测试;
或者,第二结果确定单元,用于在所述所有操作的回放结果中超过预设比率的操作的回放结果为回放成功的情况下,确定所述被测软件通过测试。
可选地,上述装置还可进一步包括:
第一标记模块,用于对所述操作序列记录的多项操作中重要的操作进行标记;
所述软件测试结果确定模块406,具体包括:
第三结果确定单元,用于判断被标记的所述操作对应的回放结果是否均为回放成功,如果是,则确定所述被测软件通过测试;如果否,则确定所述被测软件未通过测试。
在实际应用中,还可结合操作的响应结果进行测试通过与否的判定。例如,操作1为支付操作,录制时执行操作1后,响应于操作1,软件界面上显示90元,而回放该操作1后,软件界面上显示80元。由于录制和回放时的响应结果不同,且操作1的响应结果对于整个测试流程来说非常重要,则即便寻找到目标控件并模拟执行了操作1,由于响应结果不理想,也要判定被测软件本次测试失败。
针对此问题,前述提供的录制回放测试装置还可进一步包括:
图像第一获取模块,用于获取所述操作对应的第一响应界面截图;
第二标记模块,用于在所述第一响应界面截图中标记至少一个参照控件;参照控件控件在回放过程中不受操作触发;
语义信息第三获取模块,用于利用所述第一响应界面截图获得所述参照控件的语义信息;所述参照控件的语义信息包括以下至少一种:所述参照控件的分类信息、文字信息或图像特征;
图像第二获取模块,用于在所述对所述目标控件模拟回放所述被触发控件对应的所述操作之后,获取所述操作对应的第二响应界面截图;
匹配与回放结果确定模块,用于确定所述第二响应界面截图中是否包含语义信息与所述参照控件的语义信息相互匹配的控件,如果是,则所述操作回放成功;如果否,则所述操作回放失败。
通过以上几个模块,该装置能够结合操作的响应结果确定操作回放结果,从而操作回放结果的准确性提高,并进一步地提高测试结果的准确性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。