CTS、CTS Verify、GTS测试以及GMS认证介绍

2024-07-06

目录

一、一些概念二、GMS认证2.1 认证背景2.2 GMS认证目的2.3 GMS认证要求2.4 GMS认证流程2.5 MADA协议申请流程三、CTS测试3.1 CTS测试介绍3.2 CTS测试的目的3.4 CTS测试套件目录文档结构3.5 CTS测试环境准备3.5.1 测试环境3.5.2 测试准备工作3.5.3 手机端配置3.5 CTS测试流程3.6 查看测试结果3.6.1 测试结果存放路径3.6.2 测试日志存放路径四、GTS测试4.1 GTS测试介绍4.2 GTS授权级别4.4 GTS测试结果展示五、获取GMS认证目录

一、一些概念① CTS测试

以自动化测试为基础,测试Android系统的兼容性;

② CTS Verify

一个手工测试的apk,完成自动化测试无法完成的操作(锁屏、蓝牙、摄像头等);

③ GTS

手机出口到国外,并且通过运营商出售,就i必须通过GTS测试;

④ GMS认证周期

手机通过CTS测试、CTS Verify以及GTS测试之后,就可以拿到GMS认证。但是GMS认证周期较长,一般需要3个月至半年。

⑤ MADA协议

全称Mobile Application Distribution Agreement(移动应用软件分发协议)。是谷歌和Android厂商之间签署的一个协议,根据该协议,手机厂商在推出采用Android设备前,必须预装所有Google应用,并且,要把Google Search、Google Play放在手机首屏,并以Google Search作为默认的搜索引擎。

二、GMS认证2.1 认证背景 手机没有GMS认证,那么对于手机出口商而言,就没有了生产的产品走不了运营商通道,所以在欧美等由运营商主导的手机市场,GMS认证是十分必要的。但是没有GMS认证,Google也不会做限制,只是进不了运营商市场,第三世界市场,出于成本考虑(GMS认证需要收费),也就没装GMS认证。

2.2 GMS认证目的提高产品android系统的兼容性和稳定性授权Google的手机APP和服务授权使用Android LOGO产品可以进入欧美市场2.3 GMS认证要求必须申请与Google签署MADA协议(网站操作)产品必须使用7.0以上的安卓版本产品必须依次通过CTS测试、CTS Verify测试以及GTS测试产品还可以通过CE、FCC、BT以及WIFI等硬件认证(这一部分不是GMS认证的硬性指标)2.4 GMS认证流程申请谷歌MADA协议产品做硬件测试提交测试报告给谷歌审核获得谷歌认证授权2.5 MADA协议申请流程代码语言:javascript代码运行次数:0运行复制st=>start: 开始:https://www.android.com/certified/partners/

op1=>operation: 填写公司基本信息

op2=>operation: 向谷歌发起MADA请求

cond=>condition: 谷歌评估审核

e=>end: 结束

st->op1->op2->cond

cond(yes)->e

cond(no)->op1三、CTS测试3.1 CTS测试介绍 CTS测试全称为系列兼容测试(Compatibility Test suite),CTS是为了测试手机是否符合google定义的兼容性规范(Compatibility Definition)。从而基于Android的应用程序能在基于同一个api版本的设备上面运行。通过CTS测试的设备可以获得Android的商标,并且享受Android Market的权限。

CTS测试是一个基于uiautomator安卓原生自动化框架运行的自动化测试。通过CTS测试,保证系统的安全性和稳定性。

3.2 CTS测试的目的 由于Google系统的开源性,很多手机厂商基于安卓系统做出了深度优化,从而造成了安卓移动终端的碎片化,导致android终端的兼容性差的问题,严重影响用户体验。手机通过CTS测试,是市场得到了一个通过的规范:

让App提供更好的用户体验,用户可以选择更多的适合自己设备的app让开发者设计更高质量的app通过CTS的设备可以运行Android marketCTS是免费的,很简单

3.3 CTS测试运行原理

在pc端安装CTS测试套件,安装完成后,就可以通过连接到pc端的数据线将测试用户发送至手机上,完成测试用例的执行,并且把执行结果返回给PC端。CTS测试套件下载连接如下:https://source.android.com/compatibility/cts/downloads 需要下载文件有:对应手机系统、架构的的测试套件以及CTS Verify、Android Compatibility Defination Document(CDD)、Compatibility Test Suite(CTS) User Manual、CTS Media1.1(音视频资料)

3.4 CTS测试套件目录文档结构代码语言:javascript代码运行次数:0运行复制CTS目录结构

-- docs

-- logs 运行cs产生的log文件

-- plans 运行计划

-- results 测试结果

-- testcases 测试用例配置

-- respository

-- resource 资源文件

-- tools 运行工具3.5 CTS测试环境准备3.5.1 测试环境 ① windows

windows环境,需要自己重写脚本

电脑端配置JDK/SDK的环境将解压后的测试套件(文件名android-cts)拷贝至adt目录下的sdk目录 ② Linux(推荐64位UBUNTU 10.04)

一般来说,linux上运行较为稳定,所以手机厂商都是在linux端跑cts测试

电脑端配置JDK/SDK的环境将测试套件解压至pc端/data目录下3.5.2 测试准备工作下载需要进行测试的软件版本(ROM)插入可用的SIM卡(双开手机,需确保卡1有sim卡)写入合法的IMEI号(手机的身份证,每一个手机都会有唯一的一个IMEI号)连接一个可翻墙的WIFI网络(可以使用香港专线,网络比较稳定)3.5.3 手机端配置手机恢复出厂设置手机语言设置为英语手机需常亮并取消锁屏开启GPS开启USB调试后勾选stay awake和allow mock location安装CtsDeviceAdmin.apk(位于android-cts/repository/testcases),进入setting->security->device administrators的前两项确保手机SD卡有>1G的存储空间确保手机没有谷歌账号或其他账号存在确保手机时间和日期设置正确(连接数据后,会自动更新时间,时区选择默认时区)

...(其余在CDD文档中有定义)3.5 CTS测试流程手机和PC连接,打开USB调试模式,用adb devices检查是否连接好手机在/data进入android-cts/tools/目录,执行cts-tradefed脚本进入测试环境在测试环境中输入以下命令进行整体测试代码语言:javascript代码运行次数:0运行复制run cts --plan CTS

run cts -c android.app.cts.SystemFeaturesTest注意: CTS测试会持续10+个小时

补充: CTS测试环境基本命令介绍

分类

命令

说明

Host

help

基本命令帮助说明

help all

基本命令帮助说明

exit

退出控制台

Run

run cts --plan test_plan_name

运行指定计划

run cts --package/-p

运行指定包

run cts --class/-c [--method/-m]

运行指定方法

run cts --continue-session session_ID

继续运行指定会话session_id

run cts [options] --serial/-s device_ID

运行指定设备

run cts [options] --shards number_of_shards

运行多个设备

run cts --help/--help-all

运行帮助

List

l/list d/devices

列出连接的设备

l/list packages

列出所有测试包

l/list p/plans

列出所有测试计划

l/list r/results

列出已经保存的测试结果

3.6 查看测试结果3.6.1 测试结果存放路径代码语言:javascript代码运行次数:0运行复制android-cts/repository/results/testResult.xml3.6.2 测试日志存放路径代码语言:javascript代码运行次数:0运行复制android-cts/repository/logs/四、GTS测试4.1 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.2 GTS授权级别 根据GMS,谷歌对android手机给与不同程度的授权,把搭载android系统的手机厂商分为3个级别:

免费使用Android系统,但不内嵌GMS内嵌部分GMS,但手机不能打上谷歌的商标内嵌所有GMS服务,也可以使用谷歌商标。如果在android手机中内置有谷歌GMS服务的话,是等同被谷歌官方认证的产品

4.3 GTS测试流程

GTS的环境安装、执行、报告分析这一系列操作和CTS类似,只是GTS必须连接VPN。

4.3.1 手机环境准备刷好GMS版本的ROM包恢复手机出厂设置设置手机、连接外网插入SIM卡,打开移动数据打开蓝牙显示中睡眠时间显示最大竖屏语言选择英语键盘选择谷歌键盘打开定位、高精度安全中锁屏选择None时间将自动获取时间和日期关闭,选择太平洋时区、24小时制在开发者模式中打开stay awake和USB debugging

4.3.2 执行GTS测试开始全部GTS测试代码语言:javascript代码运行次数:0运行复制run gts --plan GTS单跑某一模块的GTS测试代码语言:javascript代码运行次数:0运行复制run gts -plan 'Module Name' -t 'class name'接着某一次中断的gts测试跑代码语言:javascript代码运行次数:0运行复制run gts --retry session_id

其中session_id可由lr查看4.4 GTS测试结果展示五、获取GMS认证 通过GMS认证后,就可以申请到一个GMS的APK的包,可以将这些谷歌应用集成到手机系统里面。通过GMS认证的手机,可以在Googie play中看到如下内容: