一种基于调试桥的自动化界面兼容性测试方法及装置
技术领域
本发明涉及软件开发及测试领域,尤其涉及一种基于调试桥的自动化界面兼容性测试方法及装置。
背景技术
在智能移动端行业,由于不同的智能移动端屏幕参数之间的差异(例如不同品牌的智能手机之间,以及智能手机及平板电脑之间显示屏的差异),以及操作系统的碎片化,开发人员在具体的开发过程中需要就产品可能运行的平台进行调整,使其能够在多个平台上正常运行。因此,这不可避免地引入各种兼容性问题,尤其是应用程序界面显示是否正常的问题。
诸如手机游戏等应用程序在公开测试或者正式发布前,开发公司都需要花费大量的资源执行相关的测试。尤其是传统的测试方式,即通过测试人员手动测试的方式,覆盖全体测试用例。一方面,由于各位测试人员的具体执行方式的细微差异,因此导致测试过程中某些问题在实际测试中难以复现;另一方面,因为兼容性测试往往需要对几百台不同类型的智能移动端进行测试以尽可能覆盖大部分用户,所以这耗费大量的人力及时间成本来确认应用程序的界面是否正常显示等兼容性问题。
对于应用程序的界面自动化测试,目前比较新颖的方式是谷歌公司针对其自身的安卓平台所开发的UIAutomator自动化测试框架。该框架所提供的自动化测试手段可以完成部分应用程序测试任务。但是,该测试工具主要用于检测每个控件元素在点击之后输出的结果是否符合预期。例如,测试人员在登陆界面分别输入正确和错误的用户名密码,然后点击登陆按钮看看是否能登陆以及是否有错误提示等,而不能检测界面显示尺寸或位置是否正确等项目。另外,UIAutomator测试框架是基于instrumentation的API,其必须运行在Android JunitRunner之上;同时UIAutomator Test也只能运行在Android 4.3(API level18)以上版本,从而不能较为全面地覆盖所有可能的测试用例。
发明内容
本申请的目的是解决现有技术的不足,提供一种基于调试桥的自动化界面兼容性测试方法及装置,能够获得自动检测应用程序的界面在各个平台上兼容性的效果。
为了实现上述目的,本申请采用以下的技术方案。
首先,本申请提出一种基于调试桥的自动化界面兼容性测试方法,适用于运行在安卓系统上的应用程序。该方法包括以下步骤:
S100)保存记录待测试应用程序的自动点击界面路径的测试脚本文件,及相应界面正常展开时的基线图片到测试服务器的指定位置;
S200)通过调试桥连接配置测试设备和测试服务器,使得测试设备从测试服务器下载待测试的应用程序及测试脚本文件;
S300)安装应用程序到测试设备,以自动执行测试脚本文件及截图执行过程中展开的界面;
S400)上传截图至测试服务器,以根据截图确定待测试的应用程序是否正确。
进一步地,在本申请的上述方法中,所述步骤S100还包括以下子步骤:
S101)在测试设备上通过NGUI点击应用程序的界面以记录自动点击界面路径,并截取相应界面正常展示的基线图片;
S102)根据记录的自动点击界面路径形成测试脚本文件,并配对对应的基线图片;
S103)从测试设备上传测试脚本文件和对应的基线图片到测试服务器的指定位置。
进一步地,在本申请的上述方法中,界面路径是通过注入到应用程序进程的、基于钩子的动态链接库自动记录。
可替代地,在本申请的上述方法中,所述步骤S200还包括以下的子步骤:
S201)根据待测试应用程序的下载信息,配置形成调试桥批处理脚本;
S202)执行所述调试桥批处理脚本以批量下载待测试的应用程序及测试脚本文件到多个测试设备。
其中,所述下载信息至少包括测试服务器的指定地址,以及待测试的应用程序和测试脚本文件的文件名。
进一步地,在本申请的上述方法中,所述下载信息还包括测试时间,在执行所述调试桥批处理脚本时,待测试的应用程序和测试脚本文件在指定的所述测试时间下载到测试设备以开始安装并测试应用程序。
可替代地,在本申请的上述方法中,所述步骤S300还包括以下的子步骤:
S301)安装应用程序到测试设备,并启动所述应用程序;
S302)执行所述测试脚本文件,并保存执行过程中所展开界面的截图到测试设备的临时文件夹;
S303)在测试脚本文件执行完毕后,打包临时文件夹中的截图。
进一步地,在本申请的上述方法中,所述步骤S400还包括以下的子步骤:
S401)解包上传到测试服务器的截图,并与测试服务器内的基线图片配对;
S402)匹配截图与基线图片,并筛选出与基线图片之间相似程度低于预设阈值的截图。
再进一步地,在本申请的上述方法中,截图和基线图片是通过文件名称进行配对。
其次,本申请还提出一种基于调试桥的自动化界面兼容性测试装置,适用于运行在安卓系统上的应用程序。该装置包括以下模块:保存模块,用于保存记录待测试应用程序的自动点击界面路径的测试脚本文件,及相应界面正常展开时的基线图片到测试服务器的指定位置;下载模块,用于通过调试桥连接配置测试设备和测试服务器,使得测试设备从测试服务器下载待测试的应用程序及测试脚本文件;安装模块,用于安装应用程序到测试设备,以自动执行测试脚本文件及截图执行过程中展开的界面;判断模块,用于上传截图至测试服务器,以根据截图确定待测试的应用程序是否正确。
进一步地,在本申请的上述装置中,所述保存模块还包括以下子模块:记录模块,用于在测试设备上通过NGUI点击应用程序的界面以记录自动点击界面路径,并截取相应界面正常展示的基线图片;第一配对模块,用于根据记录的自动点击界面路径形成测试脚本文件,并配对对应的基线图片;第一上传模块,用于从测试设备上传测试脚本文件和对应的基线图片到测试服务器的指定位置。
进一步地,在本申请的上述装置中,界面路径是通过注入到应用程序进程的、基于钩子的动态链接库自动记录。
可替代地,在本申请的上述装置中,所述下载模块还包括以下的子模块:配置模块,用于根据待测试应用程序的下载信息,配置形成调试桥批处理脚本;第一执行模块,用于执行所述调试桥批处理脚本以批量下载待测试的应用程序及测试脚本文件到多个测试设备。其中,所述下载信息至少包括测试服务器的指定地址,以及待测试的应用程序和测试脚本文件的文件名。
进一步地,在本申请的上述装置中,所述下载信息还包括测试时间,在执行所述调试桥批处理脚本时,待测试的应用程序和测试脚本文件在指定的所述测试时间下载到测试设备以开始安装并测试应用程序。
可替代地,在本申请的上述装置中,所述安装模块还包括以下的子模块:启动模块,用于安装应用程序到测试设备,并启动所述应用程序;第二执行模块,用于执行所述测试脚本文件,并保存执行过程中所展开界面的截图到测试设备的临时文件夹;第二上传模块,用于在测试脚本文件执行完毕后,打包临时文件夹中的截图。
进一步地,在本申请的上述装置中,所述判断模块还包括以下的子模块:解包模块,用于解包上传到测试服务器的截图,并与测试服务器内的基线图片配对;筛选模块,用于匹配截图与基线图片,并筛选出与基线图片之间相似程度低于预设阈值的截图。
再进一步地,在本申请的上述装置中,截图和基线图片是通过文件名称进行配对。
最后,本申请还提出一种计算机可读存储介质,其上存储有计算机指令。上述指令被处理器执行时,执行如下步骤:
S100)保存记录待测试应用程序的自动点击界面路径的测试脚本文件,及相应界面正常展开时的基线图片到测试服务器的指定位置;
S200)通过调试桥连接配置测试设备和测试服务器,使得测试设备从测试服务器下载待测试的应用程序及测试脚本文件;
S300)安装应用程序到测试设备,以自动执行测试脚本文件及截图执行过程中展开的界面;
S400)上传截图至测试服务器,以根据截图确定待测试的应用程序是否正确。
进一步地,在本申请的上述指令被处理器执行的过程中,所述步骤S100还包括以下子步骤:
S101)在测试设备上通过NGUI点击应用程序的界面以记录自动点击界面路径,并截取相应界面正常展示的基线图片;
S102)根据记录的自动点击界面路径形成测试脚本文件,并配对对应的基线图片;
S103)从测试设备上传测试脚本文件和对应的基线图片到测试服务器的指定位置。
进一步地,在本申请的上述指令被处理器执行的过程中,界面路径是通过注入到应用程序进程的、基于钩子的动态链接库自动记录。
可替代地,在本申请的上述指令被处理器执行的过程中,所述步骤S200还包括以下的子步骤:
S201)根据待测试应用程序的下载信息,配置形成调试桥批处理脚本;
S202)执行所述调试桥批处理脚本以批量下载待测试的应用程序及测试脚本文件到多个测试设备。
其中,所述下载信息至少包括测试服务器的指定地址,以及待测试的应用程序和测试脚本文件的文件名。
进一步地,在本申请的上述指令被处理器执行的过程中,所述下载信息还包括测试时间,在执行所述调试桥批处理脚本时,待测试的应用程序和测试脚本文件在指定的所述测试时间下载到测试设备以开始安装并测试应用程序。
可替代地,在本申请的上述指令被处理器执行的过程中,所述步骤S300还包括以下的子步骤:
S301)安装应用程序到测试设备,并启动所述应用程序;
S302)执行所述测试脚本文件,并保存执行过程中所展开界面的截图到测试设备的临时文件夹;
S303)在测试脚本文件执行完毕后,打包临时文件夹中的截图。
进一步地,在本申请的上述指令被处理器执行的过程中,所述步骤S400还包括以下的子步骤:
S401)解包上传到测试服务器的截图,并与测试服务器内的基线图片配对;
S402)匹配截图与基线图片,并筛选出与基线图片之间相似程度低于预设阈值的截图。
再进一步地,在本申请的上述指令被处理器执行的过程中,截图和基线图片是通过文件名称进行配对。
本申请的有益效果为:通过调试桥自动将应用程序下载到指定的测试设备,安装并执行测试,从而明显节省了应用程序的兼容性测试成本。
附图说明
图1所示为本申请所公开的基于调试桥的自动化界面兼容性测试方法的方法流程图;
图2所示为图1所示方法的应用场景示意图;
图3所示为在本申请的一个实施例中,保存记测试脚本文件及基线图片的子方法流程图;
图4所示为在本申请的另一个实施例中,调试桥连接配置测试设备和测试服务器的子方法流程图;
图5所示为在本申请的另一个实施例中,自动执行测试脚本文件的子方法流程图;
图6所示为在本申请的又一个实施例中,判断应用程序兼容性的子方法流程图;
图7所示为本申请所公开的基于调试桥的自动化界面兼容性测试装置的模块结构图。
具体实施方式
以下将结合实施例和附图对本申请的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本申请的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本申请中所使用的上、下、左、右等描述仅仅是相对于附图中本申请各组成部分的相互位置关系来说的。在本申请和所附权利要求书中所使用的单数形式的“一种”、“该”和“所述”也旨在包括多数形式,除非上下文清楚地表示其他含义。
此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本申请中可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本申请范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
参照图1所示的方法流程图,本申请所公开的基于调试桥的自动化界面兼容性测试方法适用于运行在安卓系统上的应用程序。该方法包括以下步骤:
S100)保存记录待测试应用程序的自动点击界面路径的测试脚本文件,及相应界面正常展开时的基线图片到测试服务器的指定位置;
S200)通过调试桥连接配置测试设备和测试服务器,使得测试设备从测试服务器下载待测试的应用程序及测试脚本文件;
S300)安装应用程序到测试设备,以自动执行测试脚本文件及截图执行过程中展开的界面;
S400)上传截图至测试服务器,以根据截图确定待测试的应用程序是否正确。
其中,调试桥(Android Debug Bridge,简称ADB)是用于安卓系统上的调试工具,可以用于控制在安卓平台上所运行应用程序的下载、安装、打开及测试等动作。上述动作可以通过预设的脚本文件指定。在应用程序的界面兼容性测试过程中,由于各个界面的点击操作可以通过调试桥以测试脚本的方式指定并执行;同时,界面是否正常显示也可以通过截屏的方式显示。因此,为使得测试能够覆盖应用程序的所有界面,可以由调试桥执行预设的一个或多个测试脚本操作应用程序,并在执行指定的操作步骤后对屏幕进行截图,根据对比测试过程中的截图及基线图片,即可判断当前版本的应用程序在某测试设备上是否存在兼容性问题。
具体地,参图2所示的网络结构示意图,由于测试脚本可以批量地在多台测试设备上自动执行,因此可以通过云平台将多台测试设备和测试服务器(或测试服务器群组)连接起来。本领域技术人员可以根据实际情况定期更新测试服务器或测试服务器群组内的应用程序、测试脚本文件和基线图片等文件,以批量地通过调试桥分发到多台测试设备上同时进行兼容性测试,并对测试设备返回的截图统一进行对比。此外,本领域技术人员应理解到,附图中的显示元件的数量和形状仅作为示例性的参考,不作为对本发明的限制。
参照图3所示的子方法流程图,在本申请的上述一个或多个实施例中,所述步骤S100还包括以下子步骤:
S101)在测试设备上通过NGUI点击应用程序的界面以记录自动点击界面路径,并截取相应界面正常展示的基线图片;
S102)根据记录的自动点击界面路径形成测试脚本文件,并配对对应的基线图片;
S103)从测试设备上传测试脚本文件和对应的基线图片到测试服务器的指定位置。
再次返回到图2,在上述的一个或多个实施例中,测试人员可以先在多台测试设备的至少一部分上操作应用程序,并在关键的界面路径上截屏。通过NGUI的点击动态,测试人员的操作将自动生成相应的测试脚本文件。同时截屏所得的图片也将作为基线图片,作为应用程序日后版本迭代时执行回归测试的基线图片。点击操作所自动形成的测试脚本文件将和基线图片进行配对,然后从测试设备上传到测试服务器(群组)的指定位置。进一步地,该指定位置可以根据上传上述文件的具体测试设备进行划分,使得日后的回归测试可以针对不同硬件参数的测试设备,使用相应指定位置内的基线图片进行匹配,以提高兼容性判断的准确率。例如,该指定位置可以是测试设备名和界面路径的组合,以指示基线图片是由那台测试设备在执行那份测试脚本文件时所截取的。
进一步地,在本申请的上述一个或多个实施例中,界面路径是通过注入到应用程序进程的、基于钩子的动态链接库自动记录。一方面,该动态链接库利用钩子(hook)技术在应用程序运行时,注入到应用程序的进程内,以记录测试人员的点击操作及生成相应的测试脚本文件;另一方面,由于该动态链接库是待测试应用程序的外部库,因此应用程序无需就此修改其自身的代码,降低了测试程序和应用程序的耦合程度。
参照图4所示的子方法流程图,在本申请的上述一个或多个实施例中,所述步骤S200还包括以下的子步骤:
S201)根据待测试应用程序的下载信息,配置形成调试桥批处理脚本;
S202)执行所述调试桥批处理脚本以批量下载待测试的应用程序及测试脚本文件到多个测试设备。
其中,所述下载信息至少包括测试服务器的指定地址,以及待测试的应用程序和测试脚本文件的文件名。参照图2所示的网络结构示意图,多台测试设备通过USB或者WiFi,经由云网络连接的测试服务器。调试桥批处理脚本可以根据上述下载信息,统一地将存放在测试服务器(群组)上指定地址内的应用程序安装文件及测试脚本文件分发到多台测试设备上。
进一步地,在本申请的上述一个或多个实施例中,所述下载信息还包括测试时间,在执行所述调试桥批处理脚本时,待测试的应用程序和测试脚本文件在指定的所述测试时间下载到测试设备以开始安装并测试应用程序。具体地,参照图2所示的网络结构图,调试桥批处理脚本可以根据预设的测试周期开始时间(例如每天早上10点),从测试服务器(群组)的指定位置通过云平台分发待测试应用程序最新版本的安装文件到多台测试设备,在安装应用程序完毕后执行测试脚本文件,从而实现自动化的版本迭代测试。
由于多台测试设备在测试完毕后需要上传执行测试脚本文件的过程中所截取的图片,因此为了避免单台测试设备长期占用带宽上传图片,参照图5所示的子方法流程图,在本申请的上述一个或多个实施例中,所述步骤S300还包括以下的子步骤:
S301)安装应用程序到测试设备,并启动所述应用程序;
S302)执行所述测试脚本文件,并保存执行过程中所展开界面的截图到测试设备的临时文件夹;
S303)在测试脚本文件执行完毕后,打包临时文件夹中的截图。
此时,各台测试设备将在执行完成测试文件中的所有操作之后,分别打包临时文件夹内的图片,以集中批量地上传测试结果。类似地,该临时文件夹的名称也可以是测试设备名和界面路径的组合,以指示基线图片是由那台测试设备在执行那份测试脚本文件时所截取的。或者进一步地,在本申请的上述一个或多个实施例中,由于截图和基线图片的存储路径都是测试设备名和界面路径的组合,因此可以直接通过截图和基线图片的文件名或者地址名进行配对,以加快兼容性测试的执行。
参照图6所示的子方法流程图,在本申请的一个或多个实施例中,所述步骤S400还包括以下的子步骤:
S401)解包上传到测试服务器的截图,并与测试服务器内的基线图片配对;
S402)匹配截图与基线图片,并筛选出与基线图片之间相似程度低于预设阈值的截图。其中,截图与基线图片的之间的相似度计算可以采用现有的图像处理算法实现,例如采用对应像素点之间像素值的平均绝对差值及平均误差平方和等来衡量两者之间的相似度。测试人员也可以相应地根据具体相似度计算方式设置阈值,使得当截图和基线图片之间的相似度大于该阈值时,相关的图片被筛查出来。或者,进一步地,测试服务器将自动计算测试设备上传的截图与基线图片之间相似度,并形成测试报告,以指出具体哪台测试设备在执行哪份测试脚本文件时所截取的图片与基线图片之间存在明显差异。开发人员可以根据上述测试报告方便地定位存在兼容性问题的测试设备及界面路径。
参照图7所示模块结构图,本申请所公开的基于调试桥的自动化界面兼容性测试装置适用于运行在安卓系统上的应用程序。该装置包括以下模块:保存模块,用于保存记录待测试应用程序的自动点击界面路径的测试脚本文件,及相应界面正常展开时的基线图片到测试服务器的指定位置;下载模块,用于通过调试桥连接配置测试设备和测试服务器,使得测试设备从测试服务器下载待测试的应用程序及测试脚本文件;安装模块,用于安装应用程序到测试设备,以自动执行测试脚本文件及截图执行过程中展开的界面;判断模块,用于上传截图至测试服务器,以根据截图确定待测试的应用程序是否正确。其中,调试桥(Android DebugBridge,简称ADB)是用于安卓系统上的调试工具,可以用于控制在安卓平台上所运行应用程序的下载、安装、打开及测试等动作。上述动作可以通过预设的脚本文件指定。在应用程序的界面兼容性测试过程中,由于各个界面的点击操作可以通过调试桥以测试脚本的方式指定并执行;同时,界面是否正常显示也可以通过截屏的方式显示。因此,为使得测试能够覆盖应用程序的所有界面,可以由调试桥执行预设的一个或多个测试脚本操作应用程序,并在执行指定的操作步骤后对屏幕进行截图,根据对比测试过程中的截图及基线图片,即可判断当前版本的应用程序在某测试设备上是否存在兼容性问题。
具体地,参图2所示的网络结构示意图,由于测试脚本可以批量地在多台测试设备上自动执行,因此可以通过云平台将多台测试设备和测试服务器(或测试服务器群组)连接起来。本领域技术人员可以根据实际情况定期更新测试服务器或测试服务器群组内的应用程序、测试脚本文件和基线图片等文件,以批量地通过调试桥分发到多台测试设备上同时进行兼容性测试,并对测试设备返回的截图统一进行对比。此外,本领域技术人员应理解到,附图中的显示元件的数量和形状仅作为示例性的参考,不作为对本发明的限制。
在本申请的上述一个或多个实施例中,所述保存模块还包括以下子模块:记录模块,用于在测试设备上通过NGUI点击应用程序的界面以记录自动点击界面路径,并截取相应界面正常展示的基线图片;第一配对模块,用于根据记录的自动点击界面路径形成测试脚本文件,并配对对应的基线图片;第一上传模块,用于从测试设备上传测试脚本文件和对应的基线图片到测试服务器的指定位置。再次返回到图2,在上述的一个或多个实施例中,测试人员可以先在多台测试设备的至少一部分上操作应用程序,并在关键的界面路径上截屏。通过NGUI的点击动态,测试人员的操作将自动生成相应的测试脚本文件。同时截屏所得的图片也将作为基线图片,作为应用程序日后版本迭代时执行回归测试的基线图片。点击操作所自动形成的测试脚本文件将和基线图片进行配对,然后从测试设备上传到测试服务器(群组)的指定位置。进一步地,该指定位置可以根据上传上述文件的具体测试设备进行划分,使得日后的回归测试可以针对不同硬件参数的测试设备,使用相应指定位置内的基线图片进行匹配,以提高兼容性判断的准确率。例如,该指定位置可以是测试设备名和界面路径的组合,以指示基线图片是由那台测试设备在执行那份测试脚本文件时所截取的。
进一步地,在本申请的上述一个或多个实施例中,界面路径是通过注入到应用程序进程的、基于钩子的动态链接库自动记录。一方面,该动态链接库利用钩子(hook)技术在应用程序运行时,注入到应用程序的进程内,以记录测试人员的点击操作及生成相应的测试脚本文件;另一方面,由于该动态链接库是待测试应用程序的外部库,因此应用程序无需就此修改其自身的代码,降低了测试程序和应用程序的耦合程度。
在本申请的上述一个或多个实施例中,所述下载模块还包括以下的子模块:配置模块,用于根据待测试应用程序的下载信息,配置形成调试桥批处理脚本;第一执行模块,用于执行所述调试桥批处理脚本以批量下载待测试的应用程序及测试脚本文件到多个测试设备。其中,所述下载信息至少包括测试服务器的指定地址,以及待测试的应用程序和测试脚本文件的文件名。参照图2所示的网络结构示意图,多台测试设备通过USB或者WiFi,经由云网络连接的测试服务器。调试桥批处理脚本可以根据上述下载信息,统一地将存放在测试服务器(群组)上指定地址内的应用程序安装文件及测试脚本文件分发到多台测试设备上。
进一步地,在本申请的上述一个或多个实施例中,所述下载信息还包括测试时间,在执行所述调试桥批处理脚本时,待测试的应用程序和测试脚本文件在指定的所述测试时间下载到测试设备以开始安装并测试应用程序。具体地,参照图2所示的网络结构图,调试桥批处理脚本可以根据预设的测试周期开始时间(例如每天早上10点),从测试服务器(群组)的指定位置通过云平台分发待测试应用程序最新版本的安装文件到多台测试设备,在安装应用程序完毕后执行测试脚本文件,从而实现自动化的版本迭代测试。
由于多台测试设备在测试完毕后需要上传执行测试脚本文件的过程中所截取的图片,因此为了避免单台测试设备长期占用带宽上传图片,在本申请的上述一个或多个实施例中,所述安装模块还包括以下的子模块:启动模块,用于安装应用程序到测试设备,并启动所述应用程序;第二执行模块,用于执行所述测试脚本文件,并保存执行过程中所展开界面的截图到测试设备的临时文件夹;第二上传模块,用于在测试脚本文件执行完毕后,打包临时文件夹中的截图。此时,各台测试设备将在执行完成测试文件中的所有操作之后,分别打包临时文件夹内的图片,以集中批量地上传测试结果。类似地,该临时文件夹的名称也可以是测试设备名和界面路径的组合,以指示基线图片是由那台测试设备在执行那份测试脚本文件时所截取的。或者进一步地,在本申请的上述一个或多个实施例中,由于截图和基线图片的存储路径都是测试设备名和界面路径的组合,因此可以直接通过截图和基线图片的文件名或者地址名进行配对,以加快兼容性测试的执行。
在本申请的一个或多个实施例中,所述判断模块还包括以下的子模块:解包模块,用于解包上传到测试服务器的截图,并与测试服务器内的基线图片配对;筛选模块,用于匹配截图与基线图片,并筛选出与基线图片之间相似程度低于预设阈值的截图。其中,截图与基线图片的之间的相似度计算可以采用现有的图像处理算法实现,例如采用对应像素点之间像素值的平均绝对差值及平均误差平方和等来衡量两者之间的相似度。测试人员也可以相应地根据具体相似度计算方式设置阈值,使得当截图和基线图片之间的相似度大于该阈值时,相关的图片被筛查出来。或者,进一步地,测试服务器将自动计算测试设备上传的截图与基线图片之间相似度,并形成测试报告,以指出具体哪台测试设备在执行哪份测试脚本文件时所截取的图片与基线图片之间存在明显差异。开发人员可以根据上述测试报告方便地定位存在兼容性问题的测试设备及界面路径。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。