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

2018/04/21 17:52
阅读数 42

<font size='9' face='黑体'>目录</font>

[TOC]

一、一些概念

<font size='5' face='楷体' color='blue'>① CTS测试 </font>

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

<font size='5' face='楷体' color='blue'>② CTS Verify </font>

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

CTS Verify下载图标

<font size='5' face='楷体' color='blue'>③ GTS </font>

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

<font size='5' face='楷体' color='blue'>④ GMS认证周期 </font>

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

<font size='5' face='楷体' color='blue'>⑤ MADA协议 </font>

        全称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认证目的

  1. 提高产品android系统的兼容性和稳定性
  2. 授权Google的手机APP和服务
  3. 授权使用Android LOGO
  4. 产品可以进入欧美市场

2.3 GMS认证要求

  1. 必须申请与Google签署MADA协议(网站操作)
  2. 产品必须使用7.0以上的安卓版本
  3. 产品必须依次通过CTS测试、CTS Verify测试以及GTS测试
  4. 产品还可以通过CE、FCC、BT以及WIFI等硬件认证(这一部分不是GMS认证的硬性指标)

2.4 GMS认证流程

  1. 申请谷歌MADA协议
  2. 产品做硬件测试
  3. 提交测试报告给谷歌审核
  4. 获得谷歌认证授权

2.5 MADA协议申请流程

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测试,是市场得到了一个通过的规范:

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

3.3 CTS测试运行原理

        在pc端安装CTS测试套件,安装完成后,就可以通过连接到pc端的数据线将测试用户发送至手机上,完成测试用例的执行,并且把执行结果返回给PC端。CTS测试套件下载连接如下:https://source.android.com/compatibility/cts/downloads

CTS测试原理

        需要下载文件有:对应手机系统、架构的的测试套件以及CTS VerifyAndroid Compatibility Defination Document(CDD)Compatibility Test Suite(CTS) User ManualCTS Media1.1(音视频资料)

下载文件展示

3.4 CTS测试套件目录文档结构

CTS目录结构
	-- docs
		-- logs 运行cs产生的log文件
		-- plans 运行计划
		-- results 测试结果
		-- testcases 测试用例配置
	-- respository
	-- resource 资源文件
	-- tools 运行工具

3.5 CTS测试环境准备

3.5.1 测试环境

<font size='4' color='blue'> ① windows </font>

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

  1. 电脑端配置JDK/SDK的环境
  2. 将解压后的测试套件(文件名android-cts)拷贝至adt目录下的sdk目录

<font size='4' color='blue'> ② Linux(推荐64位UBUNTU 10.04) </font>

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

  1. 电脑端配置JDK/SDK的环境
  2. 将测试套件解压至pc端/data目录下

3.5.2 测试准备工作

  1. 下载需要进行测试的软件版本(ROM)
  2. 插入可用的SIM卡(双开手机,需确保卡1有sim卡)
  3. 写入合法的IMEI号(手机的身份证,每一个手机都会有唯一的一个IMEI号)
  4. 连接一个可翻墙的WIFI网络(可以使用香港专线,网络比较稳定)

3.5.3 手机端配置

  1. 手机恢复出厂设置
  2. 手机语言设置为英语
  3. 手机需常亮并取消锁屏
  4. 开启GPS
  5. 开启USB调试后勾选stay awake和allow mock location
  6. 安装CtsDeviceAdmin.apk(位于android-cts/repository/testcases),进入setting->security->device administrators的前两项
  7. 确保手机SD卡有>1G的存储空间
  8. 确保手机没有谷歌账号或其他账号存在
  9. 确保手机时间和日期设置正确(连接数据后,会自动更新时间,时区选择默认时区) ...(其余在CDD文档中有定义)

3.5 CTS测试流程

  1. 手机和PC连接,打开USB调试模式,用adb devices检查是否连接好手机
  2. 在/data进入android-cts/tools/目录,执行cts-tradefed脚本进入测试环境
  3. 在测试环境中输入以下命令进行整体测试
run cts --plan CTS
或
run cts -c android.app.cts.SystemFeaturesTest

注意: CTS测试会持续10+个小时

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

<table> <thead align='center' face='黑体'> <tr> <td>分类</td> <td>命令</td> <td>说明</td> </tr> </thead> <tbody align='center'> <tr> <td rowspan=3>Host</td> <td>help</td> <td>基本命令帮助说明</td> </tr> <tr> <td>help all</td> <td>基本命令帮助说明</td> </tr> <tr> <td>exit</td> <td>退出控制台</td> </tr> <tr> <td rowspan=7>Run</td> <td>run cts --plan test_plan_name</td> <td>运行指定计划</td> </tr> <tr> <td>run cts --package/-p</td> <td>运行指定包</td> </tr> <tr> <td>run cts --class/-c [--method/-m]</td> <td>运行指定方法</td> </tr> <tr> <td>run cts --continue-session session_ID</td> <td>继续运行指定会话session_id</td> </tr> <tr> <td>run cts [options] --serial/-s device_ID</td> <td>运行指定设备</td> </tr> <tr> <td>run cts [options] --shards number_of_shards</td> <td>运行多个设备</td> </tr> <tr> <td>run cts --help/--help-all</td> <td>运行帮助</td> </tr> <tr> <td rowspan=4>List</td> <td>l/list d/devices</td> <td>列出连接的设备</td> </tr> <tr> <td>l/list packages</td> <td>列出所有测试包</td> </tr> <tr> <td>l/list p/plans</td> <td>列出所有测试计划</td> </tr> <tr> <td>l/list r/results</td> <td>列出已经保存的测试结果</td> </tr> </tbody> </table>

3.6 查看测试结果

3.6.1 测试结果存放路径

android-cts/repository/results/testResult.xml

3.6.2 测试日志存放路径

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个级别:

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

4.3 GTS测试流程

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

4.3.1 手机环境准备

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

4.3.2 执行GTS测试

  1. 开始全部GTS测试
run gts --plan GTS
  1. 单跑某一模块的GTS测试
run gts -plan 'Module Name' -t 'class name'
  1. 接着某一次中断的gts测试跑
run gts --retry session_id
其中session_id可由lr查看

4.4 GTS测试结果展示

GTS测试结果展示

五、获取GMS认证

        通过GMS认证后,就可以申请到一个GMS的APK的包,可以将这些谷歌应用集成到手机系统里面。通过GMS认证的手机,可以在Googie play中看到如下内容:

GMS认证结果展示

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部