Android XTS相关问题分析总结
XTS概述
Android XTS是对CTS/GTS/VTS/STS/BTS/CTS-on-GSI等测试的统称。如下是对XTS的各部分的简要介绍:
CTS
Compatibility Test Suite 意为兼容性测试套件,是 Google 推出的 Android 平台兼容性测试机制。CTS 测试主要是测试 OEM 厂商设计的 Android 平台是不是符合 Android 的 API 接口定义。通过 CTS 测试不仅可以保证 Android 设备上正常运行,同时,也能够让所有的开发者放心地制作高质量的应用程序,因此只有通过 CTS 认证的设备才能合法的安装使用 Google market 等 Google 应用。
CTS 测试注意事项
测试版本:user 版本
安装Cts Verifier后,请手动授予CtsVerifier所有的权限,Android R请安装JDK 11
CTS 常用的测试命令
全测命令:run cts
单模块测试:run cts -m <模块名>
单项测试:run cts -m <模块名> -t <单项名>
多台机器测试:run cts --shard-count X
Re-try 测试:run retry --retry ID (l r 即可查看 Session ID)
CTS 更多信息可以参考Google 官方网站:https://source.android.com/compatibility/cts
CTS fail问题分析流程
根据报告的result目录,查看test_result.html、test_result_failures_suite.html,查看测试fail项,搜索项目源码,查看fail项报告的原因,或者根据fail项报错的异常信息中的提示查找对应信息,还可以在CTS套件源码中添加Log重新编译后替换原有套件中的apk重新验证,有一些问题实在找不到原因可以使用Pixel对比机看是否PASS,如果也是fail的需要查看CTS套件是否更新到最新,如果套件是最新的,就需要向Google咨询。
CtsTelephonyTestCases和CtsNetTestCases常见的fail原因:
1.xxxxx carrier privilege rules on it, 需要指定测试白卡
2.Please ensure the device has working mobile data, 需要正常上网的sim卡
3.Failed to connect to xxxx ipv6 xxxx, 需要特殊的 ipv6 网络
4.Failed to connect to com.google.xxx, 需要能访问Google的sim卡
CTS-on-GSI
和CTS测试项完全相同,只是需要刷入GSI镜像后测试,GSI:Generic System Image,即Reference AOSP system image 意为通用系统映像上的兼容性测试套件,这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包。
替换GSI命令
adb reboot bootloader
fastboot flashing unlock
fastboot reboot fastboot
fastboot flash system <Google signed GSI system.img>
fastboot -w
fastboot reboot bootloader
fastboot reboot
GTS
Google Mobile Services Test Suite 意为谷歌移动服务测试套件,谷歌移动服务提供了Search、 Search by Voice、Gmail、Contact Sync、 Calendar Sync、Talk、 Maps、 Steet View、 YouTube、 Android Market (Play store)等服务,当用户使用谷歌时,谷歌可以把各种广告嵌入到谷歌的服务中。
GTS 测试注意事项
测试版本:user 版本
必须连接外网
GTS 常用的测试命令
全测命令:run gts
单模块测试:run gts -m <模块名>
单项测试:run gts -m <模块名> -t <单项名>
多台机器测试:run gts --shard-count X
Re-try 测试:run retry --retry ID (l r 即可查看 Session ID)
GTS fail问题分析流程
根据报告的result目录,查看test_result.html、test_result_failures_suite.html,查看测试fail项,搜索项目源码,查看fail项报告的原因,或者根据fail项报错的异常信息中的提示查找对应信息。
GTS常见的fail原因
1.Test timed out after xxxxx ms, 访问外网网速过慢
2.Carrier xxxx failed to show, 未使用GMS专用白卡
3.MUST be signed and verifiable with the APK Signature scheme v2 or higher, 应用签名问题
4.UP compatible message client is not preloaded, 默认短信应用功能不全
VTS
Vendor Test Suite 意为 供应商测试套件。以前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android O 及后续版本的所有新设备。Android 7.x 及更早版本中没有正式的Vendor层接口,因此每次更新系统都相对耗时和困难。Android O 之后,Treble 提供了稳定的Vendor层接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样就可以只更新框架层,减少升级系统带来的成本和困难。为了确保Vendor层实现的前向兼容性,新的Vendor层接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)。
VTS 测试注意事项
测试版本:user 版本
替换GSI,且需要刷入vendor_boot-debug.img
VTS替换GSI命令
adb reboot bootloader
fastboot flashing unlock
fastboot reboot fastboot
fastboot flash system <Google signed GSI system.img>
fastboot flash boot <Google signed GSI boot-5.4.img>
fastboot flash vendor_boot vendor_boot-debug.img(刷机包中的)
fastboot -w
fastboot reboot bootloader
fastboot reboot
VTS测试命令
全测命令:run vts
单模块测试:run vts -m <模块名>
单项测试:run vts -m <模块名> -t <单项名>
多台机器测试:run vts --shard-count X
Re-try 测试:run vts --retry ID
VTS fail问题分析流程
根据报告的result目录,查看test_result.html、test_result_failures_suite.html,查看测试fail项,搜索项目源码,查看fail项报告的原因,或者根据fail项报错的异常信息中的提示查找对应信息。
VTS常见的fail原因
1.Failure Value of: served_declared_diff.empty() Actual: false Expected: true Service 'xxxx' serves and declares different interfaces. Served: xxxx, manifest.xml中注册的HAL服务和对应的服务的rc文件中注册的对不上
2.XXXXXSELinuxTest fail, SELinux权限配置错误,一般可以在对应的c或者c++源码中找到解决方法
其他STS、BTS、APTS等等由于接触的比较少,可以自行去搜索相关资料查看。