CN105426298A - 一种基于adb的软件测试方法和系统 - Google Patents
一种基于adb的软件测试方法和系统 Download PDFInfo
- Publication number
- CN105426298A CN105426298A CN201410422930.6A CN201410422930A CN105426298A CN 105426298 A CN105426298 A CN 105426298A CN 201410422930 A CN201410422930 A CN 201410422930A CN 105426298 A CN105426298 A CN 105426298A
- Authority
- CN
- China
- Prior art keywords
- software
- task
- test
- control server
- adb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于ADB的软件测试方法和系统,该方法包括:任务服务器向控制服务器发送软件测试任务;控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端;Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。任务服务器经由控制服务器,一次向多个Android终端发送软件测试任务,能够对控制服务器上连接的多个Android终端进行测试,测试的样本的数量多,节约测试时间。
Description
技术领域
本发明涉及软件测试领域,尤其涉及一种基于ADB的软件测试方法和系统。
背景技术
因为Android系统的开放性,Android终端的机型众多,为了保证为Android系统开发的应用软件在Android系统中都能正常运行,需要在各种机型上进行测试。
但是对于任何一个测试团队,所能够准备的Android终端都是有限的,这样必然导致测试的覆盖率不全,特别是在进行软件兼容性测试时,测试的样本数量不够;另外,测试人员在多个Android终端上分别进行测试,大量重复性的操作,耗费时间。
发明内容
本发明提出了一种基于ADB的软件测试方法和系统,其通过任务服务器向控制服务器发送软件测试任务,控制服务器通过ADB将软件测试任务发送到Android终端后开始测试,实现了向多个测试对象快速下发软件测试任务,节约了测试时间。
为实现上述设计,本发明采用以下技术方案:
一方面采用一种基于ADB的软件测试方法,包括:
任务服务器向控制服务器发送软件测试任务;
控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端;
Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
另一方面采用一种基于ADB的软件测试系统,包括任务服务器、控制服务器和Android终端;
所述任务服务器,用于向控制服务器发送软件测试任务;
所述控制服务器,用于接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端;
所述Android终端,用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
本发明的有益效果在于:任务服务器向控制服务器发送软件测试任务;控制服务器通过ADB将软件测试任务发送到Android终端;Android终端收到所述软件测试任务后执行软件测试任务,任务服务器经由控制服务器,一次向多个Android终端发送软件测试任务,能够对控制服务器上连接的多个Android终端进行测试,测试的样本的数量多,节约测试时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明实施例提供的一种基于ADB的软件测试方法的第一个实施例的方法流程图。
图2是本发明实施例提供的一种基于ADB的软件测试方法的第二个实施例的方法流程图。
图3是本发明实施例提供的一种基于ADB的软件测试方法的第三个实施例的方法流程图。
图4是本发明实施例提供的一种基于ADB的软件测试系统的第一个实施例的结构方框图。
图5是本发明实施例提供的一种基于ADB的软件测试系统的第三个实施例的结构方框图。
图6是本发明实施例所涉及的设备结构图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其是本发明实施例提供的基于ADB的软件测试方法的第一个实施例的方法流程图。本实施例的基于ADB的软件测试方法主要应用于各种为Android系统开发的应用软件的测试,能够一次为多个Android终端,例如Android手机、Android平板电脑、Android智能电视等。
如图1所示,该基于ADB的软件测试方法,包括:
步骤S101:任务服务器向控制服务器发送软件测试任务。
在现有的软件测试过程中,测试人员一次只能通过计算机对一个Android终端进行操作,虽然将被测软件的apk和自动化测试脚本的apk安装到Android终端后即可进行自动化测试,但是对每个Android终端都单独进行操作依然会在软件测试,特别是在进行软件兼容性测试耗费大量的人工时间。
而任务服务器向控制服务器则实现了任务的批量派发,直接通过网络向连有Android终端的控制服务器发送软件测试任务,通过网络对多个Android终端进行测试管理,而无需将所有的待测Android终端集中到一起进行测试,能够为软件测试提供更多的测试样本。
步骤S102:控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端。
ADB(AndroidDebugBridge,安卓调试桥)是AndroidSDK(SoftwareDevelopmentKit,软件开发工具包))里的一个工具,用这个工具可以直接操作管理Android模拟器或者真实的Andriod终端。它的主要功能有:运行设备的shell、管理模拟器或Andriod终端的端口映射、计算机和Andriod终端之间上传/下载文件、将本地apk软件安装至模拟器或Android终端。
在本实施例中,控制服务器接收到软件测试任务,也就是被测软件的apk和自动化测试脚本的apk之后,会通过ADB将两个文件发送到Andriod终端。本方案中设置有多个控制服务器,每个控制服务器相当于现有的软件测试中与Android终端相连的计算机,两者不同之处在于,现有的软件测试过程中,测试人员需要对每台计算机进行操作,以分别在每台Android终端上启动软件测试任务;而本方案中的控制服务器在接收到软件测试任务之后,无需对控制服务器手动操作以在Android终端中启动软件测试任务,控制服务器会将软件测试任务直接发送到Android终端。以400个测试样本为例,现有的测试方案中,一台计算机上假设连接2个Android终端,那么400个样本至少需要对200台计算机操作总共400次以启动软件测试任务,这其中还不算将软件测试任务拷贝到计算机上的时间。而在本方案中,400个测试样本只需在任务服务器进行一次派发即可,通过控制服务器在Android终端上启动软件测试任务。
根据ADB的具体工作方式,将软件测试任务发送到Android终端有两种实现方式,一种是将软件测试任务对应的两个apk通过ADB以文件的形式传输到Android终端,再有Android终端自行安装;另一种是直接将两个apk从任务服务器通过ADB安装到Android终端。相对而言,后一种实现方式更为简洁。
步骤S103:Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
综上所述,本实施例由任务服务器向控制服务器发送软件测试任务;控制服务器通过ADB将软件测试任务发送到Android终端;Android终端收到所述软件测试任务后执行软件测试任务,任务服务器经由多个控制服务器,一次向多个Android终端发送软件测试任务;任务服务器、控制服务器和Android终端组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器,一次实现对多个位于最下端的Android终端的任务派发,在控制服务器和Android终端质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。
请参考图2,其是本发明实施例提供的基于ADB的软件测试方法的第二个实施例的方法流程图。本实施例与基于ADB的软件测试方法的第一个实施例的主要区别在于,进一步说明了任务服务器向控制服务器发送软件测试任务的具体过程,在Android终端进行软件测试的具体过程。
该基于ADB的软件测试方法,包括:
步骤S201:任务服务器获取控制服务器的ADB的连接状态,向连接状态为连接的控制服务器发送软件测试任务。
任务服务器通过网络端口访问控制服务器,获取控制服务器的ADB的连接状态,如果ADB的连接状态为连接,说明该控制服务器连接的Android终端可以正常接收软件测试任务进行测试;否则,说明该控制服务器上的Android终端没有连接或者连接故障,其接收软件测试测试任务依然无法进行软件测试任务的下发。故任务服务器先行检测控制服务器的ADB的连接状态,如果ADB的连接状态为连接,则向控制服务器发送软件测试任务。因为相比于软件测试任务的发送所需要的数据传输量,获取ADB的连接状态所需的数据传输率要小得多,只向ADB的连接状态为连接的控制服务器发送任务能够减少无效的数据传输,提高数据传输效率。
步骤S202:控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端。
Android终端通过USB接口连接到控制服务器之后,Android终端的ADB接口,与控制服务器建立Socket连接,采用ADB接口支持的通信协议,与控制服务器之间进行信令交互及数据传输,完成软件测试任务的发送。
步骤S203:Android终端收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本。
Android终端基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本包括两种实现方式。ADB的功能包括:计算机和Andriod终端之间上传/下载文件、将本地apk软件安装至模拟器或Android终端。可以基于这两种功能对软件测试任务进行接收安装。
第一种实现方式:Android终端接收软件测试任务的过程实际上就是通过ADB接收软件测试任务的两个apk文件的过程,此时利用的ADB的在计算机和Android终端之间上传/下载文件的功能。Android终端在接收到apk文件之后安装两个apk文件即可。
第二种实现方式:Android终端接收软件测试任务的过程,实际上就是通过ADB直接从控制服务器向Android终端安装两个apk文件的过程,此时利用的ADB的将本地apk软件安装至模拟器或Android终端的功能。Android终端无需接收安装文件即可直接完成任务接收和两个apk文件的安装。
步骤S204:通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试。
Android测试环境的核心是一个AndroidInstrumentation框架,在这个框架下,自动化测试脚本可以精确控制被测软件。使用AndroidInstrumentation,可以在被测软件之前,创建模拟的系统对象,如Context;控制被测软件apk的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。AndroidInstrumentation框架通过将被测软件和自动化测试脚本运行在同一个进程来实现这些功能。通过在测试工程的manifest文件中添加<instrumentation>元素来指定要测试的应用程序。这个元素的特性指明了要测试的应用程序包名,以及告诉Android系统如何运行测试程序。
在Android系统中,自动化测试脚本的apk也是Android程序。在AndroidInstrumentation框架下启动自动化测试脚本,实现对被测软件的自动化测试;在测试过程中,AndroidInstrumentation会检查被测软件的运行状态。
步骤S205:生成自动化测试的测试结果。
在软件测试任务完成后,根据被测软件在自动化测试过程中的运行状态生成测试结果,具体的测试结果的生成方式现有技术中比较公知,在此不做赘述。
综上所述,本实施例进一步说明了任务服务器向控制服务器发送软件测试任务的具体过程,在Android终端进行软件测试的具体过程。由任务服务器向控制服务器发送软件测试任务;控制服务器通过ADB将软件测试任务发送到Android终端;Android终端收到所述软件测试任务后执行软件测试任务,任务服务器经由多个控制服务器,一次向多个Android终端发送软件测试任务;任务服务器、控制服务器和Android终端组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器,一次实现对多个位于最下端的Android终端的任务派发,在控制服务器和Android终端质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。进一步而言,任务服务器在获得控制服务器的ADB的连接状态之后,根据ADB的连接状态选择是否发送软件测试任务,减少了无效数据的传输,提高了数据传输的效率;在Android终端进行软件测试的具体过程也体现了整个测试过程,在AndroidInstrumentation的框架下实现自动化测试的整个过程,减少了测试过程中的人工参与,节约了人工测试时间。
请参考图3,其是本发明一种实施例提供的基于ADB的软件测试方法的第三个实施例的方法流程图。本实施例与基于ADB的软件测试方法的第二个实施例的主要区别在于,进一步说明了任务服务器获取软件测试任务的方式以及Android终端软件测试任务之后的后续操作。
该基于ADB的软件测试方法,包括:
步骤S301:所述任务服务器接收通过网络创建的软件测试任务。
在本实施例中,任务服务器和控制服务器处于同一局域网。进行这样的布局设计是为了让任务服务器获取控制服务器的ADB的连接状态更为方便,在同一局域网中,可以对任务服务器和控制服务器的权限进行设置,使得任务服务器可以自由获取各个控制服务器的ADB的连接状态。
以一个软件开发部门为例,整个软件开发部门内的电脑组成一个局域网,以整个软件开发部门的开发人员的Android终端作为测试对象,在开发人员将自己Android终端连接到自己的工作计算机之后,每台工作计算机就相当于一个控制服务器,再在局域网中设置一个权限较高的计算机作为任务服务器,该计算机的较高的权限在于可以访问控制服务器的ADB的连接状态并向控制服务器主动发送软件测试任务。实际上,软件开发部门不再需要随时更新的Android终端以获取更多的测试样本,直接用内部开发人员持有的Android终端即可完成对多个Android终端的测试,特别是软件兼容性测试。这样的布局方式也能够尽快将软件测试任务逐级发送。
如果任务服务器和控制服务器仅仅用公共网络连接,也就是说任务服务器需要主动请求控制服务器的ADB的连接状态的获取权限,对于几百甚至上千个Android终端而言,这可能需要向同等数量的控制服务器请求权限,并且请求还不一定获得成功,同样也会耗费大量的时间。
通过任务服务器的设置,只需向任务服务器提交软件测试任务,直接在局域网内即可快速派发。具体的向任务服务器提交软件测试任务,可以是控制服务器通过局域网向任务服务器提交,可以是局域网外的计算机通过公共网络向任务服务器提交,这是本步骤中所说的任务服务器接收通过网络创建的软件测试任务的两种方式。更进一步的,还可以是测试人员直接对任务服务器进行操作在任务服务器上创建的软件测试任务。
步骤S302:任务服务器获取控制服务器的ADB的连接状态,向连接状态为连接的控制服务器发送软件测试任务。
通过任务服务器向局域网内的控制服务器发送软件任务,既避免了外部的计算机直接访问控制服务器导致的安全隐患,也避免了任务服务器向公共网络中的控制服务器发送软件测试任务请求授权的问题。
步骤S303:控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端。
步骤S304:Android终端收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本。
步骤S305:通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试。
步骤S306:生成自动化测试的测试结果。
具体的测试过程在上一实施例中已有详细描述,在此不再做进一步说明。
步骤S307:卸载被测软件和自动化测试脚本。
因为被测软件和自动化测试脚本仅仅是用作测试,还不是正式的软件产品,在测试完成后需要将其删除,具体的删除操作在编写自动化测试脚本apk时即已写入其中,当正常的测试结束后,自动话测试脚本apk中记录的自动操作会自行删除被测软件和自动化测试脚本。
需要说明的是,基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本有两种实现方式,一种是控制服务器通过ADB直接向Android终端安装,另一种是控制服务器通过ADB将两个apk文件发送到Android终端后由Android终端自行安装。对于前一种安装方式,控制服务器在安装结束后直接删除两个apk文件;对于后一种安装方式,在自动化测试脚本apk中还编入有删除两个apk文件的操作,具体可以在安装结束后或正常的测试结束后完成。
步骤S308:Android终端通过控制服务器向测试结果数据库发送测试结果。
Android终端通过控制服务器向测试结果数据库发送测试结果,这一测试结果数据库可以设置于任务服务器中,也可以设置于创建软件测试任务的终端。
测试结果向控制服务器的发送过程可以通过利用ADB的计算机和Andriod终端之间上传/下载文件的功能实现,还可以直接通过USB传输实现。
步骤S309:测试结果数据库服务器生成测试结果的统计结果,在统计结果GUI界面展示统计结果。
为了更好地呈现测试结果,对测试结果进行分析,根据测试结果生成统计结果。不同的测试目标有不同的统计侧重点,例如软件压力测试、软件兼容性测试等测试过程类似,统计侧重点各不相同。具体的统计过程和展示过程不是本方案的创新重点,在此不做进一步说明。
本实施例进一步说明了任务服务器获取软件测试任务的方式以及Android终端软件测试任务之后的后续操作。由任务服务器向控制服务器发送软件测试任务;控制服务器通过ADB将软件测试任务发送到Android终端;Android终端收到所述软件测试任务后执行软件测试任务,任务服务器经由多个控制服务器,一次向多个Android终端发送软件测试任务;任务服务器、控制服务器和Android终端组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器,一次实现对多个位于最下端的Android终端的任务派发,在控制服务器和Android终端质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。进一步而言,任务服务器和控制服务器设置于同一局域网内,任务服务器向控制服务器派发软件测试任务时,直接用较高权限获取控制服务器的ADB的连接状态,向处于连接中的控制服务器派发任务,实现了任务的快速派发,减少无效的数据传输。软件测试任务完成后的后续操作能够为测试人员提供更大的方便,也能为Android终端的用户消除软件测试对其Android终端的测试痕迹。
以下为本发明实施例提供的基于ADB的软件测试系统的实施例。基于ADB的软件测试系统的实施例与上述的基于ADB的软件测试方法的实施例属于同一构思,基于ADB的软件测试系统的实施例中未详尽描述的细节内容,可以参考上述基于ADB的软件测试方法实施例。
请参考图4,其是本发明实施例提供的基于ADB的软件测试系统的第一个实施例的结构方框图。该基于ADB的软件测试系统,包括任务服务器410、控制服务器420和Android终端430;
所述任务服务器410,用于向控制服务器420发送软件测试任务;
所述控制服务器420,用于接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端430;
所述Android终端430,用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
综上所述,上述各单元的协同工作,由任务服务器410向控制服务器420发送软件测试任务;控制服务器420通过ADB将软件测试任务发送到Android终端430;Android终端430收到所述软件测试任务后执行软件测试任务,任务服务器410经由多个控制服务器420,一次向多个Android终端430发送软件测试任务;任务服务器410、控制服务器420和Android终端430组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器410,一次实现对多个位于最下端的Android终端430的任务派发,在控制服务器420和Android终端430质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。
以下是本发明实施例提供的基于ADB的软件测试系统的第二个实施例。本实施例与基于ADB的软件测试系统的第一个实施例的主要区别在于,进一步说明了任务服务器向控制服务器发送软件测试任务的具体过程,在Android终端进行软件测试的具体过程。
该基于ADB的软件测试系统,包括任务服务器410、控制服务器420和Android终端430;
所述任务服务器410,用于向控制服务器420发送软件测试任务;
所述控制服务器420,用于接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端430;
所述Android终端430,用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
优选地,所述向控制服务器420发送软件测试任务,具体为:
获取控制服务器420的ADB的连接状态,向连接状态为连接的控制服务器420发送软件测试任务。
优选地,所述软件测试任务包括被测软件的apk和自动化测试脚本的apk;
所述收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果,包括:
收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本;
通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试;
生成自动化测试的测试结果。
综上所述,本实施例中进一步说明了任务服务器410向控制服务器420发送软件测试任务的具体过程,在Android终端430进行软件测试的具体过程。由任务服务器410向控制服务器420发送软件测试任务;控制服务器420通过ADB将软件测试任务发送到Android终端430;Android终端430收到所述软件测试任务后执行软件测试任务,任务服务器410经由多个控制服务器420,一次向多个Android终端430发送软件测试任务;任务服务器410、控制服务器420和Android终端430组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器410,一次实现对多个位于最下端的Android终端430的任务派发,在控制服务器420和Android终端430质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。进一步而言,任务服务器410在获得控制服务器420的ADB的连接状态之后,根据ADB的连接状态选择是否发送软件测试任务,减少了无效数据的传输,提高了数据传输的效率;在Android终端430进行软件测试的具体过程也体现了整个测试过程,在AndroidInstrumentation的框架下实现自动化测试的整个过程,减少了测试过程中的人工参与,节约了人工测试时间。
请参考图5,其实本发明实施例提供的基于ADB的软件测试系统的第三个实施例的结构方框图。本实施例与基于ADB的软件测试方法的第二个实施例的主要区别在于,进一步说明了任务服务器获取软件测试任务的方式以及Android终端软件测试任务之后的后续操作。
如图所示,该种基于ADB的软件测试系统,包括任务服务器410、控制服务器420和Android终端430;
所述任务服务器410,用于向控制服务器420发送软件测试任务;
所述控制服务器420,用于接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端430;
所述Android终端430,用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
优选地,所述向控制服务器420发送软件测试任务,具体为:
获取控制服务器420的ADB的连接状态,向连接状态为连接的控制服务器420发送软件测试任务。
优选地,所述收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果,包括:
收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本;
通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试;
生成自动化测试的测试结果。
优选地,所述Android终端430还用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,卸载被测软件和自动化测试脚本。
优选地,所述Android终端430,还用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,通过控制服务器420向测试结果数据库发送测试结果。
优选地,还包括:
测试结果数据库服务器440,用于接收软件测试任务的测试结果,生成测试结果的统计结果,在统计结果GUI界面展示统计结果。
优选地,所述任务服务器410和控制服务器420处于同一局域网;
所述任务服务器410还用于向控制服务器420发送软件测试任务之前,接收通过网络创建的软件测试任务。
优选地,所述软件测试任务的测试内容为软件兼容性测试。
本实施例进一步说明了任务服务器410获取软件测试任务的方式以及Android终端430软件测试任务之后的后续操作。由任务服务器410向控制服务器420发送软件测试任务;控制服务器420通过ADB将软件测试任务发送到Android终端430;Android终端430收到所述软件测试任务后执行软件测试任务,任务服务器410经由多个控制服务器420,一次向多个Android终端430发送软件测试任务;任务服务器410、控制服务器420和Android终端430组成自上往下的级联结构,通过自上往下的任务派发方式,通过一个位于最上端的任务服务器410,一次实现对多个位于最下端的Android终端430的任务派发,在控制服务器420和Android终端430质检通过ADB快速实现软件测试任务的自动执行,测试的样本的数量多,节约测试时间。进一步而言,任务服务器410和控制服务器420设置于同一局域网内,任务服务器410向控制服务器420派发软件测试任务时,直接用较高权限获取控制服务器420的ADB的连接状态,向处于连接中的控制服务器420派发任务,实现了任务的快速派发,减少无效的数据传输。软件测试任务完成后的后续操作能够为测试人员提供更大的方便,也能为Android终端430的用户消除软件测试对其Android终端430的测试痕迹。
请参考图6,其是本发明实施例所涉及的设备结构方框图,该设备可以用于实施上述实施例中提出的基于ADB的软件测试方法,承载基于ADB的软件测试系统。具体来讲:
该设备包括多台计算机610和多台Android终端设备620。
所述多台计算机610通过网络相连,其中一台计算机610用于向其他计算机610发送软件测试任务,所述计算机610上设置有USB接口用于实现计算机610与Android终端设备620之间ADB的物理连接。
所述Android终端设备620,指装载有Android系统或基于Android系统开发的衍生系统,例如MIUI系统的智能终端设备,Android终端设备620通过USB接口与计算机610相连。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种基于ADB的软件测试方法,其特征在于,包括:
任务服务器向控制服务器发送软件测试任务;
控制服务器接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端;
Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
2.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述任务服务器向控制服务器发送软件测试任务,具体为:
任务服务器获取控制服务器的ADB的连接状态,向连接状态为连接的控制服务器发送软件测试任务。
3.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述软件测试任务包括被测软件的apk和自动化测试脚本的apk;
所述Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果,包括:
Android终端收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本;
通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试;
生成自动化测试的测试结果。
4.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,还包括:
卸载被测软件和自动化测试脚本。
5.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述Android终端收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,还包括:
Android终端通过控制服务器向测试结果数据库发送测试结果。
6.根据权利要求5所述的一种基于ADB的软件测试方法,其特征在于,所述Android终端通过控制服务器向测试结果数据库发送测试结果之后,还包括:
测试结果数据库服务器生成测试结果的统计结果,在统计结果GUI界面展示统计结果。
7.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述任务服务器和控制服务器处于同一局域网;
任务服务器向控制服务器发送软件测试任务之前,还包括:
所述任务服务器接收通过网络创建的软件测试任务。
8.根据权利要求1所述的一种基于ADB的软件测试方法,其特征在于,所述软件测试任务的测试内容为软件兼容性测试。
9.一种基于ADB的软件测试系统,其特征在于,包括任务服务器、控制服务器和Android终端;
所述任务服务器,用于向控制服务器发送软件测试任务;
所述控制服务器,用于接收所述软件测试任务并通过ADB将软件测试任务发送到Android终端;
所述Android终端,用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果。
10.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述向控制服务器发送软件测试任务,具体为:
获取控制服务器的ADB的连接状态,向连接状态为连接的控制服务器发送软件测试任务。
11.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述软件测试任务包括被测软件的apk和自动化测试脚本的apk;
所述收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果,包括:
收到所述软件测试任务后基于被测软件的apk和自动化测试脚本的apk,安装被测软件和自动化测试脚本;
通过AndroidInstrumentation启动自动化测试脚本,对被测软件进行自动化测试;
生成自动化测试的测试结果。
12.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述Android终端还用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,卸载被测软件和自动化测试脚本。
13.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述Android终端,还用于收到所述软件测试任务后执行软件测试任务,生成软件测试任务的测试结果之后,通过控制服务器向测试结果数据库发送测试结果。
14.根据权利要求13所述的一种基于ADB的软件测试系统,其特征在于,还包括:
测试结果数据库服务器,用于接收软件测试任务的测试结果,生成测试结果的统计结果,在统计结果GUI界面展示统计结果。
15.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述任务服务器和控制服务器处于同一局域网;
所述任务服务器还用于向控制服务器发送软件测试任务之前,接收通过网络创建的软件测试任务。
16.根据权利要求9所述的一种基于ADB的软件测试系统,其特征在于,所述软件测试任务的测试内容为软件兼容性测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422930.6A CN105426298B (zh) | 2014-08-25 | 2014-08-25 | 一种基于adb的软件测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422930.6A CN105426298B (zh) | 2014-08-25 | 2014-08-25 | 一种基于adb的软件测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426298A true CN105426298A (zh) | 2016-03-23 |
CN105426298B CN105426298B (zh) | 2019-05-10 |
Family
ID=55504516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410422930.6A Active CN105426298B (zh) | 2014-08-25 | 2014-08-25 | 一种基于adb的软件测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426298B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161134A (zh) * | 2015-04-21 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 移动终端自动化测试方法、装置及移动终端 |
CN106354629A (zh) * | 2016-08-19 | 2017-01-25 | 南京慕测信息科技有限公司 | 一种基于多级服务器的iOS系统移动应用自动测试系统的架构方法 |
CN106445827A (zh) * | 2016-10-18 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种检测应用程序的兼容性的系统及方法 |
CN106802866A (zh) * | 2017-01-23 | 2017-06-06 | 浙江大学 | 一种Android程序的执行路径的还原方法 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN107135390A (zh) * | 2017-05-08 | 2017-09-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种电视应用的自动化测试方法及系统 |
CN107783870A (zh) * | 2017-10-13 | 2018-03-09 | 郑州云海信息技术有限公司 | 一种服务器兼容性测试结果管理方法与系统 |
CN107885627A (zh) * | 2017-11-09 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种服务器自动化测试系统及方法 |
CN108123844A (zh) * | 2016-11-30 | 2018-06-05 | 上海前隆信息科技有限公司 | 跨网络分布式测试方法及系统 |
CN108932190A (zh) * | 2017-05-22 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 视频播放下载的测试方法、装置和计算机设备 |
CN109992494A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 一种自动化测试执行方法和装置 |
CN110971890A (zh) * | 2018-09-30 | 2020-04-07 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN111211940A (zh) * | 2019-12-31 | 2020-05-29 | 杭州迪普科技股份有限公司 | 一种物联网前端设备测试系统 |
CN113568791A (zh) * | 2021-07-14 | 2021-10-29 | 麒麟软件有限公司 | 一种基于多cpu架构的服务器操作系统自动化测试工具及方法 |
CN115314484A (zh) * | 2022-06-15 | 2022-11-08 | 广州九尾信息科技有限公司 | 一种基于mqtt协议的局域网安卓测试包自动分发装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833466A (zh) * | 2010-05-14 | 2010-09-15 | 华为终端有限公司 | 终端设备及其驱动程序的安装方法 |
CN103678132A (zh) * | 2013-12-18 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种应用软件云测试系统 |
CN103678093A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种自动化测试框架及测试方法 |
CN103713991A (zh) * | 2012-10-08 | 2014-04-09 | 腾讯科技(深圳)有限公司 | 一种在安卓设备上测试应用程序的方法和装置 |
CN103927255A (zh) * | 2013-01-16 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 基于云测试系统的软件测试方法、云测试系统及其客户端 |
-
2014
- 2014-08-25 CN CN201410422930.6A patent/CN105426298B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833466A (zh) * | 2010-05-14 | 2010-09-15 | 华为终端有限公司 | 终端设备及其驱动程序的安装方法 |
CN103678093A (zh) * | 2012-08-30 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种自动化测试框架及测试方法 |
CN103713991A (zh) * | 2012-10-08 | 2014-04-09 | 腾讯科技(深圳)有限公司 | 一种在安卓设备上测试应用程序的方法和装置 |
CN103927255A (zh) * | 2013-01-16 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 基于云测试系统的软件测试方法、云测试系统及其客户端 |
CN103678132A (zh) * | 2013-12-18 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种应用软件云测试系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161134A (zh) * | 2015-04-21 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 移动终端自动化测试方法、装置及移动终端 |
CN106354629A (zh) * | 2016-08-19 | 2017-01-25 | 南京慕测信息科技有限公司 | 一种基于多级服务器的iOS系统移动应用自动测试系统的架构方法 |
CN106445827A (zh) * | 2016-10-18 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种检测应用程序的兼容性的系统及方法 |
CN106445827B (zh) * | 2016-10-18 | 2019-10-15 | 上海斐讯数据通信技术有限公司 | 一种检测应用程序的兼容性的系统及方法 |
CN108123844A (zh) * | 2016-11-30 | 2018-06-05 | 上海前隆信息科技有限公司 | 跨网络分布式测试方法及系统 |
CN106802866B (zh) * | 2017-01-23 | 2019-12-10 | 浙江大学 | 一种Android程序的执行路径的还原方法 |
CN106802866A (zh) * | 2017-01-23 | 2017-06-06 | 浙江大学 | 一种Android程序的执行路径的还原方法 |
CN107135390A (zh) * | 2017-05-08 | 2017-09-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种电视应用的自动化测试方法及系统 |
CN107122306A (zh) * | 2017-05-15 | 2017-09-01 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108932190A (zh) * | 2017-05-22 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 视频播放下载的测试方法、装置和计算机设备 |
CN107783870A (zh) * | 2017-10-13 | 2018-03-09 | 郑州云海信息技术有限公司 | 一种服务器兼容性测试结果管理方法与系统 |
CN107885627A (zh) * | 2017-11-09 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种服务器自动化测试系统及方法 |
CN109992494A (zh) * | 2017-12-29 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 一种自动化测试执行方法和装置 |
CN110971890A (zh) * | 2018-09-30 | 2020-04-07 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN110971890B (zh) * | 2018-09-30 | 2022-04-19 | 青岛海尔多媒体有限公司 | 电视生产测试的方法、装置及计算机存储介质 |
CN111211940A (zh) * | 2019-12-31 | 2020-05-29 | 杭州迪普科技股份有限公司 | 一种物联网前端设备测试系统 |
CN113568791A (zh) * | 2021-07-14 | 2021-10-29 | 麒麟软件有限公司 | 一种基于多cpu架构的服务器操作系统自动化测试工具及方法 |
CN115314484A (zh) * | 2022-06-15 | 2022-11-08 | 广州九尾信息科技有限公司 | 一种基于mqtt协议的局域网安卓测试包自动分发装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105426298B (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426298A (zh) | 一种基于adb的软件测试方法和系统 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US10013330B2 (en) | Automated mobile application verification | |
CN102880532B (zh) | 以云端技术为基础的测试系统与方法 | |
CN111651366A (zh) | Sdk测试方法、装置、设备及存储介质 | |
CN104765678A (zh) | 对移动终端设备上的应用进行测试的方法及装置 | |
CN104679654A (zh) | 测试应用程序的方法、设备及系统 | |
CN105094783A (zh) | 安卓应用稳定性测试的方法及装置 | |
CN106933729A (zh) | 一种基于云平台的测试方法和系统 | |
CN104407980A (zh) | 移动应用自动化测试装置和方法 | |
CN103365770A (zh) | 移动终端软件测试系统及软件测试方法 | |
CN105120483B (zh) | 智能卡与移动终端兼容性的自动化测试方法及系统 | |
CN108509333A (zh) | 调试方法及装置 | |
CN109388569B (zh) | 远程检测客户端环境异常的方法、测试服务器及存储介质 | |
CN105573902A (zh) | 一种应用程序的测试方法及系统 | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
CN105607994A (zh) | 一种移动终端软件测试方法和系统 | |
CN104572227A (zh) | 一种基于安腾平台通过bmc刷新cpld fw方法 | |
Huang et al. | Remote mobile test system: a mobile phone cloud for application testing | |
US9117018B2 (en) | Method of debugging software and corresponding computer program product | |
CN105589928A (zh) | 用于分布式数据处理系统的模拟测试方法 | |
CN115184764A (zh) | 一种芯片测试方法、装置、电子设备及存储介质 | |
CN111651232A (zh) | 一机多控方法、装置、系统及电子设备 | |
CN111290937B (zh) | 一种基于混合云的可扩展的移动应用自动化测试平台 | |
CN108875368A (zh) | 一种安全检测方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |