Android-CTS的测试环境测试指令及过程
Android CTS的测试环境、测试指令及过程
1. CTS 测试环境设置
1.1. CTS 介绍
Android
兼容性测试简称
CTS - Compatibility Test Suite,
是一套开源的测试框架
,
使用它来验证
你的设备是否具备兼容性。让
APP
提供更好的用户体验,让开发者设计更高质量的
APP
1.2. CTS 环境搭建
Operating System: Ubuntu 10.04 64bit(or later)
JDK: On Ubuntu, use OpenJDK 8
SDK: android-sdk-r24.0.1-linux(or later)
在
run cts
时,请确保
adb
与
aapt
在系统中能正常使用,如若不行,请在
SDK
包中找到
adb
与
aapt
,并在系统环境变量中配置路径
1.3. Android 设备设置
在进行
cts
测试前,需要先 对
android
设备进行设置,确保测试环境配置正确
恢复出厂设置
: Settings > Backup & reset > Factory data reset
设置系统语言为
English ( United States
): Settings > Language & input > Language
打开定位功能 : Settings > Location > On
连接
wifi : Settings > Wi-Fi
使能 USB debugging: Settings > Developer options > USB debugging
确保设备上没有密码锁或者锁屏界面 : Settings > Security > Screen lock > None
Select : Settings > Developer options > Stay Awake > On
Select : Settings > Developer options > Allow mock locations > On
设置系统亮屏时间 : Settings > Display > Sleep > 30 minutes
1.4. CTS 测试包下载
根据设备当前系统软件版本
,
可以从
官 网 上 下 载 相 应 的
cts
测试包:
2. Running CTS tests
2.1. 执行 cts 测试
连接至少一台设备,打开
cts
控制台,在解压好的
cts
目录中,执行如下命令
$ ./android-cts/tools/cts-tradefed
开始执行
cts
默认测试项
run cts –plan CTS
对于
android6.0
或者更早的版本,使用的是
cts v1 console.
对于
android7.0
或者最新的版本,使用的是
cts v2 console.
cts v1
与
cts v2
在执行
cts
测试时所使用的命令以及执行内容有所不同
2.2. CTS V1 Console 测试命令
1、测试完整
cts plan
run cts –plan <test_plan_name>
e.g. run cts –plan cts
跑一次完整
CTS
,所有测试项都需要兼容
可以通过执行
l/list p/plans
列出当前所有可执行的
plan
2、测试
cts
中某个单独的
package
run cts –package/-p
e.g. run cts –p android.app
测试
android.app
包中所有测试项
可以通过执行
l/list packages
列出当前所有可执行的
packages
3、 测试
cts
中某个单独的
class
或者指定
class
中的某个特定的方法
run cts –class/-c
e.g. run cts -c android.security.cts.StagefrightTest -m testStagefright_cve_2015_6604
测试
android.security.cts.StagefrightTest
中的
testStagefright_cve_2015_6604
方法
4、执行
64
位
cts
测试或者
32
位
cts
测试 ,可以在
cts
测试用例后面增加
option “–force-abi 32|64”
e.g. run cts -c android.security.cts.StagefrightTest -m testStagefright_cve_2015_6604
–force-abi 32
2.3. CTS V2 Console 测试命令
(1)测试完整
cts plan
run cts –plan <test_plan_name>
e.g. run cts –-plan cts
跑一次完整
cts
,所有测试项都需要兼容
可以通过执行
l/list p/plans
列出当前所有可执行的
plan
(2)
测试
cts
中某个单独的
mudule
run
e.g. run cts –module CtsGestureTestCases
(或者
Gesture
)
测试
CtsGestureTestCases
模块中所有的测试项,
CtsGestureTestCases
可以简写成
Gesture
可以通过执行
l/list mudules
列出当前所有可执行的
mudules
(3)
测试
cts
中某个单独的
class
或者指定
class
中的某个特定的方法
run cts – module/-m <test_module_name> – test <test_name>
Test name
可以是
或者
<native_name>
e.g. run cts -m Gesture –test android.gesture.cts.GestureTest#testGetStrokes
测试
Gesture
模块中的
testGetStrokes
方法
(4)
执行
64
位
cts
测试或者
32
位
cts
测试 ,可以在
cts
测试用例后面增加
option “–abi/-a
<abi_name>
2.4. 其他常用测试命令
(1)
CTS
测试可以在一台
PC
上同时测试多台设备,通过指定设备
device_id
就可以在不影响
其他设备测试
cts
的情况下单独测试
cts
e.g. run cts –plan cts –serial/-s <device_id>
可以通过执行
l/list d/devices
获取当前设备的
device_id
(2)
–skip-preconditions
加上这个
option
可以在
cts
测试时不去检验设备的环境配置。例如不去检查
wifi
是否连接
或者
media
文件是否在测试设备中等
2.5. CTS 测试结果
CTS
测试执行完成后,测试结果会保存在下面这个文件中
.
$ CTS_ROOT/android-cts/repository/results/<start_time>.z
ip
测试
log
保存在下面这个文件中
$ CTS_ROOT/android-cts/repository/logs/<start_time>
(1)
CTS
测试结果分析
根据使用的
CTS
版本不同,
CTS
测试结果在显示上也有所差异
CTS v1 for Android 6.0 and earlier
CTS v2 for Android 7.0 and later
Test Summary
中提供设备信息,执行的
test
项内容,执行开始时间和执行结束时间, 同时也会显示当前测试有多少项 pass
,多少项
fail
,有哪些项超时没执行等信息。 Test Report 中会提供每一个测试
package
中的每一项测试
case
的测试结果。根据执行 的结果,报告中会列出测试 package
名字,测试单元名字,测试具体
case
名字,同时会显 示该项测试结果—-pass
,
fail
,
timed out
, 还是
not excuted.
如果执行
fail
,报告中会显示 具体 fail
的
log
信息 CTS v1 测试结果如下图
.
CTS
测试
log
分析
CTS
测试完成后,测试
log
中会保存
PC
端执行的
log
以及被测试设备的
log
。
device_logcat_XXXXXXX.zip
是被测设备的
log
host_log_XXXXXXX.zip
是
PC
端执行
cts
的
log