本发明主要涉及计算机技术领域,具体地说,涉及一种应用测试方法、装置、设备及计算机可读存储介质。
背景技术:
随着技术的发展,手机、平板电脑等移动终端的类型越来越多,不同类型的移动终端具有不同的屏幕分辨率、支持不同的系统和网络等。各移动终端因所存在的该类软硬件上的差异性,导致了同一应用软件需要在不同类型移动终端上进行兼容性测试,以确保应用软件在不同分辨率、尺寸的移动终端上,所显示的字体和样式的一致性。
目前在进行兼容性测试时,通过触发一个测试指令来对多个一栋终端进行测试。但因多个移动终端之间分辨率和尺寸之间的差异性,应用软件运行生成的同一元素位于各移动终端的不同位置,容易导致同一测试指令在不同移动终端上触发的元素不同,出现误测试的情形,测试的准确率低,而为了确保测试的正确性,需要对出现误测试的移动终端进行单独测试,如此一来,又降低了测试效率。
技术实现要素:
本发明的主要目的是提供一种应用测试方法、装置、设备及计算机可读存储介质,旨在解决现有技术中因不同移动终端之间的分辨率和尺寸之间的差异性,导致应用软件的测试容易出现误差,测试的准确率和效率低的问题。
为实现上述目的,本发明提供一种应用测试方法,所述应用测试方法包括以下步骤:
当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
优选地,所述将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试的步骤包括:
在将所述操作事件同步到所述其他待测终端中后,读取所述其他待测终端对所述操作事件进行响应所生成的响应结果,并根据所述操作坐标和所述操作事件,查找参考结果;
将所述响应结果和所述参考结果对比,生成相似度值,并判断所述相似度值是否在预设阈值范围内;
若所述相似度值在预设阈值范围内,则完成对所述其他待测终端的目标元素的测试。
优选地,所述读取所述其他待测终端对所述操作事件进行响应所生成的响应结果,并根据所述操作坐标和所述操作事件,查找参考结果的步骤包括:
读取所述其他待测终端对所述操作事件进行响应所生成的第一响应图片,并根据所述操作坐标,对所述第一响应图片进行截图,生成响应结果;
读取所述主控终端对所述操作事件进行响应所生成的第二响应图片,并根据所述操作坐标,对所述第二响应图片进行截图,生成参考结果;
所述将所述响应结果和所述参考结果对比,生成相似度值的步骤包括:
调用预设工具,在所述响应结果和所述参考结果之间分别进行颜色和尺寸的对比,生成颜色相似度值和尺寸相似度值;
对所述颜色相似度值和所述尺寸相似度值进行均值处理,生成所述相似度值。
优选地,所述读取所述其他待测终端对所述操作事件进行响应所生成的响应结果的步骤之前包括:
判断在预设延时时长内是否侦测到所述响应结果,若侦测到所述响应结果,则执行读取所述其他待测终端对所述操作事件进行响应所生成的响应结果的步骤;
若未侦测到所述响应结果,则向所述主控终端发送反馈信息,以供所述主控终端基于所述反馈信息发起操作指令。
优选地,所述判断其他待测终端中是否存在所述目标元素的步骤包括:
读取所述目标元素的标识信息,并判断其他待测终端中是否存在具有所述标识信息的界面元素;
若存在具有所述标识信息的界面元素,则读取所述界面元素的第一元素信息,其中所述第一元素信息包括所述界面元素的父元素、兄弟元素和子元素的元素信息;
判断所述目标元素的第二元素信息和所述第一元素信息是否一致,其中所述第二元素信息包括所述目标元素的父元素、兄弟元素和子元素的元素信息;
若所述第二元素信息和所述第一元素信息一致,则判定所述其他待测终端中存在所述目标元素。
优选地,所述当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端的步骤包括:
接收多台待测终端发送的所述待测应用的应用界面,并将所述应用界面显示在显示界面中;
当侦测到基于任意一项所述应用界面发送的操作指令时,读取所述操作指令中的界面标识,并根据所述界面标识确定目标应用界面;
将与所述目标应用界面对应的待测终端确定为主控终端,并将多台所述待测终端中除所述主控终端外的剩余待测终端确定为其他待测终端。
优选地,所述根据所述操作坐标和所述操作事件,确定所述主控终端中与所述操作指令对应的目标元素的步骤包括:
读取所述主控终端的显示尺寸以及所述显示界面的界面尺寸,并在所述显示坐标和所述界面尺寸之间做比值,生成比例系数;
根据所述比例系数,对所述操作坐标进行转换,生成主控像素坐标;
查找与所述主控像素坐标对应位置的位置元素,并读取与所述操作事件对应的第一属性信息;
根据所述位置元素的第二属性信息和所述第一属性信息的一致性,确定所述主控终端中与所述操作指令对应的目标元素。
此外,为实现上述目的,本发明还提出一种应用测试装置,所述应用测试装置包括:
记录模块,用于当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
确定模块,用于根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
测试模块,用于若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
此外,为实现上述目的,本发明还提出一种应用测试设备,所述应用测试设备包括:存储器、处理器、通信总线以及存储在所述存储器上的应用测试程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述应用测试程序,以实现以下步骤:
当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
本实施例的应用测试方法,当侦测到基于待测应用发送的操作指令时,先确定发送该操作指令的主控终端,并记录操作指令所对应的操作坐标和操作事件;再依据该操作坐标和操作事件,从待测应用在主控终端中运行所生成的各项元素中,确定操作指令所针对的目标元素,并判断安装该待测应用的其他待测终端中是否也存在该目标元素;若存在该目标元素,则将操作事件同步到其他待测终端中,以通过操作事件对其他待测终端的目标元素进行测试。本方案通过确定目标元素来对不同待测终端进行测试,确保了不同待测终端间测试的一致性;避免了因不同待测终端间分辨率和尺寸的差异,导致触发不同元素进行测试,而出现误测试的情形;同时避免了对误测试移动终端的单独测试,提高了测试的准确率和测试效率。
附图说明
图1是本发明的应用测试方法第一实施例的流程示意图;
图2是本发明的应用测试装置第一实施例的功能模块示意图;
图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种应用测试方法。
请参照图1,图1为本发明应用测试方法第一实施例的流程示意图。在本实施例中,所述应用测试方法包括:
步骤s10,当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
本发明应用测试方法应用于测试终端,适用于通过测试终端对各移动终端上所安装的应用软件进行自动化测试,其中测试终端可以是平板电脑、笔记本电脑、台式电脑等具有显示装置的设备,移动终端则是安装有需要测试的应用软件的手机、平板电脑等。本实施例优选以通过电脑对手机进行测试为例进行说明,即测试终端为电脑,移动终端为手机。将所需要测试的应用软件作为待测应用,而将安装有待测应用的移动终端作为待测终端。待测终端和测试终端之间通过usb(universalserialbus,通用串行总线)连接线、wifi(wirelessfidelity,无线网)网络或者蓝牙等方式进行通信连接。
进一步地,测试终端在检测到和各待测终端建立连接后,将其中预先设置的用于测试的软件包下发到各个待测终端进行安装。软件包包括minitouch和mincap,minitouch用于记录点击、输入等操作事件以及操作所针对位置的坐标值,minicap用于将待测终端的显示内容投影到测试终端的显示装置上。在软件包安装完成之后,启动需要测试的待测应用软件,将应用软件所显示的应用界面通过minicap投影到测试终端上显示。
更进一步地,在测试的过程中,测试人员从各待测终端中任意选择一台待测终端,对其所安装待测应用的应用界面进行操作;该操通过通信通道同步到测试终端,对测试终端的显示装置中所同步显示的应用界面进行操作。测试终端将该经同步的操作作为操作指令进行侦测,并依据发送操作指令的通信通道来确定操作指令所来源的待测终端。尽管测试终端和各待测终端之间可以通过多种方式进行通信连接,但无论以何种方式通信连接,均需对各待测终端进行区分,且可通过设定不同的通信通道号进行区分。测试终端在侦测到操作指令后,依据该操作指令所来源的通信通道号,即可确定发送该操作指令的待测终端;将该发送操作指令的待测终端确定为主控终端,以依据其发送各种测试指令进行测试。
可理解地,因测试终端的显示装置对待测应用的应用界面进行同步显示,使得测试人员针对应用界面的操作也会同步到显示装置中显示。检测操作在显示装置中所针对的位置坐标,并记录为与操作指令对应的操作坐标,以体现操作指令在测试终端的显示装置的操作位置,进而依据操作位置所具有的界面元素来确定操作所针对的操作对象。同时对操作的类型进行检测,确定用户在应用界面所进行的是单击、双击、长按还是输入等操作,并将检测结果记录为操作事件,以结合操作对象来对各待测终端中除主控终端之外的其他待测终端进行测试,查找到其他待测终端的操作对象,并向其下发操作事件,通过其他待测终端中操作对象对操作事件的响应情况来测试其他待测终端中待测应用的正常与否。
步骤s20,根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
进一步地,在得到操作指令所针对操作位置的操作坐标和操作事件后,依据两者即可确定待测应用在主控终端中与操作指令对应的目标元素,即测试人员在主控终端所安装待测应用的应用界面中所操作的界面元素。先通过操作坐标来查找应用界面中位于该坐标位置的元素,再由操作事件所表征的元素信息对位于坐标位置的元素进行验证,经验证通过即得到操作所针对的目标元素。
更进一步地,判断其他待测终端所安装待测应用的应用界面中是否存在该目标元素,若存在则进行测试,若不存在则判定其他待测终端所安装的待测应用有误。其中,判断其他待测终端中是否存在目标元素的步骤包括:
步骤s21,读取所述目标元素的标识信息,并判断其他待测终端中是否存在具有所述标识信息的界面元素;
具体地,对目标元素的id、xpath、name等信息进行读取,并将该读取的信息一并作为表征目标元素唯一的标识信息。同时针对各个其他待测终端,逐个读取其中各界面元素的该类信息,并将其和目标元素的标识信息对比,判断当前进行读取和对比操作的其他待测终端中是否存在目标元素。若当前进行读取和对比操作的其他待测终端中存在某一界面元素的id、xpath、name等信息和目标元素的标识信息一致,则判定该该其他待测终端中存在具有标识信息的界面元素,针对下一个其他待测终端继续进行读取和对比操作,直到各其他待测终端均进行读取和对比操作。其中,对于读取和对比操作过程中,所出现的不存在任意界面元素的id、xpath、name等信息和目标元素的标识信息一致的其他待测终端,则针对该待测终端输出提示信息,并停止对该待测终端的该项测试。需要说明的额是,停止仅针对操作对应的单项测试,后续的其他操作测试继续进行,以查找出各待测终端安装的待测应用所具有的各项问题。
步骤s22,若存在具有所述标识信息的界面元素,则读取所述界面元素的第一元素信息,其中所述第一元素信息包括所述界面元素的父元素、兄弟元素和子元素的元素信息;
进一步地,在经确定其他待测终端中存在具有标识信息的界面元素后,继续验证目标元素和界面元素之间的布局显示是否正确,即验证显示位置是否正确。显示位置与目标元素的父元素、兄弟元素和子元素的元素信息相关,相应的该元素信息为各元素的id、xpath和name。通过预设工具对界面元素的父元素、兄弟元素和子元素的该类元素信息进行读取,作为界面元素的第一元素信息。其中预设工具优选为appium,appium是跨平台的开源工具,用于实现自动测试。
步骤s23,判断所述目标元素的第二元素信息和所述第一元素信息是否一致,其中所述第二元素信息包括所述目标元素的父元素、兄弟元素和子元素的元素信息;
同样地,优选通过appium对目标元素的父元素、兄弟元素和子元素所包含id、xpath和name的元素信息进行读取,作为目标元素的第二元素信息。在第二元素信息和第一元素信息之间进行对比,判断两者的一致性
步骤s24,若所述第二元素信息和所述第一元素信息一致,则判定所述其他待测终端中存在所述目标元素。
若经判定第一元素信息和第二元素信息之间父元素的元素信息,兄弟元素的元素信息以及子元素的元素信息均一致,则说明其他待测终端中存在目标元素,且目标元素在其他待测终端中的显示位置和其在主控终端中的显示位置一致。若第一元素信息和第二元素信息之间的父元素、兄弟元素和子元素的元素信息中存在任意一项不一致,则说明其他待测终端虽然存在目标元素,但其显示位置和主控终端中的显示位置存在差异,此时输出提示信息,用于提醒对该其他待测终端中该目标元素的显示位置进行调整。需要说明的是,提醒并不影响其他待测终端中目标元素对操作指令进行响应,所生成响应结果的测试;即只要其他待测终端中存在目标元素,则需要对目标元素的响应正确与否进行测试,以全面确保待测应用的准确性。
步骤s30,若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
更进一步地,若经判定其他待测终端中存在目标元素,则通过预设工具将操作事件下发到其他待测终端进行测试。其他待测终端中的目标元素对操作事件进行响应,将响应结果投影显示在测试终端的显示装置上,通过所显示响应结果的正确与否,来测试其他待测终端中目标元素的正确性,实现通过目标元素来对待测终端中所安装应用对应功能的测试。
本实施例的应用测试方法,当侦测到基于待测应用发送的操作指令时,先确定发送该操作指令的主控终端,并记录操作指令所对应的操作坐标和操作事件;再依据该操作坐标和操作事件,从待测应用在主控终端中运行所生成的各项元素中,确定操作指令所针对的目标元素,并判断安装该待测应用的其他待测终端中是否也存在该目标元素;若存在该目标元素,则将操作事件同步到其他待测终端中,以通过操作事件对其他待测终端的目标元素进行测试。本方案通过确定目标元素来对不同待测终端进行测试,确保了不同待测终端间测试的一致性;避免了因不同待测终端间分辨率和尺寸的差异,导致触发不同元素进行测试,而出现误测试的情形;同时避免了对误测试移动终端的单独测试,提高了测试的准确率和测试效率。
进一步地,基于本发明应用测试方法第一实施例,提出本发明应用测试方法的第二实时例,在第二实施例中,所述将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试的步骤包括:
步骤s31,在将所述操作事件同步到所述其他待测终端中后,读取所述其他待测终端对所述操作事件进行响应所生成的响应结果,并根据所述操作坐标和所述操作事件,查找参考结果;
本实施例测试终端在将操作事件同步到其他待测终端之后,通过其他待测终端对操作事件响应生成响应结果并返回到测试终端,来实现读取其他待测终端对操作事件进行响应所生成的响应结果。
考虑到不同待测终端的响应速度不相同,为了确保各待测终端的正常响应,在测试终端读取响应结果前设置有延时处理机制。具体地,读取其他待测终端对操作事件进行响应所生成的响应结果的步骤之前包括:
步骤a,判断在预设延时时长内是否侦测到所述响应结果,若侦测到所述响应结果,则执行读取所述其他待测终端对所述操作事件进行响应所生成的响应结果的步骤;
预先依据各终端的响应时间设定有预设延时时长,在将针对目标元素的操作事件下发到各待测终端后,判断在该预设延时时长内是否侦测到响应结果,若存在到响应结果,则说明各待测终端内的目标元素均对操作事件进行了响应并生成响应结果返回到测试终端,测试终端通过接收响应结果来实现对响应结果的读取操作。
步骤b,若未侦测到所述响应结果,则向所述主控终端发送反馈信息,以供所述主控终端基于所述反馈信息发起操作指令。
若在预设延时时长内未侦测到响应结果,则说明其他待测终端在一定的时间内未生成响应结果;此时向主控终端发送反馈信息,以便于主控终端在接收到反馈信息后自动发起操作指令,以继续对其他待测终端的目标元素进行测试。其中对于其他待测终端多次未生成响应结果的情形,输出提示信息,以提示待测终端所安装应用软件的该目标元素功能有误。
进一步地,为了表征响应结果的正确性,测试终端在读取到响应结果后,依据操作坐标和操作事件,对参考结果进行查找。通过响应结果和参考结果之间的一致性,来判断目标元素的功能正确与否。具体地,读取其他待测终端对操作事件进行响应所生成的响应结果,并根据操作坐标和操作事件,查找参考结果的步骤包括:
步骤s311,读取所述其他待测终端对所述操作事件进行响应所生成的第一响应图片,并根据所述操作坐标,对所述第一响应图片进行截图,生成响应结果;
可理解地,其他待测终端所安装待测应用的应用界面同步在测试终端的显示装置上显示,其他待测终端对操作事件进行响应所生成的响应结果也会同步到显示装置上显示,且显示的是待测应用的完整应用界面。测试终端将其他待测终端对操作事件进行响应的整个应用界面读取为第一响应图片,并依据操作坐标,通过appium工具中api(applicationprogramminginterface,应用程序编程接口)元素截图接口对第一响应图片进行截图处理,得到响应结果。操作坐标表征操作所针对的位置,依据其所进行的截图为目标元素对操作事件响应所生成内容进行截图,即截图得到响应所生成的响应结果。
需要说明的是,待测应用中的应用界面包含的界面元素有针对应用界面进行信息输入的元素,如登录界面中的账号输入框、密码输入框等;也有针对应用界面进行界面跳转,如登录虚拟按键。对于信息输入的元素,信息输入后的界面即为第一响应图片,依据输入操作的位置,对第一响应图片中的输入框进行截图,即生成响应结果。对于界面跳转的元素,信息跳转后的界面为第一响应图片,且因跳转操作使得跳转后的界面完全不同于跳转前的界面,从而直接将第一响应图片截取为响应结果。针对不同的元素类型以不同的方式进行处理,处理方式更为灵活;其中,对于诸如信息输入之类的单个元素,仅截图该单个元素的响应截图进行对比,避免了将整个响应界面中与响应不相关的元素进行对比,而致使相似度值很难确定,导致出错机率高的问题。
步骤s312,读取所述主控终端对所述操作事件进行响应所生成的第二响应图片,并根据所述操作坐标,对所述第二响应图片进行截图,生成参考结果;
本实施例将主控终端的目标元素对操作事件进行响应所生成的响应结果作为参考结果。同样地,测试终端先将主控终端对操作事件进行响应的整个应用界面读取为第二响应图片,并依据操作坐标,对第二响应图片进行截图处理,得到参考结果。其中参考结果也因元素类型的不同而不同,即对于信息输入的元素,参考结果为信息输入后的输入框,对于界面跳转的元素,参考结果为跳转后的界面。
步骤s32,将所述响应结果和所述参考结果对比,生成相似度值,并判断所述相似度值是否在预设阈值范围内;
进一步地,在响应结果和预设结果之间进行对比,生成两者之间的相似度值,并预先依据经验设置有表征相似度高低的预设阈值范围,该预设阈值范围在考虑各终端分辨率的差异性的基础上,通常设置为0.8~1。将生成的相似度值和该预设阈值范围对比,判断相似度值是否在预设阈值范围内,以通过相似度值和预设阈值范围的大小关系来表征响应结果和参考结果之间的相似度高低。其中,将响应结果和参考结果对比,生成相似度值的步骤包括:
步骤s321,调用预设工具,在所述响应结果和所述参考结果之间分别进行颜色和尺寸的对比,生成颜色相似度值和尺寸相似度值;
预先设置有对图片进行处理的预设工具,该预设工具优选为opencv。当需要对比响应结果和参考结果时,调用该预设工具对响应结果和参考结果至少进行颜色、尺寸等方面的对比,确定响应结果与参考结果之间在颜色上的颜色相似度值和尺寸相似度值,以表征两者分别在颜色上和尺寸上的相似程度高低。
步骤s322,对所述颜色相似度值和所述尺寸相似度值进行均值处理,生成所述相似度值。
进一步地,针对颜色相似度值和尺寸相似度值做平均值处理,得到响应结果和参考结果在整体上的相似度值,表征两者在整体上的相似程度高低。其中,为了确保响应结果和参考结果在颜色和尺寸上均相似,可针对颜色和尺寸分别设定单独的阈值。当颜色相似度值大于其对应的阈值,且尺寸相似度值也大于其对应的阈值,说明响应结果和参考结果在颜色上具有较高的相似度,且在尺寸上也具有较高的相似度时,才对两者进行均值处理,生成整体上的相似度值。
步骤s33,若所述相似度值在预设阈值范围内,则完成对所述其他待测终端的目标元素的测试。
更进一步地,若相似度值在预设阈值范围内,则说明其他待测终端中目标元素对操作事件的响应准确,即待测终端中的目标元素无误,完成对其他待测终端中目标元素的测试。若经对比确定相似度值不在预设阈值范围内,则判定待测终端中的目标元素存在异常,针对该目标元素输出提示信息,以提示对该目标元素进行异常处理。
需要说明的是,在其他实施例中,也可针对不同的操作事项设定各自对应的参考结果,而将主控终端以及其他待测终端所生成的响应结果分别和该参考结果对比,来判断主控终端和其他待测终端中目标元素所生成响应结果的正确。其中对比判断的过程与将主控终端生成的响应结果作为参考结果进行对比判断的过程一致,在此不做赘述。
本实施例在将操作事件同步到其他待测终端进行测试时,设置有延时处理机制,以确保待测终端的正常响应;同时针对不同类型的元素以不同的方式获得响应结果,避免直接将整个响应界面作为响应结果,导致对与响应不相关的元素进行对比的问题,使得对比更为明确简化;此外对比至少包括颜色和尺寸两方面,确保了响应结果和参考结果之间所生成相似度的准确性,提高了测试的准确性。
进一步地,基于本发明应用测试方法第一或第二实施例,提出本发明应用测试方法的第三实时例,在第三实施例中,所述当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端的步骤包括:
步骤s11,接收多台待测终端发送的所述待测应用的应用界面,并将所述应用界面显示在显示界面中;
本实施例针对不同的待测终端设置不同的终端标识,以对待测终端进行区分。在从各待测终端中确定出发送操作指令的主控终端时,先由各待测终端将其各自安装的待测应用的应用界面通过minicap投影到测试终端显示,测试终端对该应用界面进行接收并显示在其自身显示装置的显示界面中。
步骤s12,当侦测到基于任意一项所述应用界面发送的操作指令时,读取所述操作指令中的界面标识,并根据所述界面标识确定目标应用界面;
进一步地,各待测终端向测试终端发送任何信息,均会携带有各自的终端标识。本实施例待测终端在向测试终端发送操作指令时,将其自身的终端标识添加到操作指令中,作为其中的界面标识。测试终端在接收到基于任何一台待测终端所安装待测应用的应用界面发送的操作指令时,先对其携带的界面标识进行读取,并根据终端标识和待测终端之间的对应关系,确定操作指令所来源的应用界面,进而将该所来源的应用界面作为目标应用界面,以和其他应用界面进行区分。
步骤s13,将与所述目标应用界面对应的待测终端确定为主控终端,并将多台所述待测终端中除所述主控终端外的剩余待测终端确定为其他待测终端。
更进一步地,将具有该目标应用界面的待测终端确定为主控终端,而将各待测终端中除了主控终端之外的剩余待测终端确定为其他待测终端,以通过主控终端发送测试指令,依据其他待测终端对测试指令的响应情况,实现对各待测终端中所安装待测应用的测试。
其中,在将应用界面显示在显示界面中,并确定主控终端之后,根据操作坐标和操作事件,确定主控终端中与操作指令对应的目标元素的步骤包括:
步骤s25,读取所述主控终端的显示尺寸以及所述显示界面的界面尺寸,并在所述显示坐标和所述界面尺寸之间做比值,生成比例系数;
可理解地,测试终端和主控终端之间具有不同的分辨率,使得主控终端的应用界面投影到测试终端显示后,两者之间显示的尺寸具有差异性。为了确定差异性的大小并对其进行调整。测试终端对主控终端的显示尺寸以及显示界面的界面尺寸进行读取,显示尺寸表征主控终端中用于显示的屏幕大小尺寸,界面尺寸表征测试终端中用于显示的屏幕大小尺寸。此后在界面尺寸和显示尺寸之间做比值,生成表征差异性大小的比例系数。
步骤s26,根据所述比例系数,对所述操作坐标进行转换,生成主控像素坐标;
进一步地,将操作坐标依据比例系数进行转换,得到主控像素坐标,表征操作在主控终端的应用界面中所对应的位置。
步骤s27,查找与所述主控像素坐标对应位置的位置元素,并读取与所述操作事件对应的第一属性信息;
更进一步地,在由主控像素坐标体现出操作所针对的位置后,对位于该位置上的元素进行查找,得到位置元素。同时,对主控终端中因操作事件的操作所生成的诸如图片或文字的尺寸、内容等响应结果的属性进行获取,作为与操作事件对应的第一属性信息。
步骤s28,根据所述位置元素的第二属性信息和所述第一属性信息的一致性,确定所述主控终端中与所述操作指令对应的目标元素。
可理解地,应用界面中不同的元素具有不同的表征其尺寸大小、内容等的信息,对位置元素所具有该类表征其尺寸大小、内容等信息进行读取,作为位置元素的第二属性信息。
进一步地,对第一属性信息和第二属性信息进行对比,判断两者的一致性,若两者一致,则说明通过比例系数转换所查找得到的位置元素为目标元素;以此实现目标元素的确定,避免了遍历主控终端所显示的应用界面中的各元素,提高了查找速度。而当第一属性信息和第二属性信息不一致,则说明查找得到的位置元素与响应结果之间存在误差,位置元素不是目标元素,此时通过遍历主控终端所显示的应用界面中的各元素,来查找主控终端中操作指令所针对位置的目标元素。
本实施例依据比例系数得到主控终端中与操作对应的位置元素,并获取该位置元素的第二属性信息,进而对因操作事件的操作所生成的第一属性信息进行获取,通过第一属性和第二属性之间的一致性,来验证所查找得到的位置元素的准确性,避免了对应用界面中所显示的各元素进行遍历,提高了查找速度。
此外,请参照图2,本发明提供一种应用测试装置,在本发明应用测试装置第一实施例中,所述应用测试装置包括:
记录模块10,用于当侦测到基于待测应用发送的操作指令时,确定与所述操作指令对应的主控终端,并记录所述操作指令对应的操作坐标和操作事件;
确定模块20,用于根据所述操作坐标和所述操作事件,确定所述待测应用在所述主控终端中与所述操作指令对应的目标元素,并判断其他待测终端中的所述待测应用是否存在所述目标元素;
测试模块30,用于若存在所述目标元素,则将所述操作事件同步到所述其他待测终端中,对所述其他待测终端的目标元素进行测试。
本实施例的应用测试装置,当侦测到基于待测应用发送的操作指令时,记录模块10先确定发送该操作指令的主控终端,并记录操作指令所对应的操作坐标和操作事件;确定模块20再依据该操作坐标和操作事件,从待测应用在主控终端中运行所生成的各项元素中,确定操作指令所针对的目标元素,并判断安装该待测应用的其他待测终端中是否也存在该目标元素;若存在该目标元素,测试模块30则将操作事件同步到其他待测终端中,以通过操作事件对其他待测终端的目标元素进行测试。本方案通过确定目标元素来对不同待测终端进行测试,确保了不同待测终端间测试的一致性;避免了因不同待测终端间分辨率和尺寸的差异,导致触发不同元素进行测试,而出现误测试的情形;同时避免了对误测试移动终端的单独测试,提高了测试的准确率和测试效率。
进一步地,在本发明应用测试装置另一实施例中,所述测试模块还包括:
查找单元,用于在将所述操作事件同步到所述其他待测终端中后,读取所述其他待测终端对所述操作事件进行响应所生成的响应结果,并根据所述操作坐标和所述操作事件,查找参考结果;
对比单元,用于将所述响应结果和所述参考结果对比,生成相似度值,并判断所述相似度值是否在预设阈值范围内;
完成单元,用于若所述相似度值在预设阈值范围内,则完成对所述其他待测终端的目标元素的测试。
进一步地,在本发明应用测试装置另一实施例中,所述查找单元还用于:
读取所述其他待测终端对所述操作事件进行响应所生成的第一响应图片,并根据所述操作坐标,对所述第一响应图片进行截图,生成响应结果;
读取所述主控终端对所述操作事件进行响应所生成的第二响应图片,并根据所述操作坐标,对所述第二响应图片进行截图,生成参考结果;
所述对比单元还用于:
调用预设工具,在所述响应结果和所述参考结果之间分别进行颜色和尺寸的对比,生成颜色相似度值和尺寸相似度值;
对所述颜色相似度值和所述尺寸相似度值进行均值处理,生成所述相似度值。
进一步地,在本发明应用测试装置另一实施例中,所述查找单元还用于:
判断在预设延时时长内是否侦测到所述响应结果,若侦测到所述响应结果,则执行读取所述其他待测终端对所述操作事件进行响应所生成的响应结果的步骤;
若未侦测到所述响应结果,则向所述主控终端发送反馈信息,以供所述主控终端基于所述反馈信息发起操作指令。
进一步地,在本发明应用测试装置另一实施例中,所述确定模块还包括:
第一判断单元,用于读取所述目标元素的标识信息,并判断其他待测终端中是否存在具有所述标识信息的界面元素;
读取单元,用于若存在具有所述标识信息的界面元素,则读取所述界面元素的第一元素信息,其中所述第一元素信息包括所述界面元素的父元素、兄弟元素和子元素的元素信息;
第二判断单元,用于判断所述目标元素的第二元素信息和所述第一元素信息是否一致,其中所述第二元素信息包括所述目标元素的父元素、兄弟元素和子元素的元素信息;
第三判断单元,用于若所述第二元素信息和所述第一元素信息一致,则判定所述其他待测终端中存在所述目标元素。
进一步地,在本发明应用测试装置另一实施例中,所述记录模块还包括:
接收单元,用于接收多台待测终端发送的所述待测应用的应用界面,并将所述应用界面显示在显示界面中;
所述读取单元还用于当侦测到基于任意一项所述应用界面发送的操作指令时,读取所述操作指令中的界面标识,并根据所述界面标识确定目标应用界面;
确定单元,用于将与所述目标应用界面对应的待测终端确定为主控终端,并将多台所述待测终端中除所述主控终端外的剩余待测终端确定为其他待测终端。
进一步地,在本发明应用测试装置另一实施例中,所述确定模块还包括:
第一生成单元,用于读取所述主控终端的显示尺寸以及所述显示界面的界面尺寸,并在所述显示坐标和所述界面尺寸之间做比值,生成比例系数;
第二生成单元,用于根据所述比例系数,对所述操作坐标进行转换,生成主控像素坐标;
所述查找单元还用于查找与所述主控像素坐标对应位置的位置元素,并读取与所述操作事件对应的第一属性信息;
所述确定单元还用于根据所述位置元素的第二属性信息和所述第一属性信息的一致性,确定所述主控终端中与所述操作指令对应的目标元素。
其中,上述应用测试装置的各虚拟功能模块存储于图3所示应用测试设备的存储器1005中,处理器1001执行应用测试程序时,实现图2所示实施例中各个模块的功能。
参照图3,图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例应用测试设备可以是pc(personalcomputer,个人计算机),也可以是智能手机、平板电脑、电子书阅读器、便携计算机等终端设备。
如图3所示,该应用测试设备可以包括:处理器1001,例如cpu(centralprocessingunit,中央处理器),存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram(randomaccessmemory,随机存取存储器),也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该应用测试设备还可以包括用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi(wirelessfidelity,无线宽带)模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
本领域技术人员可以理解,图3中示出的应用测试设备结构并不构成对应用测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块以及应用测试程序。操作系统是管理和控制应用测试设备硬件和软件资源的程序,支持应用测试程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与应用测试设备中其它硬件和软件之间通信。
在图3所示的应用测试设备中,处理器1001用于执行存储器1005中存储的应用测试程序,实现上述应用测试方法各实施例中的步骤。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述应用测试方法各实施例中的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。