《一种ANDROID平台自动化集成测试方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种ANDROID平台自动化集成测试方法和装置.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103123605 A(43)申请公布日 2013.05.29CN103123605A*CN103123605A*(21)申请号 201310049449.2(22)申请日 2013.02.07G06F 11/36(2006.01)(71)申请人百度在线网络技术(北京)有限公司地址 100085 北京市海淀区上地十街10号百度大厦(72)发明人程振宇 董海峰(74)专利代理机构北京鸿德海业知识产权代理事务所(普通合伙) 11412代理人袁媛(54) 发明名称一种Android平台自动化集成测试方法和装置(57) 摘要本发明提供了一种Android平台自动化集成测试方法。
2、和装置,其中方法包括:从被测Android设备中获取被测应用程序的安装文件;对被测应用程序的安装文件进行反编译;修改被测应用程序的配置文件为相同的用户id和相同的进程id;将修改后的被测应用程序编译成新的安装文件,利用新的安装文件替换被测Android设备中的安装文件;重启被测Android设备并执行集成测试用例。节约人力成本,且保证测试准确性和稳定性。(51)Int.Cl.权利要求书2页 说明书6页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书6页 附图2页(10)申请公布号 CN 103123605 ACN 103123605 A1/2页21.一种。
3、Android平台自动化集成测试方法,其特征在于,该方法包括:S1、从被测Android设备中获取被测应用程序的安装文件;S2、对被测应用程序的安装文件进行反编译;S3、修改被测应用程序的配置文件为相同的用户id和相同的进程id;S4、将修改后的被测应用程序编译成新的安装文件,利用新的安装文件替换被测Android设备中的安装文件;S5、重启被测Android设备并执行集成测试用例。2.根据权利要求1所述的方法,其特征在于,在所述步骤S1之前还包括:S0、对被测Android设备的测试环境进行初始化。3.根据权利要求2所述的方法,其特征在于,所述步骤S0具体包括:S01:根据测试要求对被测An。
4、droid设备的版本进行刷机;S02:获取root权限和读写系统权限;S03:部署被测Android设备的被测应用程序。4.根据权利要求1所述的方法,其特征在于,所述步骤S3具体包括:将配置文件AndroidManifest.xml中manifest标签的android:sharedUserId属性修改为指定的用户id;将配置文件AndroidManifest.xml中application标签的android:process属性修改为指定的进程id。5.根据权利要求1所述的方法,其特征在于,在步骤S3中所述利用新的安装文件替换被测Android设备中的安装文件之前还包括:基于原有的签名文件对。
5、所述新的安装文件进行重新签名。6.一种Android平台自动化集成测试装置,其特征在于,该装置包括:文件读取单元,用于从被测Android设备中获取被测应用程序的安装文件;反编译单元,用于对被测应用程序的安装文件进行反编译;配置修改单元,用于修改被测应用程序的配置文件为相同的用户id和相同的进程id;编译替换单元,用于将修改后的被测应用程序编译成新的安装文件,利用新的安装文件替换被测Android设备中的安装文件;用例执行单元,用于重启被测Android设备并执行集成测试用例。7.根据权利要求6所述的装置,其特征在于,该装置还包括:初始化单元,用于对被测Android设备的测试环境进行初始化。。
6、8.根据权利要求7所述的装置,其特征在于,所述初始化单元具体执行:根据测试要求对被测Android设备的版本进行刷机;获取root权限和读写系统权限;部署被测Android设备的被测应用程序。9.根据权利要求6所述的装置,其特征在于,所述配置修改单元具体执行:将配置文件AndroidManifest.xml中manifest标签的android:sharedUserId属性修改为指定的用户id;将配置文件AndroidManifest.xml中application标签的android:process属性修改为指定的进程id。10.根据权利要求6所述的装置,其特征在于,所述编译替换单元在利用新。
7、的安装文件权 利 要 求 书CN 103123605 A2/2页3替换被测Android设备中的安装文件之前还执行:基于原有的签名文件对所述新的安装文件进行重新签名。权 利 要 求 书CN 103123605 A1/6页4一种 Android 平台自动化集成测试方法和装置【 技术领域 】0001 本发明涉及计算机应用技术领域,特别涉及一种Android平台自动化集成测试方法和装置。【 背景技术 】0002 近几年,移动平台Android操作系统发展迅速,基于Android系统的移动设备已经占据了移动市场的半壁江山,各Android应用市场中的应用数目也是突飞猛涨,Android已经成为当下最热。
8、门的移动平台操作系统。0003 为了保证Android应用程序能够顺利运行,对其进行集成测试是不可或缺的过程,为了实现Android平台的集成测试,现有的实现方式主要包括以下几种:0004 第一种是采用人工测试的方式。0005 第二种是利用Shell类工具进行测试,例如利用monkeyrunner、adb shell命令等。0006 第三种是通过与Android View Server通讯,对当前页面的控件进行抓取并操作来实现测试。0007 上述第一种方式人力成本较高,耗时长,且测试结果与测试人员的经验技术及精力有关,准确性不能得到保证。0008 第二种方式shell类工具在测试过程中无法实现。
9、页面和控件的操作和侦测,测试结果不稳定,且不同分别率的设备上无法进行测试。0009 第三种方式需要采用与Android View Server通讯来获取View信息,速度很慢且耗费大量资源,测试稳定性和性能无法得到保证。0010 最重要的一点,由于各Android应用程序分别运行在各虚拟机实例中,每个虚拟机实例是一个独立的进程空间,因此现有技术的各实现方式中在Android平台无法获取跨进程的多个应用程序的进程上下文来进行集成测试自动化,从而导致测试准确性和稳定性无法得到保证。【 发明内容 】0011 有鉴于此,本发明提供了一种Android平台自动化集成测试方法和装置,以便于节约人力成本,且。
10、保证测试准确性和稳定性。0012 具体技术方案如下:0013 一种Android平台自动化集成测试方法,该方法包括:0014 S1、从被测Android设备中获取被测应用程序的安装文件;0015 S2、对被测应用程序的安装文件进行反编译;0016 S3、修改被测应用程序的配置文件为相同的用户id和相同的进程id;0017 S4、将修改后的被测应用程序编译成新的安装文件,利用新的安装文件替换被测Android设备中的安装文件;说 明 书CN 103123605 A2/6页50018 S5、重启被测Android设备并执行集成测试用例。0019 根据本发明一优选实施例,在所述步骤S1之前还包括:0。
11、020 S0、对被测Android设备的测试环境进行初始化。0021 根据本发明一优选实施例,所述步骤S0具体包括:0022 S01:根据测试要求对被测Android设备的版本进行刷机;0023 S02:获取root权限和读写系统权限;0024 S03:部署被测Android设备的被测应用程序。0025 根据本发明一优选实施例,所述步骤S3具体包括:0026 将配置文件AndroidManifest.xml中manifest标签的android:sharedUserId属性修改为指定的用户id;0027 将配置文件AndroidManifest.xml中application标签的androi。
12、d:process属性修改为指定的进程id。0028 根据本发明一优选实施例,在步骤S3中所述利用新的安装文件替换被测Android设备中的安装文件之前还包括:基于原有的签名文件对所述新的安装文件进行重新签名。0029 一种Android平台自动化集成测试装置,该装置包括:0030 文件读取单元,用于从被测Android设备中获取被测应用程序的安装文件;0031 反编译单元,用于对被测应用程序的安装文件进行反编译;0032 配置修改单元,用于修改被测应用程序的配置文件为相同的用户id和相同的进程id;0033 编译替换单元,用于将修改后的被测应用程序编译成新的安装文件,利用新的安装文件替换被测。
13、Android设备中的安装文件;0034 用例执行单元,用于重启被测Android设备并执行集成测试用例。0035 根据本发明一优选实施例,该装置还包括:0036 初始化单元,用于对被测Android设备的测试环境进行初始化。0037 根据本发明一优选实施例,所述初始化单元具体执行:根据测试要求对被测Android设备的版本进行刷机;获取root权限和读写系统权限;部署被测Android设备的被测应用程序。0038 根据本发明一优选实施例,所述配置修改单元具体执行:0039 将配置文件AndroidManifest.xml中manifest标签的android:sharedUserId属性修改。
14、为指定的用户id;0040 将配置文件AndroidManifest.xml中application标签的android:process属性修改为指定的进程id。0041 根据本发明一优选实施例,所述编译替换单元在利用新的安装文件替换被测Android设备中的安装文件之前还执行:基于原有的签名文件对所述新的安装文件进行重新签名。0042 由以上技术方案可以看出,一方面本发明无需人工参与,降低了集成测试中投入的人力成本和时间成本;另一方面本发明通过反编译的方式获取被测应用程序的配置文件,并将其修改为相同的用户id和进程id,使得被测应用程序在测试过程中运行在同一进程空间,从而获取到进程上下文,提。
15、高了集成测试的稳定性和准确性。说 明 书CN 103123605 A3/6页6【 附图说明 】0043 图1为本发明实施例一提供的主要方法流程图;0044 图2为本发明实施例二提供的Android平台自动化集成测试装置结构图。【 具体实施方式 】0045 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。0046 实施例一、0047 图1为本发明实施例一提供的主要方法流程图,如图1所示,该方法包括以下步骤:0048 步骤101:对被测Android设备的测试环境进行初始化。0049 测试环境初始化是在进行测试过程中首先都会执行的步骤,在本步骤中主要包括:。
16、0050 1)根据测试要求对被测Android设备的版本进行刷机。通常在进行某次测试时,是针对某个具体的Android版本进行的,因此首先要对被测Android设备重装系统,部署成满足测试要求的Android版本。0051 2)获取root权限和读写系统权限,由于后续测试过程中会涉及到系统文件(即后续的配置文件)修改和读写(即后续的获取安装文件、替换安装文件),因此需要获取root权限和读写系统权限才能够保证后续的操作。0052 3)部署被测Android设备的被测应用程序。根据本次集成测试的测试需求,在被测Android设备中部署好集成测试涉及的应用程序。0053 在本发明实施例中可以提供面。
17、向测试人员的接口,通过该接口接收测试人员的指令来完成测试环境的初始化。当然,如果被测Android设备的版本、权限和应用程序已经满足测试要求,则可以不执行本步骤。0054 步骤102:从被测Android设备中获取被测应用程序的安装文件。0055 本发明的测试装置首先从被测Android设备中获取集成测试所涉及的被测应用程序的安装文件,通常为apk文件。0056 步骤103:对被测应用程序的安装文件进行反编译。0057 在本步骤中对apk文件进行反编译的目的是获取其中的配置文件,在android系统中为AndroidManifest.xml文件,其是每个android应用程序必须的文件,位于应。
18、用程序的根目录下,描述了应用程序安装包中的全局数据。0058 步骤104:修改被测应用程序的配置文件为相同的用户id和相同的进程id。0059 在AndroidManifest.xml文件中manifest标签的android:sharedUserId属性中包含的是应用程序的用户id,将该属性修改为指定的用户id,在该集成测试过程中涉及的所有被测应用程序共用该指定的用户id。0060 在AndroidManifest.xml文件中application标签的android:process属性中包含的是应用程序的进程id,将该属性修改为指定的进程id,在该集成测试过程中涉及的所有被测应用程序共用。
19、该指定的进程id。说 明 书CN 103123605 A4/6页70061 步骤105:将修改后的被测应用程序编译成新的安装文件,并基于原有的签名文件进行重新签名,利用新的安装文件替换被测Android设备中的安装文件。0062 对修改后的被测应用程序进行重新编辑后,得到的安装文件就能够运行在同一进程空间,从而达到获取进程上下文的目的。在进行签名时,利用原有的签名文件进行重新签名,保证原安装文件和新的安装文件的签名文件相同。0063 步骤106:重启被测Android设备并执行集成测试用例。0064 在上述过程执行完毕后,重启被测Android设备使配置生效,就可以执行后续集成测试用例进行集成。
20、测试了,最终输出测试结果。在Android平台的集成测试过程中需要使用当前进程上下文来获取进程的测试工具(instrumentation)和测试界面(Activity),进而对控件(View)进行操作或验证来达到测试目的,因此进程上下文的获取能够保证集成测试的稳定性和正确性。0065 为了方便理解在此举一个实例,假设需要针对如下一系列操作涉及的应用程序进行集成测试:从版本为4.2的Android手机的首屏点击通讯录图标进入通讯录应用,选择一位联系人拨打电话,在电话界面,点击挂断按钮结束通话。0066 在这个集成测试中一共涉及三个应用程序:首屏、通讯录和电话,这三个应用程序作为被测应用程序,且分。
21、别运行在各自的进程空间中。0067 在采用本发明提供的方法进行集成测试时,首先对该Android手机的测试环境进行初始化,将该Android手机刷机成4.2版本的系统,获取root权限和读写系统权限,并部署好首屏、通讯录和电话三个被测应用程序。0068 然后从该Android手机中获取被测应用程序的安装文件:Home.apk、Contact.apk和Phone.apk文件。对获取的这些apk文件进行反编译,获取AndroidManifest.xml配置文件;修改配置文件中的manifest标签的android:sharedUserId属性为指定用户id,例如使得android:sharedUs。
22、erId=“android.uid.system”;修改配置文件中的application标签的android:process属性为指定的进程id,例如使得android:process=“com.baidu.myid”。0069 将修改后的被测应用程序编译成新的apk文件并利用各应用程序原有的签名文件进行重新签名。用新的apk文件分别替换Android手机中原来的apk文件。重启该Android手机后,三个应用程序运行于同一进程空间,即以com.baidu.myid为标识的进程空间。最后执行集成测试用例输出测试报告。0070 以上是对本发明提供的方法进行的详细描述,下面通过实施例二对本发明提。
23、供的装置进行详细描述。0071 实施例二、0072 图2为本发明实施例二提供的Android平台自动化集成测试装置结构图,该装置通常可以设置在一台PC上,该PC与被测Android设备连接,例如通过USB连接,该PC上运行的自动化集成测试装置负责完成被测Android设备的集成测试。如图2所示,该装置包括:初始化单元01、文件读取单元02、反编译单元03、配置修改单元04、编译替换单元05和用例执行单元06。0073 初始化单元01用于对被测Android设备的测试环境进行初始化。具体地,根据测试要求对被测Android设备的版本进行刷机,部署成满足测试要求的Android版本;获取说 明 书。
24、CN 103123605 A5/6页8root权限和读写系统权限;部署被测Android设备的被测应用程序。0074 如果被测Android设备的版本、权限和应用程序已经满足测试要求,则该装置中也可以不包括初始化单元01。0075 文件读取单元02用于从被测Android设备中获取被测应用程序的安装文件,通常为apk文件。0076 反编译单元03用于对被测应用程序的安装文件进行反编译,从而获取被测应用程序的配置文件,在android系统中为AndroidManifest.xml文件,其是每个android应用程序必须的文件,位于应用程序的根目录下,描述了应用程序安装包中的全局数据。0077 配。
25、置修改单元04用于修改被测应用程序的配置文件为相同的用户id和相同的进程id。0078 具体地,配置修改单元04将配置文件AndroidManifest.xml中manifest标签的android:sharedUserId属性修改为指定的用户id,在该集成测试过程中涉及的所有被测应用程序共用该指定的用户id。0079 将配置文件AndroidManifest.xml中application标签的android:process属性修改为指定的进程id,在该集成测试过程中涉及的所有被测应用程序共用该指定的进程id。0080 编译替换单元05用于将修改后的被测应用程序编译成新的安装文件,利用新的安。
26、装文件替换被测Android设备中的安装文件。另外,编译替换单元05在利用新的安装文件替换被测Android设备中的安装文件之前还执行:基于原有的签名文件对新的安装文件进行重新签名。0081 用例执行单元06用于重启被测Android设备使配置生效,并执行集成测试用例就可以进行集成测试了,最终输出测试结果。0082 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可。
27、以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。0083 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。0084 由以上描述可以看出,本发明提供的方法和装置。
28、可以具备以下优点:0085 1)无需人工参与,很大程度地降低了集成测试中投入的人力成本和时间成本,特别是在大规模集成测试中效果更加突出,加速了产品的迭代开发和发布上市。0086 2)通过反编译的方式获取被测应用程序的配置文件,并将其修改为相同的用户id和进程id,使得被测应用程序在测试过程中运行在同一进程空间,从而获取到进程上下文,提高了集成测试的稳定性和准确性。说 明 书CN 103123605 A6/6页90087 3)整个测试过程不需要修改产品源码,从而降低了测试的产品质量风险和安全隐患。0088 4)可在现有的开发框架和测试套件中使用,即无需开发新的集成测试用例,因此无额外学习成本,部署和维护成本很低。0089 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说 明 书CN 103123605 A1/2页10图1说 明 书 附 图CN 103123605 A10。