用于测试的多设备管理方法、装置、服务器及存储介质与流程

文档序号:17130515发布日期:2019-03-16 01:08阅读:153来源:国知局
用于测试的多设备管理方法、装置、服务器及存储介质与流程

本发明涉及计算机技术领域,具体涉及一种用于测试的多设备管理方法、装置、服务器及存储介质。



背景技术:

目前具有数据计算处理功能的测试设备被应用的越来与广泛,例如智能手机,掌上电脑,平板电脑等,终端可以加载运行各种应用程序,大部分应用程序都是独立于测试设备的操作系统的第三方应用程序。每发布一款新的应用程序,都需要进行应用程序测试。现有的应用程序测试方法主要采用集中的自动化测试,即用户只需要提供被测应用程序,将自动化测试脚本上传至远程服务器上,通过远程服务器控制多台测试设备并行执行测试脚本,如此可以提高对测试效率。但是使用多台测试设备进行应用程序自动化测试时通常面临两个问题:一是设备状态信息无法实时同步的问题,二是一个测试任务需要在同一个网络下的服务器上执行的问题。



技术实现要素:

鉴于以上内容,有必要提出一种用于测试的多设备管理方法、装置、服务器及存储介质,能够解决设备状态信息无法实时同步及测试任务需要在不同的服务器上执行的问题。

本发明的第一方面提供一种用于测试的多设备管理方法,应用于第一服务器中,所述第一服务器与多个第二服务器连接,每一个所述第二服务器与多个测试设备连接,所述方法包括:

将待测应用程序及对应所述待测应用程序的自动测试脚本分发给所述多个第二服务器,使得所述第二服务器通知所述多个测试设备安装所述待测应用程序及对应所述待测应用程序的自动测试脚本;

当接收到对所述待测应用程序的自动测试的测试指令时,获取所述多个测试设备的状态信息;

根据所述状态信息通过所述多个第二服务器控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例;

接收所述多个第二服务器上报的多个测试报告,并将所述多个测试报告汇总成一个最终的测试报告。

优选的,所述方法还包括:

每隔预设时间段获取每个第二服务器发送的对应的测试设备的状态信息,并更新所述第一服务器中的设备状态信息表。

优选的,所述根据所述状态信息通过所述多个第二服务器控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例包括:

获取所述多个测试设备中的连接状态为第一连接状态对应的测试设备,作为第一备选测试设备;

获取所述第一备选测试设备中当前的测试用例数小于预设测试用例数阈值对应的测试设备,作为第二备选测试设备;

将所述第二备选测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

优选的,所述根据所述状态信息通过所述多个第二服务器控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例包括:

提供显示界面,所述显示界面上显示了所述多个测试设备及每个测试设备的状态信息;

接收用户选定的测试设备对应的选项;

根据所选定的选项,将对应的测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

本发明的第二方面提供一种用于测试的多设备管理方法,应用于第二服务器中,所述第二服务器与第一服务器连接,所述第二服务器还与多个测试设备连接,所述方法包括:

接收所述第一服务器发送的待测应用程序及对应所述待测应用程序的自动测试脚本;

将所述待测应用程序及所述待测应用程序的自动测试脚本分发给所述多个测试设备,使得所述多个测试设备安装所述待测应用程序及所述待测应用程序的自动测试脚本;

每隔预设时间段获取每个测试设备的状态信息,并将所述状态信息上报至所述第一服务器;

接收到所述第一服务器发送的测试指令时,根据所述测试指令控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例;

接收到所述多个测试设备发送的多个测试报告时,将所述多个测试报告上报给所述第一服务器。

优选的,每隔预设时间段获取到测试设备的状态信息之后,所述方法还包括:

判断每个测试设备的状态信息是否发生改变;

当确定所述测试设备的状态信息发生改变时,将状态信息发生改变的测试设备的状态信息上报至所述第一服务器。

本发明的第三方面提供一种用于测试的多设备管理装置,运行于第一服务器中,所述第一服务器与多个第二服务器连接,每一个所述第二服务器与多个测试设备连接,所述装置包括:

分发模块,用于将待测应用程序及对应所述待测应用程序的自动测试脚本分发给所述多个第二服务器,使得所述第二服务器通知所述多个测试设备安装所述待测应用程序及对应所述待测应用程序的自动测试脚本;

获取模块,用于当接收到对所述待测应用程序的自动测试的测试指令时,获取所述多个测试设备的状态信息;

控制模块,用于根据所述状态信息通过所述多个第二服务器控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例;

接收模块,用于接收所述多个第二服务器上报的多个测试报告,并将所述多个测试报告汇总成一个最终的测试报告。

本发明的第四方面提供一种用于测试的多设备管理装置,运行于第二服务器中,所述第二服务器与第一服务器连接,所述第二服务器还与多个测试设备连接,所述装置包括:

接收模块,用于接收所述第一服务器发送的待测应用程序及对应所述待测应用程序的自动测试脚本;

分发模块,用于将所述待测应用程序及所述待测应用程序的自动测试脚本分发给所述多个测试设备,使得所述多个测试设备安装所述待测应用程序及所述待测应用程序的自动测试脚本;

获取模块,用于每隔预设时间段获取每个测试设备的状态信息,并将所述状态信息上报至所述第一服务器;

控制模块,用于接收到所述第一服务器发送的测试指令时,根据所述测试指令控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例;

上报模块,用于接收到所述多个测试设备发送的多个测试报告时,将所述多个测试报告上报给所述第一服务器。

本发明的第五方面提供一种服务器,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述用于测试的多设备管理方法。

本发明的第六方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述用于测试的多设备管理方法。

本发明实施例中所述的用于测试的多设备管理方法、装置、服务器及存储介质,通过设置一个第一服务器及连接第一服务器的多个第二服务器,每一个第二服务器还可以部署多个测试设备,通过第一服务器控制多个测试设备执行并行测试,不但实现了自动化的测试,降低人工测试工作量,降低人工成本;另外,根据实时更新第一服务器中的测试设备的状态信息,并根据测试设备的状态信息控制测试测试设备执行测试用例,从而在分配测试任务时,能够挑选出成功连接第二服务器且当前的测试任务较少的测试设备,避免将测试任务分配给了没有成功连接第二服务器的测试设备,或者将测试认为分配给了测试任务较多的测试设备,有效且合理的利用了空闲的测试设备的资源,提高了测试的效率;最后,本发明的测试方式不受测试设备的通信网络地域限制,与被测应用程序的真实运行环境非常接近,提高了测试质量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例一提供的用于测试的多设备管理方法的应用环境架构图。

图2是本发明实施例二提供的用于测试的多设备管理方法的流程图。

图3是本发明实施例三提供的用于测试的多设备管理方法的流程图。

图4是本发明实施例四提供的用于测试的多设备管理装置的结构图。

图5是本发明实施例五提供的用于测试的多设备管理装置的结构图。

图6是本发明实施例六提供的第一服务器的示意图。

图7是本发明实施例七提供的第二服务器的示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

参阅图1所示,为本发明实施例一提供的用于测试的多设备管理方法的应用环境架构图。

本发明的用于测试的多设备管理方法应用在一个或者多个服务器及/或终端构成的环境中。例如,由第一服务器3和第二服务器4及多个测试设备5构成的环境中。第一服务器3通过第一网络,例如以太网与多个第二服务器4通讯连接。每一个第二服务器4通过第二网络,例如城域网或局域网与多个(例如,30个)测试设备5通讯连接。本实施例中,所述第一服务器3可以为master服务器,所述第一服务器3中可以部署代理服务。所述第一服务器3是具有用于测试的多设备管理能力的计算机。所述第一服务器3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(应用程序licationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

本实施例中,所述第二服务器4可以为slave服务器,所述第二服务器4中可以部署执行服务。所述第一服务器3是具有收发能力的计算机。

本实施例中,所述测试设备5可以是执行应用程序测试任务的终端或者固定终端中。所述测试设备5并不限定于个人电脑、智能手机、平板电脑、安装有摄像头的台式机或一体机等。所述终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端可以与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例二

图2是本发明实施例二提供的用于测试的多设备管理方法的流程图。

在本实施例中,所述用于测试的多设备管理方法可以应用于第一服务器中,对于需要进行用于测试的多设备管理的第一服务器,可以直接在第一服务器上集成本发明的方法所提供的用于测试的多设备管理的功能,或者以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在第一服务器上。

如图1所示,所述用于测试的多设备管理方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s21:将待测应用程序及对应所述待测应用程序的自动测试脚本分发给多个第二服务器,使得第二服务器通知多个测试设备安装所述待测应用程序及对应所述待测应用程序的自动测试脚本。

本实施例中,测试人员提供并上传待测应用程序的安装包,同时将对应待测应用程序的自动测试脚本打包后上传至第一服务器。第一服务器将待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本分发给多个第二服务器,第二服务器将待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本分发给多个测试设备,以通知多个测试设备下载所述待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本并完成待测应用程序的安装,同时安装并运行待测应用程序的自动测试脚本。

所述待测应用程序的自动测试脚本是测试人员根据待测应用程序的功能所编写的程序代码,该程序代码可以被测试设备自动运行,用于自动测试被测应用程序的各项功能。自动测试脚本运行后可以提供测试结果,自动测试脚本可以直接利用测试结果生成测试报告。

s22:当接收到对所述待测应用程序的自动测试的测试指令时,获取所述多个测试设备的状态信息。

本实施例中,可以在第一服务器上设置启动测试指令的功能开关,通过所述功能开关触发启动测试指令。所述功能开关可以是虚拟图标,也可以是语音指令。当用户触摸所述虚拟图标或者发出预设语音时,第一服务器侦测到所述虚拟图标接收到了触摸的信号或者第一服务器接收到所述预设语音时,认为触发了启动测试指令的功能开关,开始测试。

第一服务器接收到对所述待测应用程序的自动测试的测试指令时,可以从预先存储于所述第一服务器中的设备状态信息表中获取所述多个测试设备中的每一个测试设备的状态信息。所述设备状态信息表中记录有每一个测试设备的状态信息,所述状态信息可以包括:测试设备的标识号(id)、对应的第二服务器的互联网协议(internetprotocol,ip)地址、连接状态及当前的测试用例数。所述测试设备的标识号为测试设备唯一的身份标识,例如,可以为国际移动电话设备识别码(internationalmobileequipmentidentity,imei)。所述连接状态可以包括:第一连接状态和第二连接状态,其中,第一连接状态可以为1,用以表示测试设备已成功连接了第二服务器,第二连接状态可以为0,用以表示测试设备未连接上第二服务器。所述测试用例数是指测试设备当前正在执行的测试用例数与待执行的测试用例数之和。应当理解的是,一台测试设备当前正在执行的测试用例数只可能为1或为0,若当前正在执行的测试用例数为1,则表示测试设备当前正在执行测试用例,可能还有一个或多个待执行的测试用例处于执行队列中。若当前正在执行的测试用例数为0,则表示测试设备当前没有执行任何测试用例,待执行的测试用例数必然为0,即测试设备当前处于空闲状态,且不可能还有待执行的测试用例处于执行队列中。

优选的,所述方法还可以包括:每隔预设时间段获取每个第二服务器发送的对应的测试设备的状态信息,并更新所述第一服务器中的设备状态信息表。

本实施例中,每个所述第二服务器可以每隔所述预设时间段获取对应的多个测试设备的每个测试设备的状态信息,并判断每个测试设备的状态信息是否发生改变,当确定测试设备的状态信息发生改变时,将状态信息发生改变的测试设备的状态信息上报至第一服务器,以供第一服务器更新所述设备状态信息表中对应的测试设备的状态信息。所述预设时间段,可以为1分钟。通过每隔预设时间段第二服务器获取对应的测试设备的状态信息并将发生改变的状态信息同步上报至第一服务器,有助于第一服务器在第一时间获知测试设备的最新的状态信息,便于后续根据所述状态信息为对应的测试设备分配测试任务。

s23:根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

所述根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例具体可以包括:

1)获取多个测试设备中的连接状态为第一连接状态对应的测试设备,作为第一备选测试设备;

获取具有第一连接状态对应的测试设备可以将与第二服务器成功连接的测试设备挑选出来,排除掉具有第二连接状态对应的测试设备,即剔除掉与第二服务器未连接成功的测试设备。

2)获取所述第一备选测试设备中当前的测试用例数小于预设测试用例数阈值对应的测试设备,作为第二备选测试设备;

所述预设测试用例数阈值为预先设置的测试用例的临界值。当测试设备当前的测试用例数超过所述预设测试用例数阈值时,认为测试设备当前的测试任务较多,不宜再分配测试任务。当测试设备当前的测试用例数小于或者等于所述预设测试用例数阈值时,认为测试设备当前的测试任务较少,可以再分配测试任务。

3)第一服务器将所述第二备选测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

第一服务器将所述第二备选测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器,以通过第二服务器控制对应的测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

所述待测应用程序的自动测试脚本中包括了多个测试用例,每个测试用例可以包括多个测试步骤,第一服务器通过第二服务器控制对应的测试设备执行所述测试用例中的测试步骤。

在其他实施例中,所述根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例具体可以包括:

1)提供一显示界面,所述显示界面上显示了多个测试设备及每个测试设备的状态信息;

2)接收用户选定的测试设备对应的选项;

3)根据所选定的选项,将对应的测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

根据所选定的选项,将对应的测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器,以通过第二服务器控制对应的测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

s24:接收多个第二服务器上报的多个测试报告,并将所述多个测试报告汇总成一个最终的测试报告。

本实施例中,测试设备执行完测试用例后,自动测试脚本会自动生成测试报告,并将所生成的测试报告上报给对应的第二服务器。一个测试设备执行完一条测试用例后自动测试脚本生成一个测试报告。第二服务器每接收到对应的测试设备上报的测试报告后,将所述测试报告上报给第一服务器。

所述测试报告可以包括:测试用例的名称、测试用例的编号、测试结果以及运行时间。所述测试结果包括:测试成功或测试失败。一个测试报告中只会包括一种测试结果,即测试报告中的测试结果要么为测试成功,要么为测试失败。可以用不同的标识表示不同的测试结果,例如,用第一标识1表示测试结果为测试成功,用第二标识0表示测试结果为测试失败。测试结果可以以json的方式保存。

综上所述,本发明实施例中所述的用于测试的多设备管理方法,通过设置一个第一服务器及连接第一服务器的多个第二服务器,每一个第二服务器还可以部署多个测试设备,通过第一服务器控制多个测试设备执行并行测试,不但实现了自动化的测试,降低人工测试工作量,降低人工成本;另外,根据实时更新第一服务器中的测试设备的状态信息,并根据测试设备的状态信息控制测试测试设备执行测试用例,从而在分配测试任务时,能够挑选出成功连接第二服务器且当前的测试任务较少的测试设备,避免将测试任务分配给了没有成功连接第二服务器的测试设备,或者将测试认为分配给了测试任务较多的测试设备,有效且合理的利用了空闲的测试设备的资源,提高了测试的效率;最后,本发明的测试方式不受测试设备的通信网络地域限制,与被测应用程序的真实运行环境非常接近,提高了测试质量。

实施例三

图3是本发明实施例三提供的用于测试的多设备管理方法的流程图。

在本实施例中,所述用于测试的多设备管理方法可以应用于第二服务器中,对于需要进行用于测试的多设备管理的第二服务器,可以直接在第二服务器上集成本发明的方法所提供的用于测试的多设备管理的功能,或者以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在第二服务器上。

如图3所示,所述用于测试的多设备管理方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s31:接收第一服务器发送的待测应用程序及所述待测应用程序的自动测试脚本。

测试人员提供并上传待测应用程序的安装包,同时将对应待测应用程序的自动测试脚本打包后上传至第一服务器。第一服务器将待测应用程序的安装包及待测应用程序的自动测试脚本分发给多个第二服务器。第二服务器接收第一服务器发送的待测应用程序及所述待测应用程序的自动测试脚本。

s32:将所述待测应用程序及所述待测应用程序的自动测试脚本分发给所述多个测试设备,使得所述多个测试设备安装所述待测应用程序及所述待测应用程序的自动测试脚本。

第二服务器将待测应用程序的安装包及待测应用程序的自动测试脚本分发给多个测试设备,以通知多个测试设备下载所述待测应用程序的安装包及所述待测应用程序的自动测试脚本并完成待测应用程序的安装,同时安装并运行待测应用程序的自动测试脚本。

所述待测应用程序的自动测试脚本是测试人员根据待测应用程序的功能所编写的程序代码,该程序代码可以被测试设备自动运行,用于自动测试被测应用程序的各项功能。自动测试脚本运行后可以提供测试结果,自动测试脚本可以直接利用测试结果生成测试报告。

s33:每隔预设时间段获取每个测试设备的状态信息,并将所述状态信息上报至所述第一服务器。

第二服务器每隔预设时间段,例如,1分钟,获取对应的多个测试设备的每个测试设备的状态信息,并将所述状态信息上报至第一服务器。

优选的,第二服务器在每隔预设时间段获取到测试设备的状态信息之后,所述方法还可以包括:判断每个测试设备的状态信息是否发生改变;当确定测试设备的状态信息发生改变时,将状态信息发生改变的测试设备的状态信息上报至第一服务器。

将状态信息发生改变的测试设备的状态信息上报至第一服务器,以供第一服务器更新所述设备状态信息表中对应的测试设备的状态信息。

s34:接收到所述第一服务器发送的所述测试指令时,根据所述测试指令控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

第二服务器接收到第一服务器发送的所述测试指令时,控制测试设备执行所述待测应用程序的自动测试脚本中的测试用例。具体地,第二服务器接收到第一服务器发送的所述测试指令时,根据所述测试指令中的测试设备的id号及对应的第二服务器的ip地址控制对应的测试设备执行测试用例。

s35:接收到多个测试设备发送的多个测试报告时,将所述多个测试报告上报给所述第一服务器。

测试设备执行完测试用例后,生成一个测试报告,并将所述测试报告发送至第二服务器。第二服务器接收到测试报告后上报所述测试报告至第一服务器。第一服务器接收多个测试报告并汇总成一个最终的测试报告。

综上所述,本发明实施例中所述的用于测试的多设备管理方法,通过设置一个第一服务器及连接第一服务器的多个第二服务器,每一个第二服务器还可以部署多个测试设备,通过第一服务器控制多个测试设备执行并行测试,实现了自动化的测试,降低人工测试工作量,降低人工成本。

上述图2-3详细介绍了本发明的用于测试的多设备管理方法,下面结合第4~7图,分别对实现所述用于测试的多设备管理方法的软件装置的功能模块以及实现所述用于测试的多设备管理方法的硬件装置架构进行介绍。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例四

参阅图4所示,是本发明实施例四提供的用于测试的多设备管理装置的结构图。

在一些实施例中,所述用于测试的多设备管理装置30运行于第一服务器中。所述第一服务器通过网络连接了多个第二服务器,每个第二服务器部署了多个测试设备。所述用于测试的多设备管理装置30可以包括多个由程序代码段所组成的功能模块。所述用于测试的多设备管理装置30中的各个程序段的程序代码可以存储于第一服务器的存储器中,并由所述至少一个处理器所执行,以执行(详见图2描述)对用于测试的多设备进行管理。

本实施例中,所述用于测试的多设备管理装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:分发模块301、获取模块302、控制模块303及接收模块304。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

分发模块301,用于将待测应用程序及对应所述待测应用程序的自动测试脚本分发给多个第二服务器,使得第二服务器通知多个测试设备安装所述待测应用程序及对应所述待测应用程序的自动测试脚本。

本实施例中,测试人员提供并上传待测应用程序的安装包,同时将对应待测应用程序的自动测试脚本打包后上传至第一服务器。分发模块301将待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本分发给多个第二服务器,第二服务器将待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本分发给多个测试设备,以通知多个测试设备下载所述待测应用程序的安装包及对应打包的待测应用程序的自动测试脚本并完成待测应用程序的安装,同时安装并运行待测应用程序的自动测试脚本。

所述待测应用程序的自动测试脚本是测试人员根据待测应用程序的功能所编写的程序代码,该程序代码可以被测试设备自动运行,用于自动测试被测应用程序的各项功能。自动测试脚本运行后可以提供测试结果,自动测试脚本可以直接利用测试结果生成测试报告。

获取模块302,用于当接收到对所述待测应用程序的自动测试的测试指令时,获取所述多个测试设备的状态信息。

本实施例中,可以在第一服务器上设置启动测试指令的功能开关,通过所述功能开关触发启动测试指令。所述功能开关可以是虚拟图标,也可以是语音指令。当用户触摸所述虚拟图标或者发出预设语音时,第一服务器侦测到所述虚拟图标接收到了触摸的信号或者第一服务器接收到所述预设语音时,认为触发了启动测试指令的功能开关,开始测试。

获取模块302接收到对所述待测应用程序的自动测试的测试指令时,可以从预先存储于所述第一服务器中的设备状态信息表中获取所述多个测试设备中的每一个测试设备的状态信息。所述设备状态信息表中记录有每一个测试设备的状态信息,所述状态信息可以包括:测试设备的标识号(id)、对应的第二服务器的互联网协议(internetprotocol,ip)地址、连接状态及当前的测试用例数。所述测试设备的标识号为测试设备唯一的身份标识,例如,可以为国际移动电话设备识别码(internationalmobileequipmentidentity,imei)。

所述连接状态可以包括:第一连接状态和第二连接状态,其中,第一连接状态可以为1,用以表示测试设备已成功连接了第二服务器,第二连接状态可以为0,用以表示测试设备未连接上第二服务器。所述测试用例数是指测试设备当前正在执行的测试用例数与待执行的测试用例数之和。应当理解的是,一台测试设备当前正在执行的测试用例数只可能为1或为0,若当前正在执行的测试用例数为1,则表示测试设备当前正在执行测试用例,可能还有一个或多个待执行的测试用例处于执行队列中。若当前正在执行的测试用例数为0,则表示测试设备当前没有执行任何测试用例,待执行的测试用例数必然为0,即测试设备当前处于空闲状态,且不可能还有待执行的测试用例处于执行队列中。

优选的,所述获取模块302还可以用于:每隔预设时间段获取每个第二服务器发送的对应的测试设备的状态信息,并更新所述第一服务器中的设备状态信息表。

本实施例中,每个所述第二服务器可以每隔所述预设时间段获取对应的多个测试设备的每个测试设备的状态信息,并判断每个测试设备的状态信息是否发生改变,当确定测试设备的状态信息发生改变时,将状态信息发生改变的测试设备的状态信息上报至第一服务器,以供第一服务器更新所述设备状态信息表中对应的测试设备的状态信息。所述预设时间段,可以为1分钟。通过每隔预设时间段第二服务器获取对应的测试设备的状态信息并将发生改变的状态信息同步上报至第一服务器,有助于第一服务器在第一时间获知测试设备的最新的状态信息,便于后续根据所述状态信息为对应的测试设备分配测试任务。

控制模块303,用于根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

所述根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例具体可以包括:

1)获取多个测试设备中的连接状态为第一连接状态对应的测试设备,作为第一备选测试设备;

获取具有第一连接状态对应的测试设备可以将与第二服务器成功连接的测试设备挑选出来,排除掉具有第二连接状态对应的测试设备,即剔除掉与第二服务器未连接成功的测试设备。

2)获取所述第一备选测试设备中当前的测试用例数小于预设测试用例数阈值对应的测试设备,作为第二备选测试设备;

所述预设测试用例数阈值为预先设置的测试用例的临界值。当测试设备当前的测试用例数超过所述预设测试用例数阈值时,认为测试设备当前的测试任务较多,不宜再分配测试任务。当测试设备当前的测试用例数小于或者等于所述预设测试用例数阈值时,认为测试设备当前的测试任务较少,可以再分配测试任务。

3)第一服务器将所述第二备选测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

第一服务器将所述第二备选测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器,以通过第二服务器控制对应的测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

所述待测应用程序的自动测试脚本中包括了多个测试用例,每个测试用例可以包括多个测试步骤,第一服务器通过第二服务器控制对应的测试设备执行所述测试用例中的测试步骤。

在其他实施例中,所述根据所述状态信息通过多个第二服务器控制多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例具体可以包括:

1)提供一显示界面,所述显示界面上显示了多个测试设备及每个测试设备的状态信息;

2)接收用户选定的测试设备对应的选项;

3)根据所选定的选项,将对应的测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器。

根据所选定的选项,将对应的测试设备的id号及对应的第二服务器的ip地址发送给对应的第二服务器,以通过第二服务器控制对应的测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

接收模块304,用于接收多个第二服务器上报的多个测试报告,并将所述多个测试报告汇总成一个最终的测试报告。

本实施例中,测试设备执行完测试用例后,自动测试脚本会自动生成测试报告,并将所生成的测试报告上报给对应的第二服务器。一个测试设备执行完一条测试用例后自动测试脚本生成一个测试报告。第二服务器每接收到对应的测试设备上报的测试报告后,将所述测试报告上报给第一服务器。

所述测试报告可以包括:测试用例的名称、测试用例的编号、测试结果以及运行时间。所述测试结果包括:测试成功或测试失败。一个测试报告中只会包括一种测试结果,即测试报告中的测试结果要么为测试成功,要么为测试失败。可以用不同的标识表示不同的测试结果,例如,用第一标识1表示测试结果为测试成功,用第二标识0表示测试结果为测试失败。测试结果可以以json的方式保存。

综上所述,本发明实施例中所述的用于测试的多设备管理装置,通过设置一个第一服务器及连接第一服务器的多个第二服务器,每一个第二服务器还可以部署多个测试设备,通过第一服务器控制多个测试设备执行并行测试,不但实现了自动化的测试,降低人工测试工作量,降低人工成本;另外,根据实时更新第一服务器中的测试设备的状态信息,并根据测试设备的状态信息控制测试测试设备执行测试用例,从而在分配测试任务时,能够挑选出成功连接第二服务器且当前的测试任务较少的测试设备,避免将测试任务分配给了没有成功连接第二服务器的测试设备,或者将测试认为分配给了测试任务较多的测试设备,有效且合理的利用了空闲的测试设备的资源,提高了测试的效率;最后,本发明的测试方式不受测试设备的通信网络地域限制,与被测应用程序的真实运行环境非常接近,提高了测试质量。

实施例五

参阅图5所示,是本发明实施例五提供的用于测试的多设备管理装置的结构图。

在一些实施例中,所述用于测试的多设备管理装置40运行于第二服务器中。所述第一服务器通过网络连接了多个第二服务器,每个第二服务器部署了多个测试设备。所述用于测试的多设备管理装置40可以包括多个由程序代码段所组成的功能模块。所述用于测试的多设备管理装置40中的各个程序段的程序代码可以存储于第一服务器的存储器中,并由所述至少一个处理器所执行,以执行(详见图3描述)对用于测试的多设备进行管理。

本实施例中,所述用于测试的多设备管理装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块401、分发模块402、获取模块403、控制模块404及上报模块405。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

接收模块401,用于接收第一服务器发送的待测应用程序及所述待测应用程序的自动测试脚本。

测试人员提供并上传待测应用程序的安装包,同时将对应待测应用程序的自动测试脚本打包后上传至第一服务器。第一服务器将待测应用程序的安装包及待测应用程序的自动测试脚本分发给多个第二服务器。第二服务器接收第一服务器发送的待测应用程序及所述待测应用程序的自动测试脚本。

分发模块402,用于将所述待测应用程序及所述待测应用程序的自动测试脚本分发给对应的多个测试设备,使得所述多个测试设备安装所述待测应用程序及所述待测应用程序的自动测试脚本。

第二服务器将待测应用程序的安装包及待测应用程序的自动测试脚本分发给多个测试设备,以通知多个测试设备下载所述待测应用程序的安装包及所述待测应用程序的自动测试脚本并完成待测应用程序的安装,同时安装并运行待测应用程序的自动测试脚本。

所述待测应用程序的自动测试脚本是测试人员根据待测应用程序的功能所编写的程序代码,该程序代码可以被测试设备自动运行,用于自动测试被测应用程序的各项功能。自动测试脚本运行后可以提供测试结果,自动测试脚本可以直接利用测试结果生成测试报告。

获取模块403,用于每隔预设时间段获取每个测试设备的状态信息,并将所述状态信息上报至所述第一服务器。

第二服务器每隔预设时间段,例如,1分钟,获取对应的多个测试设备的每个测试设备的状态信息,并将所述状态信息上报至第一服务器。

优选的,第二服务器在每隔预设时间段获取到测试设备的状态信息之后,所述方法还可以包括:判断每个测试设备的状态信息是否发生改变,当确定测试设备的状态信息发生改变时,将状态信息发生改变的测试设备的状态信息上报至第一服务器。

将状态信息发生改变的测试设备的状态信息上报至第一服务器,以供第一服务器更新所述设备状态信息表中对应的测试设备的状态信息。

控制模块404,用于接收到所述第一服务器发送的测试指令时,根据所述测试指令控制所述多个测试设备执行所述待测应用程序的自动测试脚本中的测试用例。

第二服务器接收到第一服务器发送的所述测试指令时,控制测试设备执行所述待测应用程序的自动测试脚本中的测试用例。具体地,第二服务器接收到第一服务器发送的所述测试指令时,根据所述测试指令中的测试设备的id号及对应的第二服务器的ip地址控制对应的测试设备执行测试用例。

上报模块405,用于接收到多个测试设备发送的多个测试报告时,将所述多个测试报告上报给所述第一服务器。

测试设备执行完测试用例后,生成一个测试报告,并将所述测试报告发送至第二服务器。第二服务器接收到测试报告后上报所述测试报告至第一服务器。第一服务器接收多个测试报告并汇总成一个最终的测试报告。

综上所述,本发明实施例中所述的用于测试的多设备管理装置,通过设置一个第一服务器及连接第一服务器的多个第二服务器,每一个第二服务器还可以部署多个测试设备,通过第一服务器控制多个测试设备执行并行测试,实现了自动化的测试,降低人工测试工作量,降低人工成本。

实施例六

参阅图6所示,为本发明实施例六提供的第一服务器的结构示意图。在本发明较佳实施例中,所述第一服务器3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。

本领域技术人员应该了解,图6示出的第一服务器的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述第一服务器3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述第一服务器3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述第一服务器3还可包括客户客户设备,所述客户客户设备包括但不限于任何一种可与客户客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述第一服务器3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述第一服务器3中的用于测试的多设备管理装置30,并在第一服务器3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述第一服务器3的控制核心(controlunit),利用各种接口和线路连接整个第一服务器3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行第一服务器3的各种功能和处理数据,例如执行用于测试的多设备管理的功能。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。

尽管未示出,所述第一服务器3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述第一服务器3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图4,所述至少一个处理器32可执行所述第一服务器3的操作装置以及安装的各类应用程序(如所述的用于测试的多设备管理装置30)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图4中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到用于测试的多设备管理的目的。

在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现多设备的应用程式的测试。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。

实施例七

参阅图7所示,为本发明实施例七提供的第二服务器的结构示意图。在本发明较佳实施例中,所述第二服务器4包括存储器41、至少一个处理器42、至少一条通信总线43及收发器44。

本领域技术人员应该了解,图7示出的第二服务器的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述第二服务器4还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述第二服务器4包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述第二服务器4还可包括客户客户设备,所述客户客户设备包括但不限于任何一种可与客户客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述第二服务器4仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器41用于存储程序代码和各种数据,例如安装在所述第二服务器4中的用于测试的多设备管理装置40,并在第二服务器4的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器41包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器42可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器42是所述第二服务器4的控制核心(controlunit),利用各种接口和线路连接整个第二服务器4的各个部件,通过运行或执行存储在所述存储器41内的程序或者模块,以及调用存储在所述存储器41内的数据,以执行第二服务器4的各种功能和处理数据,例如执行用于测试的多设备管理的功能。

在一些实施例中,所述至少一条通信总线43被设置为实现所述存储器41以及所述至少一个处理器42等之间的连接通信。

尽管未示出,所述第二服务器4还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器42逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述第二服务器4还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图5,所述至少一个处理器42可执行所述第二服务器4的操作装置以及安装的各类应用程序(如所述的用于测试的多设备管理装置40)、程序代码等,例如,上述的各个模块。

所述存储器41中存储有程序代码,且所述至少一个处理器42可调用所述存储器41中存储的程序代码以执行相关的功能。例如,图5中所述的各个模块是存储在所述存储器41中的程序代码,并由所述至少一个处理器42所执行,从而实现所述各个模块的功能以达到用于测试的多设备管理的目的。

在本发明的一个实施例中,所述存储器41存储多个指令,所述多个指令被所述至少一个处理器42所执行以实现多设备的应用程式的测试。

具体地,所述至少一个处理器42对上述指令的具体实现方法可参考图3对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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