2、搭建CTS测试环境:硬件要求、软件要求、下载CTS套件、配置adb与fastboot、环境验证
好,咱们正式开始动手了。
搭建CTS测试环境,听起来好像就是装个软件、连个设备。但说实话,我见过太多人在这第一步就栽跟头。有的是硬件不达标,跑着跑着设备重启;有的是adb版本不对,测试用例死活跑不起来。所以这一章,咱们把每个细节都掰开揉碎了讲清楚。
2.1 硬件要求:别让设备拖后腿
先说说硬件。CTS测试对硬件的要求,其实比你想的要高。
测试设备:
- 必须是正式出货的商用设备,或者与商用设备完全相同的硬件版本。工程样机?我劝你别用,测出来的结果谷歌不认。
- 系统必须是user版本,不能是userdebug或eng版本。这一点很多人忽略,结果提交结果时被驳回。
- 设备要解锁bootloader。嗯,这个后面会细说。
- 存储空间要充足,至少预留8GB以上。我遇到过测试到一半报“空间不足”,整个session废掉的情况。
主机电脑:
- 操作系统:Ubuntu 18.04/20.04 LTS 64位。我个人习惯用20.04,兼容性最好。
- 内存:至少16GB。如果你同时跑多个设备,建议32GB。
- 硬盘:至少100GB空闲空间。CTS套件本身不大,但测试日志和结果文件会越积越多。
- CPU:4核以上,这个倒不是瓶颈。
2.2 软件要求:版本匹配是王道
软件环境这块,说白了就是版本要匹配。我见过最惨的一次,是有人用JDK 11去跑Android 9的CTS,结果一堆测试报错,排查了两天才发现是JDK版本问题。
必须安装的软件:
| 软件 | 版本要求 | 备注 |
|---|---|---|
| JDK | JDK 8(1.8.0_201以上) | Android 10及以下必须用JDK 8 |
| Android SDK | 最新稳定版 | 包含adb、fastboot等工具 |
| Python | Python 3.6+ | CTS 11.0以后依赖Python 3 |
| OpenGL | 支持OpenGL ES 3.0+ | 用于图形相关测试 |
2.3 下载CTS套件:选对版本很重要
CTS套件去哪下?官方渠道就一个:Android兼容性测试套件下载页面(需要谷歌账号登录)。
下载时要注意几点:
- 选择与你的Android版本完全匹配的CTS版本。比如Android 12就用CTS 12.x,别混用。
- 下载完整的CTS套件,包含所有测试用例和工具。别只下载部分模块。
- 下载后校验SHA-256值。我吃过这个亏——下载过程中文件损坏,跑了一天才发现是套件本身有问题。
下载完成后,解压到你的工作目录:
unzip android-cts-12.0_r1-linux_x86-arm.zip -d ~/cts/
cd ~/cts/android-cts-12.0_r1/
解压后的目录结构大概是这样的:
android-cts-12.0_r1/
├── tools/ # 核心工具
├── testcases/ # 测试用例
├── repository/ # 测试计划
├── results/ # 测试结果
└── android-cts/ # 主程序
2.4 配置adb与fastboot:连接设备的桥梁
adb和fastboot是CTS测试的“手脚”。配置不好,后面寸步难行。
第一步:安装adb和fastboot
如果你已经安装了Android SDK,那这两个工具就在 $ANDROID_HOME/platform-tools/ 目录下。如果没有,可以单独安装:
sudo apt update
sudo apt install android-tools-adb android-tools-fastboot
第二步:配置udev规则
这一步很多人会忘。不配置的话,adb可能识别不到设备。
# 创建udev规则文件
sudo vim /etc/udev/rules.d/51-android.rules
# 添加你的设备厂商ID,比如Google设备:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# 重新加载udev规则
sudo udevadm control --reload-rules
sudo udevadm trigger
第三步:验证adb连接
adb devices
如果看到设备列表里有你的设备,状态是“device”,那就对了。如果显示“unauthorized”,记得在设备上点“允许USB调试”。
adb reboot bootloader,然后执行 fastboot devices。如果能看到设备序列号,说明fastboot也配置好了。
2.5 环境验证:跑一个简单的测试试试水
环境搭好了,别急着跑全量测试。先验证一下环境是否正常。
验证步骤:
- 确认设备已解锁bootloader:
fastboot oem device-info(不同厂商命令略有不同) - 确认设备已连接Wi-Fi或移动网络。CTS很多测试需要网络。
- 确认设备屏幕常亮,且没有锁屏密码。
- 运行一个简单的测试模块试试:
cd ~/cts/android-cts-12.0_r1/
./tools/cts-tradefed run cts -m CtsOsTestCases -t android.os.cts.BuildVersionTest
这个测试只会检查系统版本号,跑得很快。如果它能通过,说明你的环境基本没问题。
如果测试失败,别慌。先看日志:
# 查看测试结果
ls results/latest/
# 查看详细日志
cat results/latest/test_result.xml | grep -A 10 "failed"
常见的失败原因无非就几种:adb版本不匹配、设备权限没给、网络不通。挨个排查就好。
好了,环境搭好了,验证也通过了。下一章咱们就开始真正跑测试了。记住,环境搭建这一步稳了,后面就顺了。