第一部分 环境搭建
1. 安装jdk6, 配置环境变量
在~/.bashrc中配置环境变量
export JAVA_HOME=JDK_PATH(根据jdk所在的实际路径写)
export PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2. 在http://developer.android.com/sdk/index.html下载
android-sdk_r22.0.1-linux.tgz
解压后进入android-sdk-linux/tools/目录, 给android加可执行权限
chmod a+x android
执行./android 选中platform-tools下载adb
然后在~/.bashrc中加入export PATH=$PATH:~/android-sdk-linux/platform-tools
把adb加入到环境变量中
3. 在http://source.android.com/compatibility/index.html下载
android-cts-media-1.0.zip测试CTS需要的媒体文件
4. 把待测试设备连接USB口, 执行lsusb查看设备ID.
Bus 001 Device 004: ID 18d1:4ee2 Google Inc. Nexus 4(debug)
sudo vim /etc/udev/rules.d/51-android.rules加入
SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="4ee2",
SYMLINK+="android_adb",MODE="0666"
其中的xxxx就是刚才lsusb查看到的设备的ID.
修改51-android.rules的权限
sudo chmod 0644 /etc/udev/rules.d/51-android.rules
重启udev服务sudo service udev restart
关闭adb server ./adb kill-server
5. 在http://source.android.com/compatibility/index.html下载
android-cts-4.1_r3-linux_x86-arm.zip(根据实际测试设备的android版本选定)
解压到任意位置.
至此测试CTS的环境就已经搭建成功了.
第二部分 设备配置
1. 配置前最好将设备恢复出厂设置, 并且格式化内部存储.
设置设备的默认语言为英语, 默认输入法为English (US), 时区为Pacific Time
2. 勾选Settings > Developer options 下面的
USB debugging和Allow mock locations和Stay awake三项
2. adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
勾选Settings > Accessibility > Accessibility > Delegating Accessibility Service
3. adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
勾选Settings > Location & security > Select device administrators下面的两项
4. 解压下载的媒体数据文件android-cts-media-1.0.zip,把解压后的文件
bbb_short和bbb_full拷贝到设备的/sdcard/test目录下.
5. 连接一个可以连通外网的热点, 最好能连接一个VPN账号, 否则部分用例无法通过.
第三部分 CTS测试及结果处理
1. 开始CTS测试
进入android-cts/tools/目录下面执行 ./cts-tradefed
出现
I/DeviceManager:Detected newdevice 0123456789ABCDEF
Android CTS 4.1_r3
cts-tf >
说明设备已经连接上
然后执行run cts --plan CTS开始CTS测试.
其中CTS是一个测试计划的名字, 也可以自定义一个测试计划
开始后会在android-cts/repository/results下根据开始测试的时间生成结果文件
执行结束后结果就是时间文件夹下的testResults.xml用浏览器打开就可以看到
详细的测试结果. 结果文件夹会被压缩成一个zip文件. 也就是要提交的结果文件.
2. CTS测试几乎不可能一次性全部通过.
对于不能通过的项目可以自己生产一个测试计划重新测试
首先使用 l r命令查看有哪些测试过的结果. 根据相应的时间找到本次测试的
session-id然后使用
add derivedplan -p plan_name -s session-id -r fail为本次失败的用例创建
一个测试计划plan_name, 然后run cts --plan plan_name继续测试失败的用例.
3. 如果仍不能测试通过甚至可以手动修改测试报告, 把没有通过的个数
换成notExecuted的
即把testResult.xml中<Summary failed="54" notExecuted="0"
timeout="0" pass="17618"/>
把希望重新测试的用例的个数写在 notExecuted里, 同时failed减去相应的个数.
然后把对应的failed用例的TestScene去掉(包括后面的</Test>),
把result="fail"换成result="notExecuted", 最后在
<Test name="test_ConstructorLjava_lang_StringI" result="fail"
starttime="Fri Jun 21 04:05:41 CST 2013"
endtime="Fri Jun 21 04:08:51 CST 2013">的结尾">中间加上一个/变成"/>
然后通过执行run cts --continue-session id继续测试刚才修改的未执行的用例.
注意修改报告的目的是继续进行没通过的测试, 而不是修改报告让报告变得更好看,
否则可以把所有用例都改成pass.
4. 可以通过help查看其它相关的命令的使用方法.