CTS全称Compatibility Test Suite兼容性测试工具,为了保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document,CDD)。当电子产品开发现来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台上。通过了CTS验证,需要将测试报告提交给Google,以取得android market的认证。CTS是一款 通过命令行操作的工具。目前CTS没有提供windows版本,只能在Linux下测试。
1.下载配置android-SDK linux版本,地址:
http://developer.android.com/sdk/index.html
2.jdk安装配置
http://source.android.com/source/initializing.html
3.下载android-cts包,下载地址:
http://source.android.com/compatibility/downloads.html
需要根据手机系统版本和类型下载对应版本的cts包,否则将无法运行测试
大部分是基于Junit和仪表盘技术编写的。还扩展了自动化测试过程,可以自动执行用例,自动收集和汇总测试结果。CTS采用XML配置文件的方式将这些测试用例分组成多个测试计划(plan),第三方也可以创建自己的plan。
4.将android-sdk和android-cts解压放置在同一个文件夹下
5.添加环境变量/etc/profile文件中
在进行CTS测试之前,我们先理解其中几个概念:
Test Plan(Plan):测试计划,Test package的集合,每个Plan中都包含若干个测试包,以android-cts 2.2版本为例,总共有8个测试计划:
CTS:包含2万多个测试用例,这些测试用例是检验兼容性必须的,性能测试不包含在本计划中,随版本的更新,本测试计划也
会更新。
Signature:包含所有针对公有APIs的所有测试
Android:包含针对android APIs的所有测试
Java:包含所有针对Java核心library的测试
VM:包含对虚拟机的所有测试
RefApp:包含针对参与应用程序的所有测试,随版本的更新,本测试计划也会更新
Performance:包含所有针对性能的测试,随版本的更新,本测试计划也会更新
AppSerurity:针对Application安全性的测试
Test Package(Package):测试包,Test Case的集合
Test Case:测试用例,Test的集合
Test:测试,每一个测试对应一个或者多信Instrumentation Test
Instrumentation Test:Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
Result_Type:CTS的测试可以通过命令查阅,也可以通过浏览器查看结果文件
命令查阅结果:其中Test Result有四种类型的值:Pass,Fail,Timeout,NoExecuted
浏览器查看testResult.xml,路径:.../android-cts/repository/results/
CTS测试执行之前要做的准备工作如下:
PC端操作:
1.检测设备是否连接上电脑
打开终端输入命令:adb devices,连接上会显示设备ID,如果端口被占用
$adb kill-server
$sudo adb start-server
$adb devices
2.设备端安装CtsDelegatingAccessibilityService.apk
此包位于android-cts/repository/testcases下面。可以将安装包拷贝到手机后安装也可以通过打开终端输入命令,安装完成后设置进入手机设置菜单
Setting->Accessitility->Accessibility->DelegatingAccessibilityService
终端操作:
1.下载兼容性测试用例包,并解压,解压后的文件名命名为"android-cts"。
2.重置手机(恢复出厂设置)。
3.去年谷歌账户。
4.设置手机语言为英语:Setting->Language&input->language->English(United States)。
5.插入SIM卡和外置SD卡(SD卡需要格式化:Setting->Storage->Erase SD card->Erase SD card->Erase Everything)。
6.插入USB,连接手机到电脑,可以用adb devices检查,是否正确连接。
7.打开wifi,并连接到可用wifi。
8.打开蓝牙,无须配对。
9.保证手机无操作30分钟后LCDoff:Settings->Display->Sleep->30 minutes。
10.去掉屏幕锁:Settings->Security->ScreenLock的值是"None"。
11.打开Settings->Locationservices->"Google location services","GPS satellites","Location&Google search"。
12.打开Settings->Accessibility->Developeroptions->USB debugging(USB调试)。
13.打开Settings->Accessibility->Developeroptions->Stay Awake(保持唤醒)。
14.打开Settings->Accessibility->Developeroptions->Allow mock location(允许模拟位置)。
15.通过Settings->Speechsynthesis->Install voice data安装“Text To Speech”文件(com.svox.langpack.installer-1.apk),假如android-cts/repository/testcases/中没有此文件,就省去这一步。
16.如果需要执行可访问性方面的兼容性测试,则安装“CtsDelegatingAccessibilityService.apk”(adbinstall -r */android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk),并将Settings->Accessitility->DelegatingAccessibility Service选项打开。
17.如果需要执行设备管理方面的兼容性测试,则安装“CtsDeviceAdmin.apk”(adb install -r */android-cts/repository/testcases/CtsDeviceAdmin.apk),并将Setting->Security->DevicesAdminstrators->android.devicesadmin.cts.CtsDevicesAdmin等选项打开。
TestCase里面包含很多的测试用例,可以全部测试,也可以只测试部分。
1.进入CTS测试环境
开启终端输入命令:startcts //注意权限问题
如果权限不够的话输入:sudo ./startcts
输入用户密码
当出现
Android CTS version 2.2_r1
Device(s5830f1133529) connected
cts_host > cts_host >
就代表已经进入CTS测试环境
2.CTS测试方法
查看测试计划
Ls --plan
查看测试包
Ls -p
运行测试计划
start --plan [test_plan_name]
举例:运行VM测试计划
输入命令:--plan VM
运行测试计划下的测试包
start --plan [test_plan_name] -p/--package [plan_package_name]
举例:运行Java计划下的android.core.tests.archive测试包
运行测试计划下测试包中的某个测试项
Start --paln [test plan name] -t
[plan_package_name].[class_name]#[plan_package_test_name]
举例:运行Java计划下android.core.tests.archive包下的test_tostring测试项
指定某个设备上运行摸个测试计划中的测试包
start --plan [test_plan_name ]‐d/--device [device_ID]
举例:指定设备ID号为1234567890ABCDEF运行VM测试计划
Ø 查看测试结果
Ls –r
举例:
Ø 查看某个session的测试记录
ls -r/--result -s/--session session_id
举例: ls –r –s 3
Host:
help: 查看帮助信息
exit: 退出
Plan:
ls--plan: 列出所有的测试包
ls--plan plan_name: 查看测试方案
add--plan plan_name: 新建一个测试方案
add--derivedplan plan_name -s/--session session_id -r/--resultresult_type:
derive a plan from the givensession
rm--plan plan_name/all: remove a plan or all plans fromrepository
start --plan test_plan_name: 运行一个测试方案
start --plan test_plan_name -d/--device device_ID: run a test planusing the
specified device
start --plan test_plan_name -t/--test test_name: run a specifictest
start --plan test_plan_name -p/--package java_package_name:运行一个特定的java测试包
start --plan test_plan_name -t/--test test_name -d/--devicedevice_ID: 用指定的device运行一个特定的测试方案
start --plan test_plan_name -p/--package java_package_name-d/--device devic
e_ID: run a specific java package using thespecified device
Package:
ls-p/--package: list available packages
ls-p/--package package_name: list contents of the package withspecified na
me
add-p/--package root: add packages from root to repository
rm-p/--package package_name/all: remove a package or all packagesfrom repo
sitory
Result:
ls-r/--result: list all result of sessions
ls-r/--result -s/--session session_id: list detail case result of aspecifi
ed session
ls-r/--result [pass/fail/notExecuted/timeout] -s/--sessionsession_id: list
detail cases of a specifiedsession by the specified result.
History:
history/h: list all commands in command history
history/h count: list the latest count records in commandhistory
history/h -e num: run the command designated by 'num' in commandhistory
Device:
ls -d/--device: list available devices
网址:http://source.android.com/compatibility/downloads.html