一种移动终端组件的测试方法
【技术领域】
[0001]本发明涉及移动终端技术领域,尤其涉及一种移动终端组件的测试方法。
【背景技术】
[0002]现有技术中,对于移动终端的自动化测试通常是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等操作,用于检测设备正常工作的持续时间。由于在应用模拟器或设备运行自动化测试程序时,可产生随机脉冲以触发测试软件,因此通常会采用自动化测试程序模拟触发用户操作,例如触发:点击,触摸,手势等操作或者一些系统级别的触发事件。
[0003]现有的针对移动终端的自动化测试普遍使用软件模拟人工动作触发按键事件,通过纯软件模拟的手段来对移动终端进行自动化测试。每当移动终端的测试环境出现变化,都需要测试人员重新录制测试用例,且需要测试人员进行重复性的软件测试,并记录测试问题。因此现有的自动化测试方法需要消耗大量的人力资源,测试时间长,成本高。
【发明内容】
[0004]针对现有的移动终端的自动化测试方法存在的上述问题,现提供一种旨在实现可自动对移动终端中的组件进行持续稳定测试的移动终端组件的测试方法。
[0005]具体技术方案如下:
[0006]一种移动终端组件的测试方法,采用一控制端根据预设的测试路径控制一机械臂对移动终端中的功能组件进行测试,每一所述功能组件对应一条所述测试路径,所述控制端与所述移动终端连接;
[0007]所述测试方法包括下述步骤:
[0008]S1.所述控制端获取所述移动终端当前的操作界面的所有所述功能组件,并根据一个未经过测试的所述功能组件选择相应的所述测试路径,控制所述机械臂对所述功能组件进行测试操作,以跳转至下一操作界面;
[0009]S2.所述控制端判断所述下一操作界面中是否包括与所述测试路径对应的所述功能组件;
[0010]若是,则继续控制所述机械臂对相应的所述功能组件进行所述测试操作,以跳转至下一操作界面,随后返回所述步骤S2 ;
[0011]在所述步骤S2中,若所述机械臂对所述功能组件进行所述测试操作后,所述移动终端未跳转至所述下一操作界面,则判断对当前的所述测试路径测试完成,并返回上一操作界面,同时返回所述步骤SI ;
[0012]当所述控制端对所述移动终端中的所有所述操作界面中的所有所述功能组件均遍历操作完成后,完成整个测试过程。
[0013]优选的,所述控制端依据相应的组件编号识别相应的所述功能组件,每一所述功能组件对应一所述组件编号。
[0014]优选的,对经过测试操作的所述操作界面和/或所述功能组件进行标记,并根据所述标记判断相应的所述操作界面和/或所述功能组件已经经过测试操作。
[0015]优选的,每条测试路径测试完成后,返回所述上一操作界面,获取所述上一操作界面中的所有所述功能组件,对比所有的所述功能组件是否与上一次访问所述上一操作界面中的所述功能组件一致,获取对比结果;
[0016]若根据所述对比结果判断所述移动终端返回的所述上一操作界面与上一次访问的所述上一操作界面不一致,则表示对相应的所述测试路径测试失败;
[0017]若根据所述对比结果判断所述移动终端返回的所述上一操作界面与上一次访问的所述上一操作界面一致,则表示对相应的所述测试路径测试成功。
[0018]优选的,所述控制端向所述移动终端下发ADB指令,以实现与所述移动终端之间的数据通信。
[0019]优选的,所述控制端采用UART协议下发指令,以控制所述机械臂进行测试操作。
[0020]优选的,采用一服务器用以存储关联于所述移动终端的系统软件版本;
[0021]所述控制端与所述服务器远程连接;
[0022]所述控制端侦听所述服务器中存储的所述系统软件版本是否已经经过测试,下载并存储尚未经过测试的所述系统软件版本,以将所述系统软件版本推送至所述移动终端进行安装;
[0023]所述控制端在已经安装所述系统软件版本的所述移动终端上,依照预设的所述测试路径执行相应的所述测试操作。
[0024]优选的,所述控制端采用FTP协议与所述服务器进行通信。
[0025]优选的,于所述机械臂中设置一操作单元,用以模拟人工动作对所述移动终端执行点击操作;
[0026]于所述机械臂中设置一第一控制单元,用以控制所述操作单元进行相对于所述操作界面的X方向的移动;
[0027]于所述机械臂中设置一第二控制单元,用以控制所述操作单元进行相对于所述操作界面的Y方向的移动。
[0028]优选的,在所述步骤S2中,若所述操作界面中不包括与所述测试路径对应的所述功能组件,则返回所述上一操作界面,以根据所述上一操作界面中包括的尚未经过测试的所述功能组件选择下一条尚未经过测试的所述测试路径进行测试,并返回所述步骤SI。
[0029]优选的,所述控制端获取所述移动终端发送的关联于所述测试路径的测试反馈结果并存储。
[0030]优选的,将多条所述测试路径集成于一测试项目中;
[0031]所述步骤SI中,所述控制端选择一个相应的所述测试项目,并依据被选择的所述测试项目中包括的所述测试路径对所述移动终端进行测试。
[0032]上述技术方案的有益效果:
[0033]在本技术方案中,采用移动终端组件的测试方法可自行对测试移动终端中的功能组件进行持续稳定的测试,达到了节省人力资源的效果,同时可模拟用户在使用时可能发生的问题,提升自动化测试的测试效率。
【附图说明】
[0034]图1为本发明所述移动终端组件的测试方法的一种实施例的方法流程图;
[0035]图2为一种基于移动终端组件的测试方法的测试系统的一种实施例的模块图;
[0036]图3为本发明所述机械臂的结构图;
[0037]图4为本发明所述拓扑遍历算法示意图。
【具体实施方式】
[0038]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0040]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0041]现有技术中,对于移动终端的自动化测试非常复杂,例如,现有的查看移动终端的“内部版本信息”的测试步骤过程通常为:
[0042]步骤1.打开PC端上的脚本录制软件,获取移动终端界面:
[0043]步骤2.鼠标点击“拨号”,记录“拨号”中心点在移动终端界面上的X、Y坐标,并进行截图以保存当前界面图片;
[0044]步骤3.进入拨号界面,鼠标顺序点击“*”,“#”,“2”,“0”,“1”,“1”,“#”,并分别记录各位置中心点在移动终端3界面上的X,Y坐标,同时进行截图以保存当前界面图片;
[0045]步骤4.进入“内部版本信息”界面,进行截图并保存当前界面图片;
[0046]步骤5.将记录的X,Y坐标点顺序导入文本文件保存;
[0047]步骤6.打开测试装置运行界面控制软件,导入X,Y坐标文本文件,点击运行;
[0048]步骤7.测试装置根据之前录制的脚本文件运行,并截图与之前保存的界面图片进行对比,若相似度达到90%以上则测试成功,进行下一步测试动作;若相似度未达到90%以上,则测试失败,测试装置停止运行,并记录测试结果。
[0
049]如上文中所述,现有的移动终端3测试方法需要在测试之前进行脚本录制,通过比较截图相似度的方式获取测试结果,测试时间长且脚本的通用性差。
[0050]基于现有技术中存在的上述问题,本发明提供一种移动终端组件的测试方法,旨在实现简化测试之前的脚本录制工作,加快测试过程及结果输出,并增加脚本的通用性。[0051 ] 如图1和图2所示,一种移动终端组件的测试方法,采用一控制端2根据预设的测试路径控制一机械臂4对移动终端3中的功能组件进行测试,每一功能组件对应一条测试路径,控制端2与移动终端3连接;
[0052]测试方法包括下述步骤:
[0053]S1.控制端2获取移动终端3当前的操作界面的所有功能组件,并根据一个未经过测试的功能组件选择相应的测试路径,控制机械臂4对功能组件进行测试操作,以跳转至下一操作界面;
[0054]S2.控制端2判断下一操作界面中是否包括与测试路径对应的功能组件;
[0055]若是,则继续控制机械臂4对相应的功能组件进行测试操作,以跳转至下一操作界面,随后返回步骤S2 ;
[0056]在步骤S2中,若机械臂4对功能组件进行测试操作后,移动终端3未跳转至下一操作界面,则判断对当前的测试路径测试完成,并返回上一操作界面,同时返回步骤SI ;
[0057]当控制端2对移动终端3中的所有操作界面中的所有功能组件均遍历操作完成后,完成整个测试过程。
[0058]具体地,以调用“内部版本信息”功能组件为例,控制端2根据“内部版本信息”功能组件对应的测试路径,在当前移动终端3界面中查找到相应的功能组件,通过机械臂4进行点击操作进入拨号界面;机械臂4每执行一步点击动作后,控制端2都会比对当前操作界面的所有功能组件或字符是否属于上一次访问该操作界面中的功能组件相匹配,获取相应的匹配结果,并对相应匹配结果进行保存。
[0059]在本实施例中,采用移动终端组件的测试方法简化了测试之前的脚本录制工作,加快测试过程结果输出,而且增加了脚本的通用性。本方法可自行对测试移动终端3中的功能组件进行测试,并自行记录相应的测试结果,可持续稳定的对功能组件进行测试,达到了节省人力资源的效果,同时可模拟用户在使用时可能发生的问题,提升自动化测试的测试效率。
[0060]在优选的实施例中,控制端2依据相应的组件编号识别相应的功能组件,每一功能组件对应一组件编号。
[0061 ] 在本实施例中,控制端2通过组件编号识别相应的功能组件,以控制机械臂4根据相应的组件编号对相应的功能组件进行测试操作。
[0062]在优选的实施例中,对经过测试操作的操作界面和/或功能组件进行标记,并根据标记判断相应的操作界面和/或功能组件已经经过测试操作。
[0063]在本实施例中,通过对经过测试操作过的操作界面进行标记可快速对测试路径进行测试;通过对经过测试操作过的功能组件进行标记可快速的对功能组件进行测试,且方便查找功能组件。
[0064]在优选的实施例中,每条测试路径测试完成后,返回上一操作界面,获取上一操作界面中的所有功能组件,对比所有的功能组件是否与上一次访问上一操作界面中的功能组件一致,获取对比结果;
[0065]若根据对比结果判断移动终端3返回的上一操作界面与上一次访问的上一操作界面不一致,则表示对相应的测试路径测试失败;
[0066]若根据对比结果判断移动终端3返回的上一操作界面与上一次访问的上一操作界面一致,则表示对相应的测试路径测试成功。
[0067]在本实施例中,以拓扑遍历算法为例,对移动终端3中的功能组件进行测试的具体过程如下:
[0068]控制端2上的测试程序通过捉取移动终端3当前界面中的各个功能组件以及相应的组件编号,以选取当前组件编号中最小的组件编号对应的功能组件(作为本次测试开始的功能组件),通过控制机械臂4点击进入,进行测试操作,以跳转到下一操作界面,获取当前页面中最小的组件编号对应的功能组件,以进行测试操作,直到当前界面只有唯一的一个功能组件,然后根据当前功能组件获取与功能组件关联的测试功能,采用机械臂4进行模拟测试,测试完成后退回上一操作界面,比对当前的所有功能组件与之前进入此操作界面时的功能组件是否一致,若一致,则表示当前功能组件测试成功,记录测试结果;若不一致,则表示测试失败,记录测试失败的功能组件,并进入下一个功能组件的功能测试。
[0069]在优选的实施例中,控制端2向移动终端3下发ADB (Android Debug Bridge,是管理Android模拟器或者设备的一个调试工具)指令,以实现与移动终端3之间的数据通信。
[0070]在优选的实施例中,控制端2 米用 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)协议下发指令,以控制机械臂4进行测试操作。
[0071]UART传输协议是一种异步收发传输协议,可将数据由串行通信与并行通信间作传输转换,可作为将并行输入转换为串行输出的传输协议。
[0072]在优选的实施例中,采用一服务器I用以存储关联于移动终端3的系统软件版本;
[0073]控制端2与服务器I远程连接;
[0074]控制端2侦听服务器I中存储的系统软件版本是否已经经过测试,下载并存储尚未经过测试的系统软件版本,以将系统软件版本推送至移动终端3进行安装;
[0075]控制端2在已经安装系统软件版本的移动终端3上,依照预设的测试路径执行相应的测试操作。
[0076]在本实施例中,控制端2不断侦听远端服务器I上是否有未经过测试操作的系统软件版本(新版本软件),当存在新版本软件时,将新版本软件下载至控制端2指定的存储单元中(图中未示出),利用ADB指令将最新版本软件推送到移动终端3中进行安装,控制端2运行相应的测试程序,通过UART协议控制机械臂4执行拓扑遍历算法对移动终端3上的每一个功能组件进行测试与记录,从而达到自动查询并测试的新版本软件的目的。
[0077]在优选的实施例中,控制端2采用FTP协议与服务器I进行通信。
[0078]在本实施例中,控制端2通过FTP协议不断侦听服务器I上是否有未经过测试操作的系统软件版本(新版本软件),以达到自动查询并测试的新版本软件的目的。
[0079]在优选的实施例中,于机械臂4中设置一操作单元,用以模拟人工动作对移动终端3执行点击操作;
[0080]于机械臂4中设置一第一控制单元,用以控制操作单元进行相对于操作界面的X方向的移动;
[0081]于机械臂4中设置一第二控制单元,用以控制操作单元进行相对于操作界面的Y方向的移动。
[0082]在本实施例中,第一控制单元为第一线性模组41,第二控制单元为第二线性模组42,操作单元为气缸43,如图3所示,机械臂4包括第一线性模组41、第二线性模组42、气缸43、测试区域44和急停开关45。在测试时,将移动终端3放置于测试区域44 ;第一线性模组41搭载气缸43进行X方向的移动;第二线性模组42搭载气缸43进行Y方向的移动;气缸43可模拟人工在移动终端3的当前界面执行点击动作,以进行相应的测试操作;急停开关45可在紧急情况下对机械臂4进行断电操作。
[0083]在优选的实施例中,在步骤S2中,若操作界面中不包括与测试路径对应的功能组件,则返回上一操作界面,以根据上一操作界面中包括的尚未经过测试的功能组件选择下一条尚未经过测试的测试路径进行测试,并返回步骤SI。
[0084]如图4所示,以查看移动终端3的“内部版本信息”为例:
[0085]“拨号”的组件编号为100 ;
[0086]“拨号界面”的组件编号为110,其它与
“拨号界面”组件在同一界面上的组件编号依次为:120,130,…,170;
[0087]“内部版本信息”的组件编号为111,其它与“内部版本信息”组件在同一界面上的组件编号依次为:111,112,…,118。
[0088]根据需要测试的“内部版本信息”功能组件获取相应的测试路径,机械臂4先点击示教好的“主页键”,完成点击动作,控制端2上的测试程序通过ADB指令捉取当前界面各功能组件对应的组件编号,若各组件编号都能与此测试版本的软件主界面组件编号匹配,则查找当前界面上是否存在组件编号为100的“拨号”功能组件;若无,则滑屏,继续查找,直到找到为止;找到100的“拨号”组件编号后,点击进入“拨号界面”组件编号为110,输入“ * ”,“ # ”,“ 2 ”,“ O ”,“ I ”,“ I ”,“ # ”,再继续判断当前组件编号是否为111,若是,则该功能组件测试通过;若不是,则该功能组件测试失败,通过机械臂4点击“返回键”退到组件编号为110的操作界面,再点击“返回键”退到组件编号为100的操作界面。继续运行下一条测试路径,查找相应组件编号,然后一层层往下运行,若该测试过程出现异常找不到该界面上本该有的组件编号,则通过机械臂4点击“返回键”退回到上层目录,以此类推。
[0089]在本实施例中,控制端2通过控制机械臂4可根据拓扑遍历算法对移动终端3当前界面上存在功能组件进行测试,直到发现当前界面中不再存在没有被测试过的功能组件,然后一层一层的往上测试,最终回到初始主界面上。采用拓扑遍历算法可快速的对功能组件进行测试,且方便查找功能组件。
[0090]在优选的实施例中,控制端2获取移动终端3发送的关联于测试路径的测试反馈结果并存储,以实现自动记录测试结果的目的,达到了释放人力资源的效果。
[0091]在优选的实施例中,可将多条测试路径集成于一测试项目中;
[0092]步骤SI中,控制端2选择一个相应的测试项目,并依据被选择的测试项目中包括的测试路径对移动终端3进行测试。
[0093]在本实施例中,测试项目可包括当前操作界面中的所有功能组件对应的测试路径,在某一功能组件进行测试时,若移动终端3当前界面中并不存在该功能组件,可通过采用机械臂滑动操作界面的方式进行查找相应的测试项目,通过查找与功能组件匹配的测试项目的方式查找相应的功能组件。
[0094]在本实施例中,根据测试项目中测试路径的顺序依次对功能组件进行测试,测试效率高且方便查找相应的功能组件及测试结果。
[0095]以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
【主权项】
1.一种移动终端组件的测试方法,其特征在于,采用一控制端根据预设的测试路径控制一机械臂对移动终端中的功能组件进行测试,每一所述功能组件对应一条所述测试路径,所述控制端与所述移动终端连接; 所述测试方法包括下述步骤: 51.所述控制端获取所述移动终端当前的操作界面的所有所述功能组件,并根据一个未经过测试的所述功能组件选择相应的所述测试路径,控制所述机械臂对所述功能组件进行测试操作,以跳转至下一操作界面; 52.所述控制端判断所述下一操作界面中是否包括与所述测试路径对应的所述功能组件; 若是,则继续控制所述机械臂对相应的所述功能组件进行所述测试操作,以跳转至下一操作界面,随后返回所述步骤S2 ; 在所述步骤S2中,若所述机械臂对所述功能组件进行所述测试操作后,所述移动终端未跳转至所述下一操作界面,则判断对当前的所述测试路径测试完成,并返回上一操作界面,同时返回所述步骤SI ; 当所述控制端对所述移动终端中的所有所述操作界面中的所有所述功能组件均遍历操作完成后,完成整个测试过程。2.如权利要求1所述的测试方法,其特征在于,所述控制端依据相应的组件编号识别相应的所述功能组件,每一所述功能组件对应一所述组件编号。3.如权利要求1所述的测试方法,其特征在于,对经过测试操作的所述操作界面和/或所述功能组件进行标记,并根据所述标记判断相应的所述操作界面和/或所述功能组件已经经过测试操作。4.如权利要求1所述的测试方法,其特征在于,每条测试路径测试完成后,返回所述上一操作界面,获取所述上一操作界面中的所有所述功能组件,对比所有的所述功能组件是否与上一次访问所述上一操作界面中的所述功能组件一致,获取对比结果; 若根据所述对比结果判断所述移动终端返回的所述上一操作界面与上一次访问的所述上一操作界面不一致,则表示对相应的所述测试路径测试失败; 若根据所述对比结果判断所述移动终端返回的所述上一操作界面与上一次访问的所述上一操作界面一致,则表示对相应的所述测试路径测试成功。5.如权利要求1所述的测试方法,其特征在于,所述控制端向所述移动终端下发ADB指令,以实现与所述移动终端之间的数据通信。6.如权利要求1所述的测试方法,其特征在于,所述控制端采用UART协议下发指令,以控制所述机械臂进行测试操作。7.如权利要求1所述的测试方法,其特征在于,采用一服务器用以存储关联于所述移动终端的系统软件版本; 所述控制端与所述服务器远程连接; 所述控制端侦听所述服务器中存储的所述系统软件版本是否已经经过测试,下载并存储尚未经过测试的所述系统软件版本,以将所述系统软件版本推送至所述移动终端进行安装; 所述控制端在已经安装所述系统软件版本的所述移动终端上,依照预设的所述测试路径执行相应的所述测试操作。8.如权利要求7所述的测试方法,其特征在于,所述控制端采用FTP协议与所述服务器进行通?目。9.如权利要求1所述的测试方法,其特征在于,于所述机械臂中设置一操作单元,用以模拟人工动作对所述移动终端执行点击操作; 于所述机械臂中设置一第一控制单元,用以控制所述操作单元进行相对于所述操作界面的X方向的移动; 于所述机械臂中设置一第二控制单元,用以控制所述操作单元进行相对于所述操作界面的Y方向的移动。10.如权利要求1所述的测试方法,其特征在于,在所述步骤S2中,若所述操作界面中不包括与所述测试路径对应的所述功能组件,则返回所述上一操作界面,以根据所述上一操作界面中包括的尚未经过测试的所述功能组件选择下一条尚未经过测试的所述测试路径进行测试,并返回所述步骤Si。11.如权利要求1所述的测试方法,其特征在于,所述控制端获取所述移动终端发送的关联于所述测试路径的测试反馈结果并存储。12.如权利要求1所述的测试方法,其特征在于,将多条所述测试路径集成于一测试项目中; 所述步骤Si中,所述控制端选择一个相应的所述测试项目,并依据被选择的所述测试项目中包括的所述测试路径对所述移动终端进行测试。
【专利摘要】本发明公开了一种移动终端组件的测试方法,包括的步骤有:S1.所述控制端获取所述移动终端当前的操作界面的所有所述功能组件,并根据一个未经过测试的所述功能组件选择相应的所述测试路径,控制所述机械臂对所述功能组件进行测试操作,以跳转至下一操作界面;S2.所述控制端判断所述下一操作界面中是否包括与所述测试路径对应的所述功能组件;若是,则继续控制所述机械臂对相应的所述功能组件进行所述测试操作,以跳转至下一操作界面,随后返回所述步骤S2。本发明可自行对测试移动终端中的功能组件进行测试,达到了节省人力资源的效果,同时可模拟用户在使用时可能发生的问题,提升自动化测试的测试效率。
【IPC分类】G06F11/36
【公开号】CN104899140
【申请号】CN201510300476
【发明人】柏琼
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年9月9日
【申请日】2015年6月3日