CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。
一,搭建CTS测试环境
1,Linux环境:个人使用Ubuntu 24.04 LTS系统版本。
2,下载 CTS
2.1从 Android 开源项目 (AOSP) 下载 CTS 包。可以通过以下链接访问最新的 CTS 版本:
选择适合你的 Android 版本的 CTS 包并下载。
链接:CTS下载
2.2 解压 CTS 包:
下载完成后,解压下载的 CTS zip 包。
unzip android-cts.zip
cd android-cts
3, 配置adb fastboot
确保 adb 和 fastboot 工具在系统 PATH 中。如果未配置,可以在 ~/.bashrc 或 ~/.bash_profile 中添加以下内容:
下载链接:platform-tools
配置环境变量:
export PATH=$PATH:/path/to/android-sdk/platform-tools
4,JDK环境: Ubuntu 24.04提供了两个主要的Java选项(OpenJDK & Oracle JDK),我们使用apt安装OpenJDK。
# 更新软件源
sudo apt update
# 查找openjdk
sudo apt search openjdk
# 安装openjdk 11(用于cts)
sudo apt install openjdk-11-jdk
# 安装openjdk 21(用于sdkmanager)
sudo apt install openjdk-21-jdk
# 检查java是否安装成功
java -version
javac -version
# 更换版本,注意javac也同步更换,保持一致
sudo update-alternatives --config java
sudo update-alternatives --config javac
配置java环境变量
# 进入该文件进行编辑
vim .bashrc
# 在文件最后添加以下内容
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export CLASSPATH=.:%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
# wq保存后让新增的环境变量生效
source .bashrc
5, 安装aapt2
aapt2 是在 Android SDK里面
5.1 下载并安装 Android SDK
首先,确保你已经安装了 Android SDK。如果尚未安装,可以从 Android 开发者网站 下载并安装 Android Studio,它会包含 Android SDK。
5.2 找到 aapt2 工具
aapt2 工具通常位于 Android SDK 的 build-tools 目录中。例如,路径可能类似于:
/path/to/Android/sdk/build-tools/<version>/aapt2
5.3 配置环境变量
(1) 编辑你的 shell 配置文件(例如 ~/.bashrc 或 ~/.bash_profile),追加下面配置
export PATH=$PATH:/home/user/Android/Sdk/build-tools/30.0.3
6, 手机的配置要求
1、确保wifi可访问google服务且稳定,设置VPN,确保IPV6可用。
2、确保测试设备附近有可用的蓝牙设备。
3、如果不是刚刷机或者恢复出厂设置的的手机,需要设置Settings > Backup & reset > Factory data reset
4、语言要设置为英语,Settings > Language & input > Language
5、要打开位置,Settings > Location > On
6、Settings > Security > Screen lock > None
7、Settings > Developer options > USB debugging
8、Settings > Date & time > Use 24-hour format > Off
9、Settings > Developer options > Stay Awake > On
10、下载最新的CTS Media Files,拷贝到手机里面,可以单独拷贝某个分辨率的。
chmod u+x copy_media.sh
./copy_media.sh
11、保证手机IMEI号正确
7, Python环境
# 检查系统是否安装python3
python3 --version
# Python虚拟环境相关工具
sudo apt install virtualenv
# virtualenv是否安装成功
virtualenv -h
8, 网络环境
确保PC设备和Android设备均处于外网环境中,并设置JAVA_TOOL_OPTIONS使用代理。
二 , 运行 CTS 测试
1 启动 CTS:
在解压后的 CTS 目录中,运行以下命令启动 CTS 测试:
~/GMSTools/Tools_2024_6_13/CTS/13_r8/android-cts/tools$ ./cts-tradefed
执行后,会出现下述会话框
cts-tf >
示例:可以在在会话框中执行测试相关case, 执行后一般会等等一段时间会自动停止
run cts -m CtsAppTestCases -t android.app.cts.SystemFeaturesTest#testSensorFeatures -s 6137577941c14812354
执行整个CTS的测试:
run cts --plan CTS
CTS第一遍结束之后,会有很多没有执行的项,需要执行如下命令:
run cts --retry session-id --retry-type NOT_EXECUTED
假如第一次的session-id是0,则命令为
run cts --retry 0 --retry-type NOT_EXECUTED
继续未完成的cts测试
执行l r 命令,锁定需要继续跑的session_id : run cts --retry session_id
假如要重跑session-id为0的失败项,则执行: run cts --retry 0
2, 执行单独模块或者单独测试项
a、测试单个模块
run cts -m <模块名>
b、测试单个测试项
run cts -m <模块名> -t <test_name>
三,CTS测试报告及log
1、测试报告
路径:文件位于android-cts/results下面
命名规则:以测试开始执行的日期和时间命名
查看报告文件:test_result.xml(建议使用火狐浏览器打开)
2、CTS log
路径:文件位于android-cts/logs
命名规则:以测试开始执行的日期和时间命名
3、 测试结果输出:
测试完成后,CTS 会生成一个结果目录,包含测试结果的详细报告。默认情况下,结果存储在 android-cts/results 目录下。
分析结果:
打开生成的结果文件(通常是一个 HTML 文件),查看测试结果和失败的测试用例。根据需要进行故障排除和修复。
四,cts测试常用命令
CTS测试常用命令包括:
查看帮忙信息:使用help命令可以显示帮助信息。
退出终端:使用exit命令可以正常退出CTS控制台。
运行测试计划:使用run cts --plan test_plan_name命令可以运行特定的测试计划。例如,run cts --plan CTS将运行所有的测试计划。
运行测试包:使用run cts --package/-p package_name命令可以运行特定的CTS测试包。
运行测试类和/或方法:使用run cts --class/-c class_name [–method/-m method_name]命令可以运行特定的测试类或方法。
在指定设备上运行测试:使用run cts [options] --serial/-s device_ID命令可以在指定的设备上运行CTS测试。
并行运行测试:使用run cts [options] --shards number_of_shards命令可以在多个设备上并行运行CTS测试。
继续未完成的测试:使用run cts --continue-session session_ID命令可以在先前未完成的测试报告上继续运行测试。
列出设备和他们的状态:使用l/listd/devices命令可以列出所有连接的设备及其状态。
列出CTS测试包:使用l/listpackages命令可以列出所有的CTS测试包。
列出CTS测试方案:使用l/listp/plans命令可以列出所有的CTS测试方案。
查看测试结果:使用l/listr/results命令可以列出当前库中的CTS测试结果。
这些命令提供了在CTS测试中进行各种操作的可能性,从查看帮助信息到运行特定的测试,以及管理测试结果等。