发明内容
本发明实施方式提出一种智能终端软件包获取方法,从而提高测试效率。
本发明实施方式提出一种智能终端软件包获取装置,从而提高测试效率。
本发明实施方式提出一种智能终端软件包获取***,从而提高测试效率。
本发明实施方式的具体方案如下:
一种智能终端软件包获取方法,该方法包括:
接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;
根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;
当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
一种智能终端软件包获取装置,该装置包括接收单元、测试任务进程分配单元和安装包获取单元,其中:
接收单元,用于接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;
测试任务进程分配单元,用于根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;
安装包获取单元,用于当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
一种智能终端软件包获取***,包括上传装置、测试服务器和测试装置,其中测试服务器和测试装置位于网络侧:
上传装置,用于向测试服务器上传包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;
测试服务器,用于根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;
测试装置,用于运行测试任务进程,其中当测试任务进程判定位于测试装置的本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
从上述技术方案可以看出,在本发明实施方式中,接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。可见,应用本发明实施方式之后,不再是单独上传和单独测试应用程序软件安装包,而是实现了针对软件安装包的批量上传,从而显著降低了测试时间,并提高了测试效率。
而且,当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,直接从本地资源池中获取相对应的智能终端软件安装包,因此本发明实施方式还避免了重复下载获取智能终端软件安装包,从而节约了***资源。
还有,还可以将本发明实施方式应用到各种终端中,并且可以跨平台跨终端使用,适用范围非常广泛。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图1为根据本发明实施方式智能终端软件包获取方法流程图。
如图1所示,该方法包括:
步骤101:接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表,其中优选该测试机型列表中包含至少两种智能终端机型。
在这里,可以由位于本地端的智能终端软件开发者将多个(至少两个)智能终端软件安装包组合成整体包(比如,通过各种压缩软件压缩成压缩包),并且将该组包(即整体包)及对应于每个智能终端软件安装包的测试机型列表上传到网络侧,一般上传到位于网络侧的服务器中。
比如,组包压缩软件可以利用算法将智能终端软件安装包无损地处理从而使得文件体积变小。本发明实施方式可以采用的组包压缩格式可以包括:rar、zip、7z、kz、CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO,以及MPQ等多种方式。
其中,除了上传包含至少两个智能终端软件安装包的组包之外,还需要上传对应于每个智能终端软件安装包的测试机型列表。测试机型列表中包括测试相对应智能终端软件安装包的智能终端品牌及型号。
在一个实施方式中,本地端可以通过WEB、HTTP、FTP等多种方式上传智能终端软件安装包的组包及测试机型列表到网络侧。
优选地,也可以通过多种混合方式来上传智能终端软件安装包的组包及测试机型列表。比如,通过FTP方式上传智能终端软件安装包的组包,而通过WEB方式上传测试机型列表,等等。
智能终端软件安装包的具体格式可以有多种,比如可以包括apk文件格式、sis文件格式、sisx文件格式,等等。
以apk文件格式为例进行说明。Apk是AndroidPackage的缩写,即Android安装包(apk)。apk是类似Symbian Sis或Sisx的文件格式。通过将apk文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。apk文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
在这里,最终安装智能终端软件安装包的智能终端可以包括但是不局限于:功能手机、智能手机、掌上电脑、个人电脑(PC)、平板电脑或个人数字助理(PDA),等等。
以上虽然详细罗列了智能终端的具体实例,本领域人员可以意识到,这些罗列仅是阐述目的,并不用于限定本发明实施方式的保护范围。
智能终端操作***可以是任意的操作***,具体可以采用的操作***包括但是不局限于:安卓(Andorid)、Palm OS、Symbian(塞班)、Windows mobile、Linux、Android(安卓)、iPhone(苹果)OS、Black Berry(黑莓)OS6.0、Windows Phone系列,等等。
优选地,智能终端操作***具体可以采用安卓操作***,而且智能终端可以采用到Andorid的各个版本之中,包括但是不局限于:阿童木(Android Beta)、发条机器人(Android1.0)、纸杯蛋糕(Android1.5)、甜甜圈(Android1.6)、松饼(Android2.0/2.1),冻酸奶(Android2.2)、姜饼(Android2.3)、蜂巢(Android 3.0)、冰激凌三明治(Android4.0)、果冻豆(Jelly Bean,Android4.1)等版本。
以上详细罗列了Android平台的具体版本,本领域技术人员可以意识到,本发明实施方式并不局限于上述罗列版本,而还可以适用于其他基于Android软件架构的任意版本之中。
步骤102:根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程。
在这里,服务器首先从所述组包中获取各个智能终端软件安装包,并根据对应于智能终端软件包的测试机型列表确定每个智能终端软件安装包的测试任务。
比如,假设服务器从组包中获取有3个智能终端软件安装包,分别为安装包1、安装包2和安装包3。安装包1的测试机型列表包含有20种机型,分别为测试机型1、测试机型2、测试机型3、测试机型4……测试机型20;安装包2的测试机型列表包含有10种机型,分别为测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’;安装包3的测试机型列表包含有15种机型,分别为测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’。
那么,安装包1的测试任务为:在测试机型1、测试机型2、测试机型3、测试机型4……测试机型20上分别执行测试;安装包2的测试任务为:在测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’上分别执行测试;安装包3的测试任务为:在测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’上分别执行测试。
针对每一个测试任务,可以设置一个相对应的测试任务进程,可以具体在测试终端上执行测试任务进程。每个测试终端可以对应于相应的测试终端型号,而且各个测试终端可以通过各种类型的接口(如USB、蓝牙等方式)与服务器连接。
比如,安装包1的测试任务为:在测试机型1、测试机型2、测试机型3、测试机型4……测试机型20上分别执行测试,则可以针对安装包1设置20个测试任务进程,分别用于具体在测试机型1、测试机型2、测试机型3、测试机型4……测试机型20上执行测试任务。
安装包2的测试任务为:在测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’上分别执行测试,则可以针对安装包2设置10个测试任务进程,分别用于具体在测试机型1’、测试机型2’、测试机型3’、测试机型4’……测试机型10’上执行测试任务;安装包3的测试任务为:在测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’上分别执行测试,则可以针对安装包3设置15个测试任务进程,分别用于具体在测试机型1’’、测试机型2’’、测试机型3’’、测试机型4’’……测试机型15’’上分别执行测试。
示范性地,如果有10个智能终端软件安装包,而且测试机型都相同,则一共生成10个测试任务,对应有10个测试任务进程;如果有10个智能终端软件安装包,而且每个安装包都具有10款测试机型,则一共可以生成100个测试任务,对应有100个测试任务进程。
在一个实施方式中,优选在根据对应于智能终端软件包的测试机型列表确定每个智能终端软件安装包的测试任务之前,进一步解析该智能终端软件安装包,以验证该智能终端软件安装包的文件真实性。
在一个实施方式中,在步骤101中进一步上传各个智能终端软件安装包的名称和/或版本信息;而在步骤102中,可以从所获取的智能终端软件安装包中解析出名称和/或版本信息,并将解析出的名称和/或版本信息与所上传的名称和/或版本信息进行对比校验,从而验证名称和/或版本信息是否正确。
在一个实施方式中,进一步在在测试智能终端库中检索处于空闲状态的测试智能终端;再根据对应于智能终端软件包的测试机型列表以及处于空闲状态的测试智能终端确定每个智能终端软件安装包的测试任务。
比如,继续按照上面实例,安装包1的测试机型列表包含有20种机型,分别为测试机型1、测试机型2、测试机型3、测试机型4……测试机型20。通过检索测试智能终端库,发现测试机型1、测试机型2和测试机型3处于忙碌状态,则可以暂时将测试机型1、测试机型2和测试机型3的测试量从安装包1的测试任务中暂停,而是在其他处于空闲状态的测试机型中执行测试任务,等到测试机型1、测试机型2和测试机型3的工作状态恢复为空闲之后,再针对测试机型1、测试机型2和测试机型3执行关于安装包1的测试任务。
步骤103:当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
在一个实施方式中,该方法进一步包括:当测试任务进程判定本地资源池中没有相对应的智能终端软件安装包时,从所述组包中获取该相对应的智能终端软件安装包,并将该相对应的智能终端软件安装包存储到与测试任务进程相对应的文件夹中。
也就是说,当测试任务进程判定在测试终端的本地资源池中有相对应的智能终端软件安装包时,直接从本地资源池中获取该相对应的智能终端软件安装包。当测试任务进程判定在测试终端的本地资源池中没有相对应的智能终端软件安装包时,则从服务器获取该相对应的智能终端软件安装包,并将该相对应的智能终端软件安装包存储到与测试任务进程相对应的文件夹中。
由于各个测试任务进程在获取智能终端软件安装包的过程中可能具有一定的时间间隔,因此该方法进一步包括:
当测试任务进程从所述组包中获取该相对应的智能终端软件安装包之后,再一次判断本地资源池中是否有相对应的智能终端软件安装包,如果没有,则将从组包中获得的相对应智能终端软件安装包复制到本地资源池中,如果有,则说明其他的测试任务进程已经从所述组包中获取该相对应的智能终端软件安装包并已经将相对应智能终端软件安装包复制到本地资源池,因此此时退出本流程。
在这里,各个测试任务进程可以进一步并行执行各个智能终端软件安装包的测试任务。对于每个智能终端软件安装包的测试任务,首先将智能终端软件安装包安装到测试任务中的测试智能终端上,再在测试智能终端上启动该智能终端软件,并遍历该智能终端软件以执行测试。具体遍历工作可以包括:测试该智能终端软件的各个功能控件,展示该智能终端软件的显示界面,等等。
在一个实施方式中,在步骤101中进一步上传智能终端软件安装包的测试优先级。此时,在步骤103中,可以按照所上传的智能终端软件安装包的测试优先级顺序,执行各个智能终端软件安装包的测试任务。
基于上述详细分析,本发明实施方式还提出了一种智能终端软件包获取装置。
图2为根据本发明实施方式智能终端软件包获取装置结构图。
如图2所示,该装置包括接收单元201、测试任务进程分配单元202和安装包获取单元203,其中:
接收单元201,用于接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;
测试任务进程分配单元202,用于根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;
安装包获取单元203,用于当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
在一个实施方式中,安装包获取单元203,进一步用于当测试任务进程判定本地资源池中没有相对应的智能终端软件安装包时,从所述组包中获取该相对应的智能终端软件安装包,并将该相对应的智能终端软件安装包存储到与测试任务进程相对应的文件夹中。
在一个实施方式中,安装包获取单元203,进一步用于当测试任务进程从所述组包中获取该相对应的智能终端软件安装包之后,判断本地资源池中是否有相对应的智能终端软件安装包,如果没有,则将从组包中获得的相对应智能终端软件安装包复制到本地资源池中,如果有,则结束本流程。
优选地,该装置进一步包括校验单元204;
接收单元201,进一步用于接收各个智能终端软件安装包的名称和/或版本信息;
校验单元204,用于从所获取的智能终端软件安装包中解析出名称和/或版本信息,并将解析出的名称和/或版本信息与所上传的名称和/或版本信息进行对比校验。
在一个实施方式中,该装置进一步包括验证单元205;
验证单元205,用于在从本地资源池中获取该智能终端软件安装包之后,解析该智能终端软件安装包以验证该智能终端软件安装包的文件真实性。
在一个实施方式中,测试任务进程分配单元202,用于在测试智能终端库中检索处于空闲状态的测试智能终端;根据智能终端软件包的测试机型列表以及处于空闲状态的测试智能终端,确定与智能终端软件安装包相对应的测试任务进程。
优选地,该装置进一步包括测试单元206,其中:
测试单元206,用于在安装包获取单元获取该相对应的智能终端软件安装包之后,使能测试任务进程将该相对应的智能终端软件安装包安装到与该测试任务进程相关的测试智能终端上,在该测试智能终端上启动该智能终端软件,并遍历该智能终端软件以执行测试。
基于上述详细分析,本发明实施方式还提出了一种智能终端软件包获取***。
图3为根据本发明实施方式的智能终端软件包获取***结构图。
如图3所示,该***包括上传装置301、测试服务器302和测试装置303,其中测试服务器302和测试装置303位于网络侧:
上传装置301,用于向测试服务器302上传包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;
测试服务器302,用于根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;
测试装置303,用于运行测试任务进程,其中当测试任务进程判定位于测试装置的本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。
如图3所示,具体地,测试装置303可以通过USB/蓝牙等方式连接多个不同型号的智能终端(如图3中智能终端1、智能终端2,一直到智能终端n),具体由这些智能终端提供智能终端软件安装包的安装测试环境。
测试装置303,进一步用于当测试任务进程判定本地资源池中没有相对应的智能终端软件安装包时,从上传到测试服务器301的组包中获取该相对应的智能终端软件安装包,并将该相对应的智能终端软件安装包存储到与测试任务进程相对应的文件夹中。
在一个实施方式中,测试装置303,进一步用于当测试任务进程从所述组包中获取该相对应的智能终端软件安装包之后,判断测试装置的本地资源池中是否有相对应的智能终端软件安装包,如果没有,则将从组包中获得的相对应智能终端软件安装包复制到本地资源池中,如果有,则结束本流程。
在本发明实施方式中,首先可以由web端用户通过上传装置上传待测的apk文件以及机型列表到测试服务器上;测试服务器端收到apk文件以及机型列表,检测对应机型所在的测试装置(比如,具体为PC),然后进行测试任务分配,其中一个apk与一款机型作为一个测试任务)。
当测试装置收到任务后运行各个测试任务进程。以对应于apk1的测试任务进程A为例示范性说明:首先测试任务进程A检测资源池里有没有这个用户上传的apk1文件,如果有,测试任务进程A自动从测试装置端下载安装相对应的智能终端机型进行测试;如果没有,在测试终端建立一个测试任务进程A的文件夹,在该文件夹里下载从服务器获取的apk1文件,当下载完成后再到资源池中检测是否有该apk1文件,如果资源池没有apk1文件,则从该文件夹中复制apk1文件到资源池中,如果资源池有apk1文件,则测试任务进程A的文件夹里的apk1文件不复制到资源池中。其他测试任务进程执行类似处理操作。
实际上,可以通过多种形式来具体实施本发明实施方式所提出的智能终端软件包获取方法和装置。比如,可以遵循一定规范的应用程序接口,将智能终端软件包获取方法编写为安装到移动设备中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。当编写为插件程序时,可以将其实施为ocx、dll、cab等多种插件形式。也可以通过Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发明实施方式所提出的智能终端软件包获取方法。
可以通过指令或指令集存储的储存方式将本发明实施方式所提出的智能终端软件包获取方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。
另外,还可以将本发明实施方式所提出的智能终端软件包获取方法应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
综上所述,在本发明实施方式中,接收包含至少两个智能终端软件安装包的组包以及每个智能终端软件安装包的测试机型列表;根据智能终端软件安装包的测试机型列表,分配与智能终端软件安装包相对应的测试任务进程;当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,从本地资源池中获取该相对应的智能终端软件安装包。可见,应用本发明实施方式之后,不再是单独上传和单独测试应用程序软件安装包,而是实现了针对软件安装包的批量上传,从而显著降低了测试时间,并提高了测试效率。
而且,当测试任务进程判定本地资源池中有相对应的智能终端软件安装包时,直接从本地资源池中获取相对应的智能终端软件安装包,因此本发明实施方式还避免了重复下载智能终端软件安装包,从而节约了***资源。
还有,还可以将本发明实施方式应用到各种终端中,并且可以跨平台跨终端使用,适用范围非常广泛。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。