一、准备工作,以下测试通用(必须要做)
-
打开开发者选项中的OEM Unlock 和USB调试开关
-
手机默认语言需设置为英文(美式英语)
-
手机屏幕超时时间设置为永不(如果无永不选项,可设置为30分钟)
-
锁屏密码设置为无
-
连接翻墙网络(Google_CTS)
-
开发者选项内保持唤醒
-
有时候测试需要机器激活Google key,下边我会讲到
-
GPS相关测试需要把手机放置到外边露天的地方测试(有GPS放大器的可以忽略该项)
二、CTS 测试
1.CTS 是什么?
Compatibility Test Suite意为兼容性测试套件,是Google推出的Android平台兼容性测试机制。CTS的目的是让所有的Android设备开发商能够开发出兼容性更好的Android设备
2.CTS 测试注意事项
测试版本:user版本
3.CTS 测试的意义
Android的CTS测试,是Google推出的Android平台兼容性测试。这是一套包含了上万个自动运行测试用例的测试框架 。CTS测试主要用来测试OEM厂商设计的Android平台是不是符合Android的API接口定义。通过 CTS 测试不仅可以保证Android设备具有良好的用户体验 ,而且可保证大量优质的应用在Android设备上正常运行,同时,也能够让应用开发者能够放心地制作高质量的应用程序,因此只有通过 CTS 认证的设备才能合法的安装使用 Google Market下载的应用
-
CTS 测试常用测试命令
cd /home/coosea/google_xts/CTS/android-cts-11_r4-linux_x86-arm/android-cts/tools
./cts-tradefed
全测命令 | run cts |
---|---|
3台一起运行命令 | run cts --shard-count 3 |
单测一项 | run cts –m <模块名> -t <单项名称> |
继续测试 | run retry --retry (session id是l r查看结果,最前面的数字序号) |
单测一个模块 | run cts –m <测试模块名> |
举例 | run cts -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.WebViewActivityTest#testAutofillAndSave |
三、GTS 测试
1.GTS 测试是什么
Google Mobile Services Test Suite,即GMS(谷歌移动服务)测试套件
2.GTS 测试注意事项
-
测试版本:user版本
-
GTS测试必须连接VPN
3.GTS 测试的意义
谷歌移动服务测试套件(Google Mobile Services Test Suite),谷歌移动服务提供了Search、 Search by Voice、Gmail、Contact Sync、 Calendar Sync、Talk、 Maps、 Steet View、 YouTube、 Android Market (Play store)等服务,当用户使用谷歌时,谷歌可以把各种广告嵌入到谷歌的服务中
4.GTS 测试命令
cd /home/coosea/google_xts/GTS/android-gts-8-R4(11)-7380330/android-gts/tools
./gts-tradefed
如何配置APE_API_KEY?(添加实验室key)
比如风和的实验室key:
export APE_API_KEY='/home/coosea/google_xts/GTS/ape_api_key/gts-windriver-public.json'
以下是当前项目可能用到的实验室key,说明如下(在readme_key.txt文件中):
配置了key后:
全测命令 | run gts |
---|---|
3台一起运行命令 | run gts --shard-count 3 |
单测一项 | run gts –m <模块名> -t <单项名称> |
继续测试 | run retry --retry (session id是l r查看结果,最前面的数字序号) |
举例 | run gts -m GtsPermissionTestCases -t |
四、GSI 测试
1.GSI 是什么
Generic System Image,即Reference AOSP system image通用系统映像上的兼容性测试套件,这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包
GSI测试注意事项
-
User版本
-
测试工具:Android R 之前用VTS Tool,Android R 用CTS Tool
-
配置Media 媒体包:我已配置好了,大家不用关心此项
-
替换谷歌system.img(刷入GSI包)
-
替换system.img 操作方法:
-
adb reboot bootloader
-
fastboot flashing unlock (输入命令后按音量上键)
-
fastboot reboot fastboot
-
fastboot flash system <Google signed GSI system.img>(system.img包的绝对路径)
-
fastboot -w
-
fastboot reboot bootloader
-
fastboot reboot
3.GSI 测试命令
全测命令 | run cts-on-gsi -s SN |
---|---|
3台一起运行命令 | run cts-on-gsi --shard-count 3 |
单测一项 | run cts-on-gsi –m <模块名> -t <单项名称> |
继续测试 | run cts-on-gsi -retry --retry SessionId |
单测一个模块 | run cts-on-gsi –m <测试模块名> |
举例 | run cts-on-gsi -m CtsCameraTestCases -t android.hardware.cts.CameraTest#testJpegThumbnailSize |
五、VTS测试
1.VTS 是什么
VTS的全称是 Vendor Test Suite(供应商测试套件)
2.VTS测试注意事项
-
user版本
-
替换google system.img 操作方法
-
adb reboot bootloader
-
fastboot flashing unlock (输入命令后按音量上键)
-
fastboot flash boot boot-debug.img 与GSI的区别
-
fastboot reboot fastboot
-
fastboot flash system <Google signed GSI system.img>
-
fastboot -w
-
fastboot reboot bootloader
-
fastboot reboot
3.VTS 的测试意义
-
以前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android O 及后续版本的所有新设备
-
Android 7.x 及更早版本中没有正式的Vendor层接口,因此每次更新系统都相对耗时和困难
-
Android O 之后,Treble 提供了稳定的Vendor层接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样就可以只更新框架层,减少升级系统带来的成本和困难
-
为了确保Vendor层实现的前向兼容性,新的Vendor层接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)
4.VTS 测试命令
全测命令 | run vts |
---|---|
单测一项 | run vts –m <模块名> -t <单项名称> |
继续测试 | run vts --retry |
单测一个模块 | run vts –m <测试模块名> |
举例 | run vts -m VtsHalAudioV2_0Target -t RecommendedOutputStreamConfigSupport |
六、STS测试
1.STS 是什么?
主要是测试 Android Security Patch 是否生效,Goolge最新通告,2019年03月开始STS要全部pass
2.STS测试注意事项?
userdebug版本
3.STS 测试意义
Android Security Test Suite (STS). 是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。STS是201808才开始测试的。Security patch日期在3个月内是GTS的一个case,如果不通过无法获得google认证。在18年5月之前谷歌对于security patch这个属性都是在build库下面跟着aosp更新的。现在需要通过STS之后由vendor来更新。STS需要通过userdebug版本的targetfile来生成一个user版本的结果
4.STS 测试命令
全测命令 | run sts-engbuild |
---|---|
单测一项 | run sts-engbuild –m <模块名> -t <单项名称> |
继续测试 | run sts-engbuild --retry (session id是l r查看结果,最前面的数字序号) |
举例 | run sts-engbuild -m CtsSecurityTestCases -t android.security.cts.SeccompTest#testCTSSwapOnOffBlocked |
CTS-Verifier 测试
1.CTS-Verifier 是什么?
CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机、传感器等。由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能
2.CTS-Verifier 测试注意事项
https://source.android.com/compatibility/cts/downloads
提前下载CTS Verifier 测试包,安装CtsVerifier.apk
\\192.168.28.40\ShareWithSZ\GMS相关\cts-verifier测试方法
-
查看报告和日志分析
以CTS测试的报告为例,其他测试基本类似:
1、打开测试报告,如下:
2、在浏览器打开此文件
2. Log查看和分析:
3. 将以上host_log 文件夹内的文件打开,搜索对应的模块或者方法名,就可以看到具体的错误信息了,然后排查分析修改:
九、其他命令
这个地址推荐大家看看:Android GMS测试 CTS>S测试入门_google cts测试如何查看有哪些module-CSDN博客
1.XTS测试过程中由于某个模块Fail项太多,整跑模块又太过耗时。所以需要使用subplan来进行快速测试验证失败项:
(1)在与result文件夹同级目录下创建subplans文件夹
(2)在subplans文件中创建需要测试验证的fail项的xml文件,建议用fail项的模块进行命名,这里命名可以随意
xml文件内容的格式如下(将需要测试的失败项按照对应格式添加进去):
(3)执行测试命令:run cts -o --subplan [需要运行的xml文件文件名]
2. 跳过预设环境命令 --skip-preconditions
测试XTS时,命令末尾加 --skip-preconditions,会不同程度减少测试消耗的时间