测试方法、装置、计算机可读存储介质和计算机设备与流程

文档序号:18524821发布日期:2019-08-24 10:08阅读:149来源:国知局
测试方法、装置、计算机可读存储介质和计算机设备与流程

本申请涉及软件测试领域,特别是涉及一种测试方法、装置、计算机可读存储介质和计算机设备。



背景技术:

随着互联网的飞速发展,软件测试工作在开发过程中显得更为重要。软件测试中,也由最初的功能测试慢慢转变成自动化测试。功能测试是指根据功能测试用例对产品的各功能进行验证,逐项测试,检查产品是否达到用户要求的功能等,功能测试只需考虑需要测试的各个功能,无需考虑整个软件的内部结构及代码,因此功能测试的工作基本上由测试人员手动完成。而自动化测试则是指,通过运行测试人员编写的测试代码或测试脚本对需要测试的应用进行测试,通过程序自动运行代替部分手工测试工作,提高测试效率。

monkey测试是自动化测试的一种手段,它向系统发送伪随机的用户事件流,比如按键输入、触摸屏输入、手势输入等,是一种为了测试软件的健壮性和稳定性的随机性测试。

然而在传统技术中,由于monkey测试产生的事件流数据流是随机的,无法识别应用界面按钮,因此在测试过程中会导致无效点击的概率较大,降低了测试的有效性。



技术实现要素:

基于此,有必要针对上述测试有效性较低的技术问题,提供一种测试方法、装置、计算机可读存储介质和计算机设备。

一种测试方法,包括:

发送测试指令至测试终端,所述测试指令用于指示所述测试终端安装待测试应用包并启动待测试应用;

发送控件获取指令至所述测试终端,所述控件获取指令用于指示所述测试终端获取所述待测试应用的页面的控件列表;

接收所述测试终端返回的所述控件列表;

获取从所述控件列表中选取的控件,获取选取的控件的控件触发位置;

发送控件触发指令至所述测试终端,所述控件触发指令携带所述控件触发位置,所述控件触发指令用于指示所述测试终端根据所述控件触发位置对选取的控件进行触发。

一种测试装置,所述装置包括:

测试指令发送模块,用于发送测试指令至测试终端,所述测试指令用于指示所述测试终端安装待测试应用包并启动待测试应用;

控件列表获取模块,用于发送控件获取指令至所述测试终端,所述控件获取指令用于指示所述测试终端获取所述待测试应用的页面的控件列表,接收所述测试终端返回的所述控件列表;

控件触发模块,用于获取从所述控件列表中选取的控件,获取选取的控件的控件触发位置,发送控件触发指令至所述测试终端,所述控件触发指令携带所述控件触发位置,所述控件触发指令用于指示所述测试终端根据所述控件触发位置对选取的控件进行触发。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

发送测试指令至测试终端,所述测试指令用于指示所述测试终端安装待测试应用包并启动待测试应用;

发送控件获取指令至所述测试终端,所述控件获取指令用于指示所述测试终端获取所述待测试应用的页面的控件列表;

接收所述测试终端返回的所述控件列表;

获取从所述控件列表中选取的控件,获取选取的控件的控件触发位置;

发送控件触发指令至所述测试终端,所述控件触发指令携带所述控件触发位置,所述控件触发指令用于指示所述测试终端根据所述控件触发位置对选取的控件进行触发。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

发送测试指令至测试终端,所述测试指令用于指示所述测试终端安装待测试应用包并启动待测试应用;

发送控件获取指令至所述测试终端,所述控件获取指令用于指示所述测试终端获取所述待测试应用的页面的控件列表;

接收所述测试终端返回的所述控件列表;

获取从所述控件列表中选取的控件,获取选取的控件的控件触发位置;

发送控件触发指令至所述测试终端,所述控件触发指令携带所述控件触发位置,所述控件触发指令用于指示所述测试终端根据所述控件触发位置对选取的控件进行触发。

上述测试方法、装置、计算机可读存储介质和计算机设备,通过发送测试指令至测试终端,以使测试终端安装待测试应用包并启动待测试应用,再发送控件获取指令至测试终端,使得测试终端获取到待测试应用的页面的控件列表,接收到测试终端返回的所述控件列表后,即可获取到从控件列表中选取的控件,再获取到选取的控件的控件触发位置,发送控件触发指令至测试终端后,测试终端则能够根据控件触发指令中携带的控件触发位置对选取的控件进行触发,从而能够实现对控件的精准触发,保证了测试的有效性。

附图说明

图1为一个实施例中测试方法的应用环境图;

图2为一个实施例中测试方法的流程示意图;

图3为一个实施例中界面截图步骤的流程示意图;

图4为另一个实施例中测试方法的流程示意图;

图5为一个实施例中存在多个测试终端的测试方法的应用场景图;

图6为一个实施例中测试方法的原理示意图;

图7为又一个实施例中测试方法的流程示意图;

图8为另一个实施例中测试方法的应用场景图;

图9为另一个实施例中测试装置的结构框图;

图10为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。0

图1为一个实施例中测试方法的应用环境图。参照图1,该测试方法应用于测试系统。该测试系统包括测试服务器110和测试终端120。测试服务器110和测试终端120通过网络连接。测试终端120具体可以是台式终端或移动终端,移动终端具体可以智能手机、平板电脑、笔记本电脑等中的至少一种。测试服务器110可为测试人员所使用,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

如图2所示,在一个实施例中,提供了一种测试方法。本实施例主要以该方法应用于上述图1中的测试服务器110来举例说明。参照图2,该测试方法具体包括如下步骤:

步骤202,发送测试指令至测试终端,测试指令用于指示测试终端安装待测试应用包并启动待测试应用。

当需要开始进行测试时,测试服务器发送测试指令至测试终端,测试指令中携带有待测试应用包,测试终端在接收到测试服务器发送的测试指令后,可安装测试指令中携带的待测试应用包,安装后即可启动该待测试应用。待测试应用包为需要进行测试的应用的程序安装包,在该待测试应用的程序安装包中包含有该应用安装的所有文件,当测试终端安装好该待测试应用对应的待测试应用包后,即可启动该待测试应用。

步骤204,发送控件获取指令至测试终端,控件获取指令用于指示测试终端获取待测试应用的页面的控件列表。

步骤206,接收测试终端返回的控件列表。

当测试终端安装了待测试应用包并成功启动该待测试应用后,在测试终端的界面上则会显示该待测试应用的某个页面。测试服务器即可发送控件获取指令至测试终端,测试终端可根据接收到的控件获取指令获取到待测试应用的页面的控件列表。页面的控件列表是指由该页面上的控件组成的列表,页面上的控件则是指在该页面上的可视化图形“元件”,比如按钮、文件编辑框等。当测试终端获取到待测试应用的页面的控件列表后,则将控件列表发送至测试服务器,测试服务器即可接收测试终端返回的控件列表。

步骤208,获取从控件列表中选取的控件,获取选取的控件的控件触发位置。

测试服务器在接收到测试终端返回的控件列表后,可从控件列表中选取控件,选取的方式可以是随机选取也可以是依次选取,当选取到某个控件后,可获取到该选取的控件的控件触发位置。在控件列表中包含有控件的名称以及每个控件的位置信息,位置信息可以是坐标等,因此在选取控件后,可根据该选取的控件的位置信息再获取到对该控件的控件触发位置。

控件触发位置指的是测试终端实现对该选取的控件进行触发时,具体的触发位置,控件触发位置是根据该选取的控件原本在页面上的位置信息进行计算后重新生成的位置信息,即根据选取的控件的位置信息生成了控件触发位置。

步骤210,发送控件触发指令至测试终端,控件触发指令携带控件触发位置,控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

当测试服务器从测试终端返回的控件列表中选取了控件并获取到该选取的控件的控件触发位置后,可发送控件触发指令至测试终端,控件触发指令中携带有控件触发位置。当测试终端接收到控件触发指令后,可根据控件触发指令中携带的控件触发位置对选取的控件进行触发。

上述测试方法,测试服务器发送控件触发指令至测试终端时,控件触发指令中携带有控件触发位置,使得测试终端能够根据控件触发位置实现对选取的控件进行精确点击。相较于monkey测试中对控件随机选取并乱点的行为,上述测试方法则是通过测试服务器对每一次选取控件都确定好测试终端在触发该控件时的触发位置,即控件触发位置,则保证了每一次控件触发的有效性,从而保证了测试的有效性。

在一个实施例中,如图3所示,也提供了一种测试方法,该方法在上述步骤210之后,还包括以下界面截图的步骤:

步骤302,获取测试终端触发选取的控件后显示的界面截图。

步骤304,根据控件触发位置对界面截图进行位置绘制。

步骤306,保存进行位置绘制后的界面截图。

在每个待测试应用中都包含有多个页面,每个页面上都可以包含有控件,当触发页面上的某个控件后,测试终端上显示的该待测试应用的页面可能发生改变,比如触发控件后进入了另外一个页面。在测试服务器发送控件触发指令至测试终端后,测试终端则根据控件触发指令中携带的控件触发位置对选取的控件进行触发,触发后无论是否进入了另外一个页面,测试服务器都可以获取测试终端上显示的界面截图。

再根据控件触发位置对获取到的界面截图进行位置绘制,即根据控件触发位置在界面截图上进行对应的标记。比如控件触发位置的坐标为(40,80),则可根据控件触发位置的具体坐标在界面截图的坐标为(40,80)的位置处添加标记,再将绘制后的界面截图进行保存。测试人员即可将该绘制后的界面截图与预期界面进行对比,即可得到本次测试的结果。

通过这种对界面截图,根据控件触发位置对界面截图进行绘制后并保存绘制后的界面截图的方式,确保了每次控件触发的记录都可被查证,后续对测试结果进行分析时,也可利用保存的界面截图还原测试过程中测试终端对控件的触发位置以及整个测试画面,便于分析问题所在,提高了测试的有效性。

在一个实施例中,测试指令携带有测试参数,测试参数包括预设测试时长。在上述步骤210之后,还包括步骤:当检测到测试终端执行测试指令的时长未达到预设测试时长时,则返回发送控件获取指令至测试终端的步骤。

测试开始时,测试服务器会发送测试指令至测试终端,在测试服务器发送的测试指令中携带有测试参数,测试参数包括有预设测试时长。预设测试时长为测试人员根据测试需求预先设定的测试执行时长,比如指测试服务器控制测试终端触发控件时连续执行的时长,即测试终端达到n小时的连续触发,n则为预设测试时长。

当测试终端根据测试服务器发送的控件触发指令中携带的控件触发位置对选取的控件进行触发后,测试服务器会对测试终端执行测试指令的时长进行检测。当测试服务器检测到测试终端执行测试指令的时长未达到预设测试时长时,则再次控件获取指令至测试终端,开始新的一轮控件触发测试。

设定测试参数,比如预设测试时长,使得测试终端能够根据测试参数中具体的参数进行测试,便于对测试过程进行管控,也提高了测试的效率。

在一个实施例中,上述测试方法还包括步骤:当检测到测试终端执行测试指令的时长已达到预设测试时长时,则获取测试终端的测试日志;将测试日志与预设测试结果进行对比,得到测试分析报告。

当测试终端根据测试服务器发送的控件触发指令中携带的控件触发位置对选取的控件进行触发后,测试服务器会对测试终端执行测试指令的时长进行检测,当测试服务器检测到测试终端执行测试指令的时长已达到预设测试时长时,则测试终端终止测试,测试服务器即可获取测试中选的测试日志,测试日志对整个测试过程进行了记录,因此可将测试日志与预设测试结果进行对比,即可得到测试分析报告。这种方式,使得测试终端能够根据预设的测试参数进行测试,便于对测试流程的管控,也提高了测试的效率。

在一个实施例中,提供了一种测试方法,本实施例主要以该方法应用于上述图1中的测试服务器110来举例说明。参照图4,该测试方法具体包括如下步骤:

步骤402,发送测试指令至测试终端,测试终端启动待测试应用。

步骤404,发送控件获取指令至测试终端,接收测试终端返回的控件列表。

步骤406,获取从控件列表中选取的控件,获取选取的控件的控件触发位置。

步骤408,发送控件触发指令至测试终端,该控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

需要开始测试时,测试服务器发送测试指令至测试终端,测试终端即可根据测试指令安装待测试应用包并启动待测试应用。测试服务器发送控件获取指令至测试终端,测试终端在接收到控件获取指令后,可获取到待测试应用的页面的控件列表,即测试终端可获取到正在运行的待测试应用的当前页面上的全部控件,得到当前页面的控件列表,并返回至测试服务器。测试服务器即可接收到测试终端返回的控件列表,控件列表中包含有各个控件的名称和位置信息等。从控件列表中选取控件,根据选取控件的位置信息计算得到对该选取的控件的触发位置,即该选取的控件的控件触发位置。发送控件触发指令至测试终端,控件触发指令中携带有该选取的控件的控件触发位置,测试终端接收到控件触发指令后,可根据控件触发位置对选取的控件进行触发。

步骤410,检测测试终端执行测试指令的时长是否达到预设测试时长,若是,则执行步骤412;若否,则执行步骤404。

步骤412,获取所述测试终端的测试日志,得到测试分析报告。

测试服务器发送至测试终端的测试指令中携带有测试参数,测试参数包括有预设测试时长。预设测试时长为测试人员根据测试需求预先设定的测试执行时长,比如指测试服务器控制测试终端触发控件时连续执行的时长,即测试终端达到n小时的连续触发,n则为预设测试时长。

在测试终端每次根据测试服务器发送的控件触发指令实现对选取的控件的触发操作后,测试服务器都会对测试终端执行测试指令的时长进行检测,检测测试终端执行测试指令的时长是否达到了预设测试时长。若是检测到测试终端的测试时长超过了预设测试时长,则终止测试;若是检测到测试终端的测试时长未超过预设测试时长,则返回步骤404,即重新发送控件获取指令至测试终端,再次获取到测试终端运行的待测试应用的当前页面的控件列表,并从控件列表中选取控件,根据控件的位置信息生成此控件对应的控件触发位置,再发送控件触发指令至测试终端,使得测试终端根据控件触发指令中携带的控件触发位置对再次选取的控件进行触发,以此循环,直到测试服务器检测到测试终端执行测试的时长达到预设测试时长。

测试结束后,测试服务器获取到测试终端的测试日志,将测试日志与预期结果进行对比,即可得到测试分析报告。通过这种预先设定测试参数的方式,能够使得测试终端能够根据测试参数进行测试,便于对测试终端的测试流程进行管理,也能够根据实际测试需求对测试终端的测试时长进行对应的设定,提高了测试的效率。

在一个实施例中,从控件列表中选取控件,获取选取的控件的控件触发位置,包括:获取控件列表中的控件以及对应的控件字段;将控件字段的字段值与预设字段的字段值进行匹配,将匹配成功的控件字段对应的控件作为交互控件;从交互控件中选取控件,获取选取的控件的控件触发位置。

当测试服务器接收到测试终端返回的控件列表后,可获取到控件列表中的控件以及与控件对应的控件字段。获取到每个控件的控件字段后,可将控件字段与预设字段值进行匹配。可将预设字段设为“clickable”,此预设字段的字段值设为“true”,则可以对控件列表中每个控件对应的控件字段为“clickable”的值进行匹配,将控件字段“clickable”的值为“true”的控件挑选出来,作为交互控件,即将匹配成功的控件字段对应的控件作为交互控件。

当预设字段为“clickable”,且字段值为“true”,说明此控件是可交互的,即交互控件,交互控件具备执行功能或者逻辑功能等。比如触发交互控件后,可进入另外一个界面,或者发送数据请求指令至服务器等等。当从控件列表中选取出交互控件后,可从交互控件中选取控件,再根据对选取的控件的位置信息进行计算,得到对选取的控件的触发位置,即控件触发位置。测试服务器可发送控件触发指令至测试终端,使得测试终端可根据控件触发指令中携带的控件触发位置对该选取的控件进行触发。

在获取到控件列表后,先对控件列表中的控件进行筛选,选取具备功能逻辑的交互控件,再从交互控件中选取控件,并根据控件的位置信息计算得到一个对该控件的触发位置,使得测试终端能够根据控件触发位置实现对该选取的控件的精准触发,提高了测试的有效性。

在一个实施例中,测试终端为多个,测试指令携带有测试终端的设备标识。发送测试指令至测试终端,包括:获取每个测试终端的设备标识;将测试指令发送至与设备标识对应的测试终端。

在本实施例中,测试终端可以是多个,当需要同时启动多个测试终端进行测试时,可以先获取每个测试终端的设备标识,设备标识是唯一的,可跟设备标识获知对应的测试终端设备。因此测试服务器发送至测试终端的测试指令中可以携带有测试终端的设备标识,在发送测试指令至测试终端时,即可根据测试指令中携带的设备标识将测试指令对应发送至与设备标识对应的测试终端。

如图5所示,有n个测试终端,测试服务器在发送测试指令时,会根据测试指令中携带的设备标识将测试指令发送至对应的测试终端。在测试指令中,还可以携带有测试参数,比如预设测试时长、待测试应用包以及待测试应用包名等。各个测试终端接收到对应的测试指令时,即可根据测试指令安装待待测试应用包,启动待测试应用后即可根据测试指令中携带的预设测试时长执行测试指令。

当测试终端为多个时,根据唯一的设备标识将测试指令对应发送至与设备标识对应的测试终端上,实现对测试终端测试流程的管控,提高了测试的效率。

在一个实施例中,发送测试指令至测试终端之前,还包括:获取测试任务服务器发送的测试任务指令,测试任务指令携带有待测试应用包和测试参数;根据测试任务指令中携带的待测试应用包和测试参数生成测试指令。

测试任务服务器负责管理测试任务并分配测试任务,测试任务服务器可根据需要测试的待测试应用包以及预设的测试参数生成测试任务指令,再将测试任务指令发送至测试服务器,测试服务器则能够根据测试任务指令中携带的待测试应用包和测试参数生成测试指令,并将测试指令发送至测试终端,使得测试终端能够根据测试指令中携带的待测试应用包安装待测试应用,并启动待测试应用进行测试。

如图6所示,测试任务服务器获取到待测试应用的安装包,即待测试应用包,并获取到预设的测试参数,测试参数可以包含有预设测试时长、执行测试的测试终端的设备标识等。测试任务服务器将携带有待测试应用包和测试参数的测试任务指令发送至测试服务器,测试服务器在接收到测试任务指令后,可根据测试任务指令中携带的待测试应用包和测试参数生成测试指令,再将测试指令发送至测试终端进行测试。

根据测试任务服务器下发的测试任务指令,再根据测试任务指令获取到待测试应用包以及测试参数等,再根据待测试应用包以及测试参数生成对应的测试指令发送至测试终端,使得测试终端能够根据测试参数中具体携带的参数对待测试应用包对应的待测试应用进行测试,便于对测试流程的管控,提高了整体的测试效率。

在一个实施例中,也提供了一种测试方法,本实施例主要以该方法应用于上述图1中的测试服务器110来举例说明。参照图7,该测试方法具体包括如下步骤:

步骤702,获取测试任务服务器发送的测试任务指令。

如图6所示,测试管理人员可通过设备将待测试的应用包上传到测试任务服务器,并设置对应的测试参数,以便测试任务服务器发送测试任务指令至测试服务器的时候,测试服务器可根据测试任务指令获取到待测试应用包以及对应的参数。待测试应用包可以是即时通信应用,比如qq、微信等。测试服务器可以是测试人员使用的设备,测试任务服务器可以是测试管理人员使用的设备,在设备上可运行管理测试任务的软件或者网页,测试人员可根据测试任务服务器获取到待测试应用包以及对应的测试参数。测试人员在使用设备时,可通过触发uiautomator(界面自动化)指令触发控件获取指令,并发送至测试终端。

步骤704,根据测试任务指令生成测试指令,将测试指令发送至测试终端。

将需要进行测试的待测试应用包上传到测试任务服务器,并设定好测试参数,测试任务服务器即可根据待测试应用包与测试参数生成对应的测试任务指令,测试服务器在接收到测试任务服务器发送的测试任务指令后,即可根据待测试应用包与测试参数生成测试指令发送至测试终端。当测试终端与多个时,即需要同时使用多个测试终端进行测试时,测试任务指令中可携带有设备标识,当测试服务器接收到测试任务指令后,可根据设备标识将测试指令发送至对应的测试终端。

如图8所示,当需要同时启动多台测试终端进行测试时,测试任务服务器可将测试任务指令分别发送至多个测试服务器,测试服务器在接收到测试任务指令后,可根据测试任务指令中携带的待测试应用包、预设测试时长以及设备标识等生成测试指令,根据设备标识分别发送至对应的测试终端,使得各个测试终端根据接收到的测试指令中携带的待测试应用包进行安装,并启动待测试应用等。为了保证测试效率,测试服务器可在获取到测试终端的数目n后,可开启n个线程发送测试指令至测试终端,使得测试终端能够同时启动测试进程。

在测试终端安装之前,可先对测试终端进行初始化操作,比如卸载测试终端中其他的应用、测试终端进行重启或者删除测试终端中的某些日志文件等,初始化测试终端后可避免其他因素影响到测试结果。一般情况下,测试终端能够正常启动才能够进入到下面的步骤,因此默认所有测试终端都能够正常启动待测试应用,若是需要考虑到启动失败的情况,可增加应用进程的校验,比如检测到应用进程启动失败,则启动失败的测试终端直接结束测试。这种校验可根据业务需求自行增加检验条件。

步骤706,发送控件获取指令至测试终端,接收测试终端返回的控件列表。

步骤708,获取从控件列表中选取的控件,获取选取的控件的控件触发位置。

步骤710,发送控件触发指令至测试终端,该控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

测试服务器发送控件获取指令至测试终端,测试终端在接收到控件获取指令后可获取到正在运行的待测试应用当前页面的全部控件组成的控件列表,比如将全部的控件保存到xml(一种文件格式)文件中。测试服务器可通过调用特定接口接收到测试终端返回的控件列表。再获取到控件列表中的控件以及每个控件对应的控件字段,将控件字段的字段值与预设字段的字段值进行匹配,选取匹配成功的控件字段对应的控件。

可将预设字段设为“clickable”,此预设字段的字段值设为“true”,则可以对控件列表中每个控件对应的控件字段为“clickable”的值进行匹配,将控件字段“clickable”的值为“true”的控件挑选出来,作为交互控件,即将匹配成功的控件字段对应的控件作为交互控件。

当预设字段为“clickable”,且字段值为“true”,说明此控件是可交互的,即交互控件,交互控件具备执行功能或者逻辑功能等。比如触发交互控件后,可进入另外一个界面,或者发送数据请求指令至服务器等等。当从控件列表中选取出交互控件后,可从交互控件中选取控件,再根据对选取的控件的位置信息进行计算,得到对选取的控件的触发位置,即控件触发位置。测试服务器可发送控件触发指令至测试终端,使得测试终端可根据控件触发指令中携带的控件触发位置对该选取的控件进行触发。

在monkey测试中产生的事件流数据流是随机的,因此并不会对待测试应用的界面控件进行识别,而对于界面上控件按钮较小,或者控件按钮处于界面上较偏的位置时,则很难命中具备逻辑功能或数据请求功能等控件按钮,大大降低了测试的有效性。因此本实施例中,并不是仅仅是获取到控件列表后,根据控件的位置直接控制测试终端根据控件的位置进行触发,而是在选取了控件后,先将控件列表中的交互控件筛选出来,再从交互控件中选取一个控件,获取到该选取的控件的位置后计算得到一个更加精准的触发位置。

比如选取一个控件,则可以获取到此选取的控件的位置信息,如控件的四个坐标,则可以根据控件的坐标信息计算得到一个中心点的坐标,即作为对该选取的控件的控件触发位置,当测试终端根据控件触发位置对控件进行触发时,则能保证测试终端触发的控件是具备功能的,并且确保测试终端在触发控件时能够精准的触发该选取的控件。

测试服务器发送控件获取指令至测试终端时,可以通过界面控件工具发送控件获取指令,比如uiautomator,或者也可以利用其它的ui自动化测试工具,比如appium(一种移动测试工具)、selenium(一种移动测试工具)等获取待测试应用界面的全部控件,当通过上述的工具获取控件时,测试服务器上则需要装有这些工具,比如安装有安卓的sdk(开发工具包),即可通过uiautomator的命令获取到待测试应用的页面控件。

步骤712,获取测试终端触发选取的控件后显示的界面截图,对界面截图进行位置绘制并保存。

每次测试终端在触发选取的控件后,测试服务器都会获取到测试终端上的界面截图,并根据控件触发位置在界面截图上进行位置标记,并将绘制位置后的界面截图进行保存。后续测试人员可以通过保存的界面截图对测试过程进行还原,便于发现测试中出现的问题且对问题进行更为直观的分析。

步骤714,检测到测试终端执行测试指令的时长是否达到预设测试时长,若是,则执行步骤716;若否,则执行步骤706。

步骤716,获取测试终端的测试日志,分析测试日志得到测试分析报告。

在测试指令中携带有测试参数,测试服务器可根据测试参数中包含的预设测试时长对测试终端执行测试指令的时长进行检测,当检测到测试终端执行测试指令的时长已达到预设测试时长时,可终止该测试终端的测试进程,并获取到该测试终端的测试日志,对测试日志进行分析后,即可得到测试分析报告。当检测到测试终端执行测试指令的时长未达到预设测试时长时,则该测试终端可进入到下一轮的测试中,即再次获取测试服务器发送的控件获取指令,将当前页面的控件列表发送至测试服务器,并根据测试服务器发送的控件触发指令对再次选取的控件进行触发,整个测试过程不断循环进行,直到测试终端执行测试指令的时长达到预设测试时长。

在测试指令携带的测试参数中,还可以包括有测试报告邮件收件人等,在得到测试分析报告后,则可以根据测试参数中包括的测试报告邮件收件人的信息将测试分析报告发送至对应的人员。

上述测试方法,测试服务器发送控件触发指令至测试终端时,控件触发指令中携带有控件触发位置,使得测试终端能够根据控件触发位置实现对选取的控件进行精确点击。相较于monkey测试中对控件随机选取并乱点的行为,上述测试方法则是通过测试服务器对每一次选取控件都确定好测试终端在触发该控件时的触发位置,即控件触发位置,则保证了每一次控件触发的有效性,从而保证了测试的有效性。

图2、4、7为各个实施例中测试方法的流程示意图。应该理解的是,虽然图2、4、7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4、7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图9所示,提供了一种测试装置,包括:

测试指令发送模块902,用于发送测试指令至测试终端,测试指令用于指示测试终端安装待测试应用包并启动待测试应用。

控件列表获取模块904,用于发送控件获取指令至测试终端,控件获取指令用于指示测试终端获取待测试应用的页面的控件列表,接收测试终端返回的控件列表。

控件触发模块906,用于获取从控件列表中选取的控件,获取选取的控件的控件触发位置,发送控件触发指令至测试终端,控件触发指令携带控件触发位置,控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

在一个实施例中,上述控件触发模块906还用于获取控件列表中的控件以及对应的控件字段;将控件字段的字段值与预设字段的字段值进行匹配,将匹配成功的控件字段对应的控件作为交互控件;从交互控件中选取控件,获取选取的控件的控件触发位置。

在一个实施例中,上述装置还包括截图模块(图中未示出),用于获取测试终端触发选取的控件后显示的界面截图;根据控件触发位置对界面截图进行位置绘制;保存进行位置绘制后的界面截图。

在一个实施例中,测试指令携带有测试参数,测试参数包括预设测试时长;上述装置还包括检测模块(图中未示出),用于当检测到测试终端执行测试指令的时长未达到预设测试时长时,则返回发送控件获取指令至测试终端的步骤。

在一个实施例中,上述检测模块还用于当检测到测试终端执行测试指令的时长已达到预设测试时长时,则获取测试终端的测试日志;将测试日志与预设测试结果进行对比,得到测试分析报告。

在一个实施例中,上述装置还包括测试任务模块(图中未示出),用于获取测试任务服务器发送的测试任务指令,测试任务指令携带有待测试应用包和测试参数;根据测试任务指令中携带的待测试应用包和测试参数生成测试指令。

图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的测试服务器110。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现测试方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行测试方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等,输入装置可用于触发测试指令、控件获取指令或控件触发指令并发送至测试终端,显示屏可用于显示界面截图或测试日志等。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的测试装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该测试装置的各个程序模块,比如,图9所示的测试指令发送模块902、控件列表获取模块904和控件触发模块906。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的测试方法中的步骤。

例如,图10所示的计算机设备可以通过如图9所示的测试装置中的测试指令发送模块902执行发送测试指令至测试终端,测试指令用于指示测试终端安装待测试应用包并启动待测试应用。计算机设备可通过控件列表获取模块904执行发送控件获取指令至测试终端,控件获取指令用于指示测试终端获取待测试应用的页面的控件列表,接收测试终端返回的控件列表。计算机设备可通过控件触发模块906执行获取从控件列表中选取的控件,获取选取的控件的控件触发位置,发送控件触发指令至测试终端,控件触发指令携带控件触发位置,控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:发送测试指令至测试终端,测试指令用于指示测试终端安装待测试应用包并启动待测试应用;发送控件获取指令至测试终端,控件获取指令用于指示测试终端获取待测试应用的页面的控件列表;接收测试终端返回的控件列表;获取从控件列表中选取的控件,获取选取的控件的控件触发位置;发送控件触发指令至测试终端,控件触发指令携带控件触发位置,控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

在一个实施例中,发送控件触发指令至测试终端的步骤之后,处理器执行计算机程序时还实现以下步骤:获取测试终端触发选取的控件后显示的界面截图;根据控件触发位置对界面截图进行位置绘制;保存进行位置绘制后的界面截图。

在一个实施例中,测试指令携带有测试参数,测试参数包括预设测试时长。发送控件触发指令至测试终端之后,处理器执行计算机程序时还实现以下步骤:当检测到测试终端执行测试指令的时长未达到预设测试时长时,则返回发送控件获取指令至测试终端的步骤。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测到测试终端执行测试指令的时长已达到预设测试时长时,则获取测试终端的测试日志;将测试日志与预设测试结果进行对比,得到测试分析报告。

在一个实施例中,从控件列表中选取控件,获取选取的控件的控件触发位置的步骤包括:获取控件列表中的控件以及对应的控件字段;将控件字段的字段值与预设字段的字段值进行匹配,将匹配成功的控件字段对应的控件作为交互控件;从交互控件中选取控件,获取选取的控件的控件触发位置。

在一个实施例中,测试终端为多个,测试指令携带有测试终端的设备标识。发送测试指令至测试终端的步骤包括:获取每个测试终端的设备标识;将测试指令发送至与设备标识对应的测试终端。

在一个实施例中,发送测试指令至测试终端的步骤之前,处理器执行计算机程序时还实现以下步骤:获取测试任务服务器发送的测试任务指令,测试任务指令携带有待测试应用包和测试参数;根据测试任务指令中携带的待测试应用包和测试参数生成测试指令。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:发送测试指令至测试终端,测试指令用于指示测试终端安装待测试应用包并启动待测试应用;发送控件获取指令至测试终端,控件获取指令用于指示测试终端获取待测试应用的页面的控件列表;接收测试终端返回的控件列表;获取从控件列表中选取的控件,获取选取的控件的控件触发位置;发送控件触发指令至测试终端,控件触发指令携带控件触发位置,控件触发指令用于指示测试终端根据控件触发位置对选取的控件进行触发。

在一个实施例中,发送控件触发指令至测试终端的步骤之后,计算机程序被处理器执行时还实现以下步骤:获取测试终端触发选取的控件后显示的界面截图;根据控件触发位置对界面截图进行位置绘制;保存进行位置绘制后的界面截图。

在一个实施例中,测试指令携带有测试参数,测试参数包括预设测试时长。发送控件触发指令至测试终端的步骤之后,计算机程序被处理器执行时还实现以下步骤:当检测到测试终端执行测试指令的时长未达到预设测试时长时,则返回发送控件获取指令至测试终端的步骤。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测到测试终端执行测试指令的时长已达到预设测试时长时,则获取测试终端的测试日志;将测试日志与预设测试结果进行对比,得到测试分析报告。

在一个实施例中,从控件列表中选取控件,获取选取的控件的控件触发位置的步骤包括:获取控件列表中的控件以及对应的控件字段;将控件字段的字段值与预设字段的字段值进行匹配,将匹配成功的控件字段对应的控件作为交互控件;从交互控件中选取控件,获取选取的控件的控件触发位置。

在一个实施例中,测试终端为多个,测试指令携带有测试终端的设备标识。发送测试指令至测试终端的步骤包括:获取每个测试终端的设备标识;将测试指令发送至与设备标识对应的测试终端。

在一个实施例中,发送测试指令至测试终端的步骤之前,计算机程序被处理器执行时还实现以下步骤:获取测试任务服务器发送的测试任务指令,测试任务指令携带有待测试应用包和测试参数;根据测试任务指令中携带的待测试应用包和测试参数生成测试指令。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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