android自动化测试之CTS

来源:互联网 发布:如何优化关键词 编辑:程序博客网 时间:2024/04/29 10:58

CTS是Compatibility Test Suite的简称,是android的兼容性测试套件,定制了andoird后,必须通过最新的CTS检测,以保证标准的APK能在平台上安装运行,通过了CTS后,将测试报告给Google,以取得android market认证,CTS的测试框架如下图:

CTS的官方网站是http://source.android.com/compatibility/index.html, 上面有详细的说明。

详细的说明见官方网站,本文章只说下总结的测试步骤。

在官方网站有CTS的使用手册和测试套件及校验工具。最新版本关注<<android-cts-manual-rX.pdf>>

CTS有两种方式,一种是自己编译CTS,另一种是直接使用从官网上下载的编译好的。

自己编译则:

$ . build/envsetup.sh

$ make cts

编译好后的的文件是 out/host/linux-x86/cts/android-cts.zip,如果你的代码是最新的,则这个文件和官方网站的放的编译好的文件是一样的。如果要自己修改CTS的测试代码,在android代码根目录下的cts目录下

CTS的makefile:  build/core/tasks/cts.mk

CTS的程序文件:   out/host/linux-x86/bin/cts

CTS的测试计划:  out/host/linux-x86/cts/android-cts/repository/plans

CTS的测试用例:  out/host/linux-x86/cts/android-cts/repository/testcases

CTS的测试结果:   out/host/linux-x86/cts/android-cts/repository/results

CTS的配置:       out/host/linux-x86/cts/tools/utils/host_config.xml

 

一.  搭建CTS测试环境

   首先在LINUX机器上安装android的SDK环境,既然已经开始关注CTS了,LINUX SDK环境这部分应该很熟悉了,这里省略。可以参考http://developer.android.com/sdk/index.html

 

 

修改~/.bashrc 加入SDK的工具目录

export PATH=$PATH:~/android-sdk-linux/platform-tools:~/android-sdk-linux/tools

保存退出后运行下面语句使修改的环境变量在当前终端生效

$source ~.bashrc

 

打开终端输入命令:adb devices ,连接上这会显示设备ID,

如果未连接上则会以???????代替,此时可以通过输入以下命令进行连接

$ adb kill-server

$ sudo adb start-server

$ adb devices

还有问题的话参考另外一篇文章Android SDK USB配置 

二.  设备端的设置

1.   在Android4.0及以上版本,手机必须是用户(user)模式, 不是工程(eng)模式,通过adb shell进去看一下,如果提示符号是#则为eng模式,如果是$则为用户模式。把手机设置为英文语言。

2.   安装TTS,Android4.0进Settings > Speech synthesis > Install voice data, Android 2.3.5

Settings > Voice input & output > Text-to-speech settings > Install voice data

这一步是为了保证安装了Android Market, 如果没有安装需要用adb手动安装.

3.   插入一张空白的SD卡,测试过程中会擦除修改SD卡上的数据

4.   恢复出厂设置。Settings > Privacy > Factory data reset

5.   “USB调试”被选中. Settings > Applications > Development > USB debugging

6.   允许模拟地点.       Settings > Applications > Development > Allow mock locations

7.   保持唤醒状态        Settings > Applications > Development > Stay Awake

8.  去掉锁屏 Settings > Security & location &security>Set up screen lock>none

9.  设置屏幕超时为最长时间30分钟(Settings>Display>Screen timeout>30minutes)

10. 运行时让屏幕是home主界面上

11. 链接到一个WiFi网络 Settings > WiFi

12. 手机上的时间设置正确

13. 运行CTS的过程中不能有按键和触屏等操作手机的动作

14. 安装辅助测试

adb install android-cts/repository/testcases/CtsDelegatingAccessibilityServices.apk

允许服务Settings > Accessibility > Delegateing Accessibility Services

15. 设备管理测试

adb install android-cts/repository/testcases/CtsDeviceAdmin.apk

允许设备管理,

        Settings > Security > Device Administrators > android.deviceadmin.cts.CtsDeviceAdmin

16. 媒体压力测试

把官网下载的android-cts-media-x.y.zip解压,在保证用adb可以连上手机后,进入解压后的目录,

 $chmod 544 copy_media.sh

 $./copy_ media.sh

如果是 $./copy_ media.sh 1920x1080则拷贝所有分辨率的文件

 

三.  运行CTS

在连上USB线后,进android-cts\tools目录,运行

$startcts

如果权限不够,则运行sudo ./startcts

之后提示

$ startcts

         Android CTS version 2.3_r4

         Device(emulator-5544) connected

         cts_host>

         此时输入 help  将会列出cts所有的操作。

         cts_host> ls  --plan  查看测试计划 

         cts_host> ls  -p      查看测试包

         cts_host>start  -plan  [plan name]  运行VM测试计划

         cts_host>start -plan  [plan_name]-p [package_name] 运行测试计划下的测试包

         cts_host>start –plan [test plan name] –t[package_name].[class_name]#[plan_package_test_name]

 

 

其实打开android-cts/repository/plans目录,可以看到有哪些test plan

RefApp.xml

Signature.xml

VM.xml

AppSecurity.xml

Java.xml

Android.xml

CTS.xml

 

那些xml文件打开后可以看到一些uri,指定了要测试哪些东西

ls –plan其实就是列出那些xml文件名(去掉.xml这四个字母)

        

运行VM测试计划

cts_host > start  --plan VM

 

运行Java计划下的android.core.tests.archive

cts_host > start  --plan  Java  -p  android.core.tests.archive

 

 

 

运行Java计划下android.core.tests.archive包下的test_tostring测试项

cts_host > start  --plan  Java  -t  android.core.tests.archive .java.Util.jar.AttributesNamesTest#test_toString

 

 

 

在指定设备上运行测试计划中的测试包

cts_host > start  --plan  VM  -d 23232326

 

 

 

 查看测试结果

cts_host > ls  -r

查看某个session的测试结果

ls –r –s sessionid

比如

ls -r -s 4

CTS测试会自动生成相应的测试包,该包位于如下目录:

android-cts/repository/results

用IE浏览器打开里面的 testResult.xml文件,可以知道哪些是通过CTS测试的。

测试通过以后,可以把CTS生成的结果(就是result下面那个以测试时间命名的.zip文件)提交给cts@android.com

四.  解决测试中的问题

知道哪个包失败后,可以单独对该包测试,比如签名不过

$adb install android-cts/repository/testcases/SignatureTest.apk

$adb shell pm list instrumentation

$adb shell am instrument w android.tests.sigtest/.InstrumentationRunner

 

五.  在Windows下运行CTS

在windows下运行CTS,则需要分析下startcst里的实际内容,可以把它翻译成dos的批处理,或者如果装了cygwin的话,在cygwin下运行startcts。 或者看看startcts里是如果调Java去做测试的,直接在cmd命令行输入java命令去测试

六.  其它

如果最新的测试包和本文章有出入,可以参考官方网站的测试手册,按里面的操作进行。

按里面的操作进行

在测试过程中会碰到自动重启手机的情况,可以修改android-cts/repository/host_config.xml文件,

其中测试次数改为-1<IntValue name="maxTestCount" value="-1" />


参考链接:http://blog.csdn.net/superkris/article/details/7967159

原创粉丝点击