目录
一、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_r2)
(4)平板电脑配置
(5)手机配置
(6)预装 ITS apk安装及使用
测试场景
测试套件使用
(1)配置 配置文件
(2)加载环境变量
(4)获取results log
一、xts简介
XTS 通常指 Android 设备/系统要过 Google 认证时那一整套 合规与兼容性测试体系 的统称(不是单一一个 APK),常见会把下面几类都算进 “XTS 家族”:
- CTS(Compatibility Test Suite):兼容性/行为一致性自动化测试,覆盖面最广。官方链接:https://source.android.google.cn/docs/compatibility/cts
- CTS‑Verifier:需要人工操作/外设/相机/传感器等场景的验证项。也称its.官方链接:https://source.android.com/docs/compatibility/cts/camera-its-tests?hl=zh-cn&authuser=1
- GTS(GMS Test Suite):与 GMS 包/预装应用/策略 相关的测试(面向带 Google 服务的机型)。
- VTS(Vendor Test Suite):更偏 HAL/内核/驱动接口 与 Treble 相关的供应商侧测试。
官方链接:https://source.android.com/docs/core/tests/vts
Trable链接:https://source.android.com/docs/core/architecture/treble?hl=zh-cn#testing-treble
- GSI(Security 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。
(1)adb 安装
sudo apt-get install android-tools-adb
(2)aapt安装
sudo apt-get install aapt
(3)java安装(终端直接输入jave,ubuntu会提示可以安装哪些选项)
sudo apt-get install openjdk-11-jre-headless
(4)javac安装
sudo apt-get install openjdk-11-jdk-headless
(5)安装fastboot
sudo apt-get install fastboot
官方链接:https://source.android.com/docs/compatibility/cts/setup?hl=zh-cn&authuser=1
3、选择测试工具包
一般来说,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 root,adb disable-verity,adb reboot
6.开机之后adb root,adb remount 此时成功会提示: 然后正常push即可。
当然,现在各大厂商也有自己高效的解锁方法,按照对应方法解锁即可
三、测试
1、cts测试:
环境准备:
(1)基于已经搭建好的测试环境
(2)测试CTS需要国际网络权限
(3)下载CTS测试套件(与整机对齐,例使用的是:15_r2等)
(4)手机配置
- 1)打开开发者模式(设置->关于手机->版本信息->点击版本号10次,打开开发者模式)
- 2)配置不使用锁屏、充电时屏幕不休眠、USB调试、OEM解锁、禁止权限监控(设置->其它设置->开发者选项)
- 3)设置屏幕超时(设置->显示与亮度->屏幕超时30分钟)
- 4)连接测试WIFI
- 5)设置语言与区域(设置->其它设置->语言与区域->语言:英语&&区域:美国)
(5)手机连接上电脑
测试套件使用
(1)进入cts控制台
进入android-cts/tools/目录下,执行./cts-tradefed
(2)测试指令(基本全部测试命令,其他测试项可以通过修改对应命令项去测对应项)
整测: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 bootloader
fastboot reboot fastboot
fastboot flash system [google system 镜像文件]
fastboot -w或者 fastboot --fs-options=casefold,projid -w
fastboot 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-tradefed
(3)测试指令(需要测试下面两个测试用例)
1)run vts --skip-all-system-status-check -m VtsHalCameraProviderV2_4Target
2)run vts --skip-all-system-status-check -m VtsHalCameraServiceV2_0TargetTest
VtsHalCameraProviderV2_4Target可能会有变化,在对应套件里面里面去查看,在testcase里面搜camera,去看vts的测试项
(4)查看结果(查看log和result的方法和cts相同)
4、its测试
环境准备
(1)物料准备
its需要专门的测试环境,比如闪光灯,eis,fusion测试等。电脑一台ubuntu系统的笔记本、平板一台、ITS测试箱一个、sensor_fusion测试箱一个、毛玻璃一块。
(2)基于已经搭建好的测试环境
(3)下载测试套件(android-cts-verifier,跟测试对齐环境看他们使用的是哪个版本的,例:15_r2)
(4)平板电脑配置
1)启用选项
开发者选项开启
USB调试
不锁屏
2)禁用选项
自动系统更新
通过USB验证应用
(5)手机配置
1)打开开发者模式(设置->关于手机->版本信息->点击版本号10次,打开开发者模式)
2)配置不使用锁屏、充电时屏幕不休眠、USB调试、OEM解锁、禁止权限监控(设置->其它设置->开发者选项)
3)设置屏幕超时(设置->显示与亮度->屏幕超时30分钟)
4)连接测试WIFI
5)设置语言与区域(设置->其它设置->语言与区域->语言:英语&&区域:美国)
(6)预装 ITS apk安装及使用
1)adb devices,查看设备
1)在ITS测试套件android-cts-verifier目录下找到CtsVerifier.apk
2)安装CtsVerifier.apk(adb install -s 8XJFAEY9PRFUN7IF -r -g CtsVerifier.apk)
3)安装jetpack-camera-app.apk (测试闪光灯需要,安装方法同上)
4)安装成功后在手机打开CtsVerifier.apk,找到Camera ITS test点击打开
测试场景
- scene0:拍摄元数据、抖动、陀螺仪、振动
- scene1:曝光、感光度、EV 补偿、YUV 与 JPEG/RAW
- scene2:人脸检测、需要彩色场景的测试
- scene3:边缘增强、镜头移动
- scene4:宽高比、剪裁、视野范围
- scene5:镜头阴影
- scene6:缩放
- scene7:多相机开关
- scene8:AE 和 AWB 区域测光
- scene9:JPEG 压缩
- scene_extensions:相机扩展
- scene_flash:自动闪光,最小帧速率
- scene_video:丢帧
- sensor_fusion:相机/陀螺仪时间偏差
- feature_combination:功能组合
官网链接:https://source.android.com/docs/compatibility/cts/camera-its-tests?hl=zh-cn
测试套件使用
(1)配置 配置文件
文件路径:android-cts-verifier/CameraITS/config.yml(一般只需要配置如下选项)
具体的可以去官网上去看看
官方链接:https://source.android.com/docs/compatibility/cts/camera-its?hl=zh-cn
(2)加载环境变量
1)文件路径:android-cts-verifier/CameraITS/build/envsetup.sh
2)在android-cts-verifier/CameraITS/路径下执行 . build/envsetup.sh 或者 source build/envsetup.sh
(3)测试指令
1)在android-cts-verifier/CameraITS/路径下执行
2)指定camera(测试哪几个camera与测试对齐,一般测试camera=0,1)
python tools/run_all_tests.py camera=0(默认会跑scenes=0,1,2,3,4,6)
3)指定camera与场景
python tools/run_all_tests.py camera=1 scenes=2_a
python tools/run_all_tests.py camera=0 scenes=0,1,2
4)指定单项测试(也可删除某一个场景下的其它脚本)
python tests/scene1_1/test_exposure.py -c manual.yml
(4)获取results log
1)每次执行测试命令后,会新建一个临时目录,存放本次测试的log信息,路径一般是在本地temp文件夹中。
2)从scene_test_summary.txt文件中可以测试结果
3)从test_summary.yaml可以看到报错细节
4)test_log.DEBUG(测试流程的log)对应测试的log