目录一、xts简介二、环境配置1、申请一个ubuntu云桌面或者专门的ubuntu系统笔记本2、CTS、GSI、VTS、GTS环境配置3、选择测试工具包4、fastboot解锁三、测试1、cts测试环境准备测试套件使用查看结果2、GSI测试环境准备测试命令3、vts测试环境准备测试套件使用4、its测试环境准备1物料准备2基于已经搭建好的测试环境3下载测试套件android-cts-verifier跟测试对齐环境看他们使用的是哪个版本的例15_r24平板电脑配置5手机配置6预装 ITS apk安装及使用测试场景测试套件使用1配置 配置文件2加载环境变量4获取results log一、xts简介XTS 通常指 Android 设备/系统要过 Google 认证时那一整套 合规与兼容性测试体系 的统称不是单一一个 APK常见会把下面几类都算进 “XTS 家族”CTSCompatibility Test Suite兼容性/行为一致性自动化测试覆盖面最广。官方链接https://source.android.google.cn/docs/compatibility/ctsCTS‑Verifier需要人工操作/外设/相机/传感器等场景的验证项。也称its.官方链接https://source.android.com/docs/compatibility/cts/camera-its-tests?hlzh-cnauthuser1GTSGMS Test Suite与 GMS 包/预装应用/策略 相关的测试面向带 Google 服务的机型。VTSVendor Test Suite更偏 HAL/内核/驱动接口 与 Treble 相关的供应商侧测试。官方链接https://source.android.com/docs/core/tests/vtsTrable链接https://source.android.com/docs/core/architecture/treble?hlzh-cn#testing-trebleGSISecurity Test Suite通用系统映像上的兼容性测试套件GSI跟CTS类似只是需要system替换成Android原生的system。官方链接https://developer.android.google.cn/topic/generic-system-image二、环境配置1、申请一个ubuntu云桌面或者专门的ubuntu系统笔记本一般来说google这边测试通过都是通过ubuntu环境下测试因此最好申请一个ubuntu云桌面环境这样方便与测试对齐测试环境。2、CTS、GSI、VTS、GTS环境配置申请好ubuntu系统后需要配置下如下环境。可以联网的可以直接通过apt-get安装以下软件无法联网的可以自己的下载好软件包配置环境变量主要是adb、aapt。1adb 安装sudo apt-get install android-tools-adb2aapt安装sudo apt-get install aapt3java安装终端直接输入javeubuntu会提示可以安装哪些选项sudo apt-get install openjdk-11-jre-headless4javac安装sudo apt-get install openjdk-11-jdk-headless5安装fastbootsudo apt-get install fastboot官方链接https://source.android.com/docs/compatibility/cts/setup?hlzh-cnauthuser13、选择测试工具包一般来说google会提供给厂商测试包去对应的路径下载即可。本文不做介绍对于its来说测试项官网有介绍。ITS测试环境除了依赖CTS测试的环境还依赖python环境。一般ubuntu自带的python版本基本达不到要求需要检查python版本以及库是否能达到以上要求。4、fastboot解锁因为某些测试项需要root权限手机最好是解锁状态下载去执行对应测试。解锁步骤1.进入设置开发者模式打开OEM unlocking选项.2.adb reboot bootloader进入fastboot模式.3.连接电脑输入命令fastboot flashing unlock然后根据命令按音量上键解锁.4.成功之后输入fastboot reboot重启手机.5.开机之后依次adb rootadb disable-verityadb reboot6.开机之后adb rootadb remount 此时成功会提示 然后正常push即可。当然现在各大厂商也有自己高效的解锁方法按照对应方法解锁即可三、测试1、cts测试环境准备1基于已经搭建好的测试环境2测试CTS需要国际网络权限3下载CTS测试套件与整机对齐例使用的是15_r2等4手机配置1打开开发者模式设置-关于手机-版本信息-点击版本号10次打开开发者模式2配置不使用锁屏、充电时屏幕不休眠、USB调试、OEM解锁、禁止权限监控设置-其它设置-开发者选项3设置屏幕超时设置-显示与亮度-屏幕超时30分钟4连接测试WIFI5设置语言与区域设置-其它设置-语言与区域-语言英语区域美国5手机连接上电脑测试套件使用1进入cts控制台进入android-cts/tools/目录下执行./cts-tradefed2测试指令基本全部测试命令其他测试项可以通过修改对应命令项去测对应项整测run cts --skip-all-system-status-check -m CtsCameraTestCases单测run cts --skip-all-system-status-check -m CtsCameraTestCase -t 测试小项查看结果在进入android-cts/目录下的logs和results目前保存着本次的测试结果都是以测试开始的时候进行命名的。1在test_result.html中可以看到本次的测试结果对于fail的我们需要进行retry或者单测如果retry测试不过那么需要看log为什么报错及时进行修复。2在logs中一般主要看logcat和host_log一般我们很少看这个log这里只是浏览一个大概调试的话需要用log工具箱专门抓log比较全面。3测试时长测试一轮arm64-v8a约7~8h。如果全测试还包含armeabi-v7a和armabi(arm处理器差异)2、GSI测试环境准备与CTS类似与CTS不同的是需要刷Google的sysimg后测试。步骤adb reboot bootloaderfastboot reboot fastbootfastboot flash system [google system 镜像文件]fastboot -w或者 fastboot --fs-optionscasefold,projid -wfastboot reboot。测试套件与cts一致。测试命令整测run cts-on-gsi --skip-all-system-status-check -m CtsCameraTestCases单测run cts-on-gsi --skip-all-system-status-check -m CtsCameraTestCases -t 测试小项其他测试命令参考上面cts测试只需要要改成cts-on-gsi以及后面的CtsCameraTestCases以及后面的测试小项3、vts测试环境准备1刷system镜像更gsi一致2刷vendor_boot镜像获取vendor_boot-debug.img在手机所刷对应版本路径的BOOT_DEBUG_IMAGE目录下获取vendor_boot-debug.img测试套件使用1在XTS工具下载android-vts测试套件2插入手机进入vts控制台进入android-vts/tools/目录下执行./vts-tradefed3测试指令需要测试下面两个测试用例1run vts --skip-all-system-status-check -m VtsHalCameraProviderV2_4Target2run vts --skip-all-system-status-check -m VtsHalCameraServiceV2_0TargetTestVtsHalCameraProviderV2_4Target可能会有变化在对应套件里面里面去查看在testcase里面搜camera去看vts的测试项4查看结果查看log和result的方法和cts相同4、its测试环境准备1物料准备its需要专门的测试环境比如闪光灯eisfusion测试等。电脑一台ubuntu系统的笔记本、平板一台、ITS测试箱一个、sensor_fusion测试箱一个、毛玻璃一块。2基于已经搭建好的测试环境3下载测试套件android-cts-verifier跟测试对齐环境看他们使用的是哪个版本的例15_r24平板电脑配置1启用选项开发者选项开启USB调试不锁屏2禁用选项自动系统更新通过USB验证应用5手机配置1打开开发者模式设置-关于手机-版本信息-点击版本号10次打开开发者模式2配置不使用锁屏、充电时屏幕不休眠、USB调试、OEM解锁、禁止权限监控设置-其它设置-开发者选项3设置屏幕超时设置-显示与亮度-屏幕超时30分钟4连接测试WIFI5设置语言与区域设置-其它设置-语言与区域-语言英语区域美国6预装 ITS apk安装及使用1adb devices查看设备1在ITS测试套件android-cts-verifier目录下找到CtsVerifier.apk2安装CtsVerifier.apkadb install -s 8XJFAEY9PRFUN7IF -r -g CtsVerifier.apk3安装jetpack-camera-app.apk 测试闪光灯需要安装方法同上4安装成功后在手机打开CtsVerifier.apk找到Camera ITS test点击打开测试场景scene0拍摄元数据、抖动、陀螺仪、振动scene1曝光、感光度、EV 补偿、YUV 与 JPEG/RAWscene2人脸检测、需要彩色场景的测试scene3边缘增强、镜头移动scene4宽高比、剪裁、视野范围scene5镜头阴影scene6缩放scene7多相机开关scene8AE 和 AWB 区域测光scene9JPEG 压缩scene_extensions相机扩展scene_flash自动闪光最小帧速率scene_video丢帧sensor_fusion相机/陀螺仪时间偏差feature_combination功能组合官网链接https://source.android.com/docs/compatibility/cts/camera-its-tests?hlzh-cn测试套件使用1配置 配置文件文件路径android-cts-verifier/CameraITS/config.yml一般只需要配置如下选项具体的可以去官网上去看看官方链接https://source.android.com/docs/compatibility/cts/camera-its?hlzh-cn2加载环境变量1文件路径android-cts-verifier/CameraITS/build/envsetup.sh2在android-cts-verifier/CameraITS/路径下执行 . build/envsetup.sh 或者 source build/envsetup.sh3测试指令1在android-cts-verifier/CameraITS/路径下执行2指定camera测试哪几个camera与测试对齐一般测试camera0,1python tools/run_all_tests.py camera0默认会跑scenes0,1,2,3,4,63指定camera与场景python tools/run_all_tests.py camera1 scenes2_apython tools/run_all_tests.py camera0 scenes0,1,24指定单项测试也可删除某一个场景下的其它脚本python tests/scene1_1/test_exposure.py -c manual.yml4获取results log1每次执行测试命令后会新建一个临时目录存放本次测试的log信息路径一般是在本地temp文件夹中。2从scene_test_summary.txt文件中可以测试结果3从test_summary.yaml可以看到报错细节4test_log.DEBUG测试流程的log对应测试的log