GMS (Google Mobile Service)
前言
为什么要做GMS的认证测试,先按我自己的了解,google提供了谷歌GMS套件,我们叫GMS package,一般我们出海外的订单,以迎合市场的需求,需要内置google的套件和一些必要的google的app,内置了这些套件想要在市场上售卖,那就得通过Google的认证.
一方面Google的这些测试可以防止厂商对Rom进行不计量后果的随意修改,另外也能让Google自己获取到设备占有量等等信息,当然还涉及到更多的利害关系.
测试套件
按照android P上的要求介绍下目前要完整的过一遍GMS认证我们需要涉及到的测试
CTS测试
CTS是Compatibility Test Suite的缩写,即兼容测试,是Google为Android设备制造商免费提供的兼容性测试套件。CTS定义了众多Android设备必须满足的技术指标,以确保每台通过CTS认证的设备,都可以顺利运行Google Play中出售的软件。(并不是每个软件都可以在所有Android设备上运行,Google Play仅显示可以运行在该Android设备上的应用,并且还受到当地法律法规的限制。)
用于测试App和framework的兼容性,有关CTS的文档和测试套件可以在这里获得:http://source.android.com/compatibility/downloads.html。
GTS测试(Google Mobile Services Test Suite)
Google Mobile Services Test Suite (GMS套件测试)是用于GMS应用的测试的自动化的测试套件,包含Google Play Video支持的分辨率和比特率的视频的测试内容,GTS测试需要Android 4.0以上的系统的.其主要内容是widevine(数字版权相关)功能的测试.
CTS-on-GSI测试
GSI是指已针对 Android 设备调整配置的系统映像。用于运行 VTS 和 CTS-on-GSI 测试
VTS测试(Vendor Test Suite)
向上用于测试与framework相容,向下测试与OS kernel的相容性。
STS测试(Security Test Suite)
主要用于测试Android Security Pacth是否有生效。
CTS Verifier
手动测试软件,google提供的一系列软件测试来检测系统的稳定性.CTSVerifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机拍照质量、传感器的感知结果等。CTSVerifier会测试许多硬件,测试项会因设备支持的硬件种类多少而不同。它会自动检测设备支持哪些硬件,从而生成测试项。如某设备硬件支持NFC,将会有NFC相关的测试项,否则,就没有这些测试项。所以设备必须全部通过CTSVerifier中的各项测试。
目前CTSVerifier在公司可放在最后一个阶段,就是所有的CTS自动测试全部pass之后,再进行CTSVerifier测试。
BTS测试(Build Test Suite)
提供软件给Google,会扫描软件中是否有预装恶意软件或潜在有害的应用程序(PHA),通常是提交3PL后才启动该测试,开发前期可以先放在后面.
性能测试
低端机型,貌似是1G运行内存是还需要性能测试,这一块因为没做过,所以只有耳闻,没具体操作过.
Part2.测试环境搭建
Ubuntu14.04 当然ubuntu版本可以用其他版本
jdk1.8
配置好aapt和adb
adb保证版本在1.0.39以上
上面的配置搞定即可保证CTS可以正常测试
GTS需要导入3PL的API_APE_KEY
VTS测试需要安装依赖
1) 安装 python 开发包
$ sudo apt-get install python-dev
2) 安装 Protocol Buffer 工具
$ sudo apt-get install python-protobuf
$ sudo apt-get install protobuf-compiler
3) 安装 Python 虚拟环境相关工具
$ sudo apt-get install python-virtualenv
$ sudo apt-get install python-pip
相关的测试指令集,以andriod P上的为参考
CTS注意,media包提前拷贝到测试PC上,可防止测试媒体相关测试项时,因为下载媒体包而浪费时间,下载media包后保持下面的目录结构
/tmp/android-cts-media/android-cts-media-1.4
每次重启主机后,记得都需要拷贝一次,因为重启后tmp目录下的文件就会清空.
手机端的设置,比较常规,这里就不一一列出来了,还有其他的注意项,我会后续在这篇文章上更新,或单独写其他的例出来,不妥之处,欢迎指正.