一种在安卓设备上测试应用程序的方法和装置制造方法

文档序号:6489621阅读:135来源:国知局
一种在安卓设备上测试应用程序的方法和装置制造方法
【专利摘要】本申请公开了一种在安卓设备上测试应用程序的方法和装置。该方法包括:将需要测试的安卓设备连接到服务器上,服务器获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中,服务器遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试,并生成测试结果。应用本发明能够提高测试效率。
【专利说明】一种在安卓设备上测试应用程序的方法和装置
【技术领域】
[0001]本申请涉及测试【技术领域】,尤其涉及一种在安卓设备上测试应用程序的方法和装置。
【背景技术】
[0002]目前,市面上的安卓(android)设备类型繁多,在安卓设备上运行的应用程序在正式发布之前,需要在各种类型的安卓设备上进行测试,以使得各种类型的安卓设备都能兼容该应用程序。
[0003]目前,常常通过用户体验的方式在安卓设备上进行应用程序测试。
[0004]具体地,当体验用户的数量较多时,常常能够覆盖较多类型的安卓设备,因此,将待测试应用程序和测试用例分发给大量的体验用户,由体验用户利用所述测试用例对待测试应用程序进行测试,并返回测试结果。
[0005]可见,通过用户体验的方式在安卓设备上进行应用程序测试的方法,除了需要维护庞大的体验用户群以外,由于测试结果依赖于体验用户的测试行为,而众多的体验用户难以在短时间内都完成测试行为,因此往往测试效率较低。

【发明内容】

[0006]本申请提供了一种在安卓设备上测试应用程序的方法和装置,能够提高测试效率。
[0007]—种在安卓设备上测试应用程序的方法,该方法包括:
[0008]将需要测试的安卓设备连接到或服务器上,
[0009]服务器获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中,
[0010]服务器遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试,并生成测试结果O
[0011]一种在安卓设备上测试应用程序的装置,该装置包括连接模块、获取模块、测试执行模块和结果生成模块;
[0012]所述连接模块,用于连接需要测试的安卓设备;
[0013]所述获取模块,用于获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中;
[0014]所述测试执行模块,用于遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试;
[0015]所述结果生成模块,用于生成所述测试执行模块的测试结果。
[0016]由上述方案可见,本发明通过将需要测试的安卓设备都连接到服务器上,服务器获取连接的每个安卓设备的设备ID,将获取的设备ID加入到可执行列表中,遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试,并生成测试结果,可以实现对批量的安卓设备几乎同时执行同一套测试用例,从而在几乎一个测试用例的运行时间内完成批量安卓设备的测试工作,大大地提高了测试效率。
【专利附图】

【附图说明】
[0017]图1是本发明提供的在安卓设备上测试应用程序的方法流程图。
[0018]图2是本发明提供的在安卓设备上测试应用程序的装置结构图。
【具体实施方式】
[0019]图1是本发明提供的在安卓设备上测试应用程序的方法流程图。
[0020]如图1所示,该方法包括:
[0021]步骤101,将需要测试的安卓设备连接到服务器上。
[0022]其中,所述的服务器,可以是个人电脑(PC)机,也可以是其他类型的服务器。
[0023]本步骤中,可以将需要测试的安卓设备通过串行通讯USB接口连接到服务器上,或者通过无线网络连接到服务器上,其中,通过无线网络连接到同一个服务器上的各个安卓设备中安装有代理模块、且通过无线网络连接到同一个服务器上各个安卓设备的IP地址与该服务器的IP地址属于同一个局域网。
[0024]步骤102,服务器获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中。
[0025]本步骤中,服务器通过调用安卓平台的软件开发工具包SDK中的命令获取通过USB接口连接的安卓设备的属性信息,所述属性信息包括该安卓设备的设备ID,还可以包括安卓设备的生产商、型号、系统版本等信息,例如,通过Android SDK自带的adb devices命令获取被测试安卓设备的设备ID。服务器利用通过无线网络连接的各个安卓设备中的代理模块,获取通过无线网络连接的各个安卓设备的IP地址,将通过无线网络连接的各个安卓设备的IP地址作为相应安卓设备自身的设备ID。
[0026]其中的代理模块,用于在接收服务器的命令,根据该命令获取安卓设备的信息并返回给服务器,或者将该命令发给安卓设备中的测试用例等模块,以使得该测试用例等模块能够根据该命令启动测试等工作。
[0027]步骤103,服务器遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试,并生成测试结果。
[0028]其中,每个测试线程利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试的步骤具体可以包括:
[0029]步骤1、测试线程卸载设备ID对应的安卓设备上的待测试应用程序和测试用例。
[0030]本步骤中,可以调用命令adb uninstall卸载待测试应用程序和测试用例。
[0031]步骤2、测试线程将当前的待测试应用程序和当前的测试用例安装到该设备ID对应的安卓设备上。[0032]本步骤中,可以调用命令adb install安装待测试应用程序和测试用例。
[0033]步骤3、测试线程调用被测安卓设备上当前的测试用例对当前的待测试应用程序进行测试。
[0034]本步骤中,可以通过调用命令adb shell am instrument-w来调用Instrument测试框架启动测试,并且,可以定期调用命令adb shell dumpsys meminfo和adb shelldumpsys cpuinfo来实现对被测试安卓设备的CPU和/或内存的监控,并将监控结果写入测试结果存储文件或日志文件中。其中,Instrument测试框架是一系列对android系统进行控制的方法的集合。可以在android应用正常的生命周期之外独立的控制android应用的各个组件。
[0035]其中,在生成测试结果时,对于每个测试线程,按照该测试线程当前测试的安卓设备的属性信息生成文件名,将该测试线程的测试结果存储在以该文件名命名的测试结果存储文件中,从而实现对测试结果的归类,并且根据测试结果存储文件的文件名便于查找不同类型安卓设备的测试结果。
[0036]另外,在生成测试结果时,还可以进一步监控每个测试线程当前测试的安卓设备的CPU和/或内存资源的使用信息,并将监控结果写入每个测试线程对应的测试结果存储文件中,从而便于根据各种类型安卓设备的CPU和/或内存资源的使用信息以及待测试应用程序的测试结果,对待测试应用程序在各种类型安卓设备上的运行情况进行全面地分析。
[0037]各个测试线程生成的测试结果可以上传到指定的服务器上,从而便于对测试结果的统一管理,并且方便得出安卓设备类型与被测试应用程序之间的适配效果。
[0038]根据本发明的上述方法,本发明还提供了一种在安卓设备上测试应用程序的装置,具体请参见图2。
[0039]图2是本发明提供的在安卓设备上测试应用程序的装置结构图。
[0040]如图2所示,该装置包括连接模块201、获取模块202、测试执行模块203和结果生成模块204。
[0041]连接模块201,用于连接需要测试的安卓设备。
[0042]获取模块202,用于获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中。
[0043]测试执行模块203,用于遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试。
[0044]结果生成模块204,用于生成所述测试执行模块203的测试结果。
[0045]其中,连接模块201,具体可以用于通过串行通讯USB接口连接安卓设备,或者通过无线网络连接安卓设备,其中通过无线网络连接的各个安卓设备中安装有代理模块、且通过无线网络连接的各个安卓设备的IP地址与该连接模块的IP地址属于同一个局域网。
[0046]获取模块202,具体可以用于调用安卓平台的软件开发工具包SDK中的命令获取通过USB接口连接的安卓设备的属性信息,所述属性信息包括该安卓设备的设备ID,利用通过无线网络连接的各个安卓设备中的代理模块,获取通过无线网络连接的各个安卓设备的IP地址,将通过无线网络连接的各个安卓设备的IP地址作为相应安卓设备自身的设备ID0[0047]测试执行模块203,用于卸载该设备ID对应的设备上的待测试应用程序和测试用例,将当前的待测试应用程序和当前的测试用例安装到该设备ID对应的设备上,调用当前的测试用例对当前的待测试应用程序进行测试。
[0048]结果生成模块204,具体可以用于对于每个测试线程,根据该测试线程当前测试的安卓设备的属性信息生成文件名,将该测试线程的测试结果存储在以该文件名命名的测试结果存储文件中。
[0049]结果生成模块204,还可以用于监控每个测试线程当前测试的安卓设备的CPU和/或内存资源的使用信息,并将监控结果写入每个测试线程对应的测试结果存储文件中。
[0050]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种在安卓设备上测试应用程序的方法,其特征在于,该方法包括: 将需要测试的安卓设备连接到服务器上, 服务器获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中, 服务器遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试,并生成测试结果。
2.根据权利要求1所述的方法,其特征在于,所述利用当前的测试用例对该设备ID对应的设备进行应用程序测试包括: 卸载该设备ID对应的设备上的待测试应用程序和测试用例; 将当前的待测试应用程序和当前的测试用例安装到该设备ID对应的设备上; 调用当前的测试用例对当前的待测试应用程序进行测试。
3.根据权利要求1或2所述的方法,其特征在于,所述生成测试结果包括: 对于每个测试线程,根据该测试线程当前测试的安卓设备的属性信息生成文件名,将该测试线程的测试结果存储在以该文件名命名的测试结果存储文件中。
4.根据权利要求3所述的方法,其特征在于,所述生成测试结果还包括: 监控每个测试线程当前测试的安卓设备的CPU和/或内存资源的使用信息,并将监控结果写入每个测试线程对应的测试结果存储文件中。
5.根据权利要求1所述的方法,其特征在于,将需要测试的安卓设备连接到服务器上包括: 将需要测试的安卓设备通过串行通讯USB接口连接到服务器上,或者通过无线网络连接到服务器上,其中,通过无线网络连接到服务器上的各个安卓设备中安装有代理模块、且通过无线网络连接到服务器上各个安卓设备的IP地址与所述服务器的IP地址属于同一个局域网; 服务器获取连接的每个安卓设备的设备标识ID包括: 服务器通过调用安卓平台的软件开发工具包SDK中的命令获取通过USB接口连接的安卓设备的属性信息,所述属性信息包括该安卓设备的设备ID,服务器利用通过无线网络连接的各个安卓设备中的代理模块,获取所述通过无线网络连接的各个安卓设备的IP地址,将通过无线网络连接的各个安卓设备的IP地址作为相应安卓设备自身的设备ID。
6.一种在安卓设备上测试应用程序的装置,其特征在于,该装置包括连接模块、获取模块、测试执行模块和结果生成模块; 所述连接模块,用于连接需要测试的安卓设备; 所述获取模块,用于获取连接的每个安卓设备的设备标识ID,将获取的设备ID加入到可执行列表中; 所述测试执行模块,用于遍历可执行列表中的设备ID,对于遍历到的每个设备ID,单独启动测试线程,利用当前的测试用例对该设备ID对应的安卓设备进行应用程序测试; 所述结果生成模块,用于生成所述测试执行模块的测试结果。
7.根据权利要求6所述的装置,其特征在于, 所述测试执行模块,用于卸载该设备ID对应的设备上的待测试应用程序和测试用例,将当前的待测试应用程序和当前的测试用例安装到该设备ID对应的设备上,调用当前的测试用例对当前的待测试应用程序进行测试。
8.根据权利要求6或7所述的装置,其特征在于, 所述结果生成模块,用于对于每个测试线程,根据该测试线程当前测试的安卓设备的属性信息生成文件名,将该测试线程的测试结果存储在以该文件名命名的测试结果存储文件中。
9.根据权利要求8所述的装置,其特征在于, 所述结果生成模块,还用于监控每个测试线程当前测试的安卓设备的CPU和/或内存资源的使用信息,并将监控结果写入每个测试线程对应的测试结果存储文件中。
10.根据权利要求6所述的装置,其特征在于, 所述连接模块,用于通过串行通讯USB接口连接安卓设备,或者通过无线网络连接安卓设备,其中通过无线网络连接的各个安卓设备中安装有代理模块、且通过无线网络连接的各个安卓设备的IP地址与该连接模块的IP地址属于同一个局域网; 所述获取模块,用于调用安卓平台的软件开发工具包SDK中的命令获取通过USB接口连接的安卓设备的属性信息,所述属性信息包括该安卓设备的设备ID,利用通过无线网络连接的各个安卓设备中的代理模块,获取通过无线网络连接的各个安卓设备的IP地址,将通过无线网络连接的各个安卓设 备的IP地址作为相应安卓设备自身的设备ID。
【文档编号】G06F11/36GK103713991SQ201210376104
【公开日】2014年4月9日 申请日期:2012年10月8日 优先权日:2012年10月8日
【发明者】丁如敏, 皮凯 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1