Android CTS Test
什么是CTS测试?了解这个问题前,我们先来搜索了解一遍“Google GMS 认证”。GMS全称为GoogleMobile Service,即谷歌移动服务。说白了GMS其实就是一系列谷歌的应用集合。谷歌GMS认证(Google Mobile Services Test Certification )是谷歌公司为了确保全世界的硬件厂商设计和生产安卓为基础的各种智能硬件产品的兼容性、稳定性,以及这些硬件与安卓各种自带的各种软件APP产品和服务的兼容性、稳定性方面的测试和认证。
Google GMS 认证需要测试一些啥呢?CTS,GTS,CTSVerifier,AFW.....
CTS: 英文为 CompatibilityTest Suite,中文意思是兼容性测试,设备需要通过 Android 的兼容性测试(CTS),以确保在 Android 上开发的程序在设备上都能运行。
一、环境搭建
JDK 1.8
SDK(目的:adb aapt环境配置)
测试所需资源:(下载被测设备对应版本的CTS套件)
CTS测试包: Android 6.0 R20 Compatibility Test Suite (CTS) - x86
CTS验证程序: Android 6.0 R20 Verifier
CTS媒体库: CTS Media 1.3
Android 6.0 设备(以android6.0为例)
注:虽然windows下也能进行CTS测试,但是问题会比较多(有些不支持在window下操作)。最好还是在linux或mac下进行测试。
二、测试前准备(android设备设置)
1、设备恢复出厂设置: 设置>备份和重置>恢复出厂设置
2、设备的语言设置为英语(美国): 设置>语言&输入>语言
3、打开位置信息: 设置>位置信息
4、连接WiFi:设置>无线
5、屏幕锁设置为无: 设置>安全设置>屏幕>无
6、确保时间设置12小时格式: 设置>日期&时间
7、打开USB调试: 设置>开发人员选项> USB调试 。
8、选择:设置>开发人员选项>保持亮屏
//9、选择:设置>开发人员选项>允许模拟位置
注意: 这模拟位置设置只适用于Android 5.x和4.4.x。
//10、启动浏览器并关闭任何启动/设置屏幕。
11、使用USB线连接电脑
/* **12、在设备上安装和配置辅助应用程序。
注意: CTS版本2.1 R2通过4.2 R4,设置你的设备(或模拟器)运行的可达性测试:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
在设备上 Settings > Accessibility > Accessibility > Delegating Accessibility Service
注意: CTS版本7.0之前,设备上声明 android.software.device_admin 运行,设置你的设备 测试设备管理使用:
adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
在设置>安全>选择设备管理员,使两个 android.deviceadmin.cts.CtsDeviceAdminReceiver * 设备管理员。
确保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver 和任何其他预紧装置管理员仍然禁用。*/
13、CTS媒体文件复制到设备中:
注意: 2.3 CTS R12以后 ,如果设备支持视频编解码器,CTS媒体文件必须复制到设备。
三、运行CTS测试
Linux系统下的操作:
下载媒体文件并解压。
1、改变文件权限: ./chmod u + x copy_media.sh
2、运行 ./copy_media.sh 复制所有文件,多个设备时 ./copy_media.sh - s <specific device>
3、进入android-cts/tools目录,运行脚本cts-tradefed
window下的操作为:
1、解压android-cts-media-1.3
2、将android-cts-media-1.3目录下的bbb_full,bbb_short复制到设备的/sdcard/test/目录下(没有就新建一个test文件夹)
3、解压android-cts-6.0_r20-linux_x86-x86
4、在android-cts-6.0_r20-linux_x86-x86目录下,在android-cts同目录下新建一个run.bat文件
5、将以下代码复制到run.bat文件中。注:最后一行的类,需要到\android-cts\tools\cts-tradefed文件中查看
@echo off
set CTS_ROOT=%~dp0
set JAR_DIR=%CTS_ROOT%android-cts\tools
set JAR_PATH=%JAR_DIR%\cts-tradefed.jar;%JAR_DIR%\tradefed-prebuilt.jar;%JAR_DIR%\hosttestlib.jar
java -cp %JAR_PATH% -DCTS_ROOT=%CTS_ROOT% com.android.cts.tradefed.command.CtsConsole
6.双击运行run.bat文件即可
四、CTS基本命令
**如果把所有CTS测试的case都跑一遍,可以直接输入如下命令
run cts --plan CTS
**如果测试GTS,可以直接输入如下命令
run gts --plan GTS (之前是:run xts --plan XTS)
**如果只测试CTS中的部分case,只需要输入如下命令即可
run cts -p [packgeName] #测试指定包下的所有case
run cts -c [className] -m [methodName] #单测method一case
| 分类 | 命令 | 说明 |
|---|---|---|
| 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 | 继续运行指定回话ID | |
| run cts [options] --serial/-s device_ID | 运行指定设备 | |
| run cts [options] --shardsnumber_of_shards | 运行多个设备 | |
| run cts --help/--help-all | 运行帮助 | |
| List | l/list d/devices | 列出连接的设备 |
| l/list packages | 列出所有测试包 | |
| l/list p/plans | 列出所有测试计划 | |
| l/list r/results | 列出已经保存的结果 |
五、CTS测试结果
CTS测试的结果在android-cts/repository/results目录下以开始测试时间为名的目录下的testResults.xml文件中。
CTS测试的日志文件在android-cts/repository/logs目录下的zip文件中
可查看android官网:
Android CTS Test的更多相关文章
- 监听Android CTS测试项解决方案(二)
二,监听当前测试项是否是Accelerometer Measurement Test测试项 通过第一种方式介绍的,我们可以得到当前处于活动状态的Activity类似监听CTS测试当前的测试项.但是由于 ...
- 监听Android CTS测试项解决方案(一)
前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...
- 如何debug android cts
启动和关闭ADB服务(adb start-server和adbkill-server) 经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可以找到这个服务,该服务用来为模拟器 ...
- Android CTS測试Fail项改动总结(四)
Android5.1上的測试 1.android.security.cts.SELinuxDomainTest# testInitDomain fail 打印的log junit.framework. ...
- android CTS测试
CTS认证是获得Google推出的Android系统中Android Market服务的前提 CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出A ...
- Android CTS 测试总结【转】
Android CTS 测试总结[转] 最近一直在做Android兼容性测试,根据Android官网给出的android-cts-manual 配置好了device后,开始测试. 首先配置软件环境: ...
- Android N和O中使用adb shell dpm set-device-owner 'com.android.cts.verifier/com.android.cts.verifier.managedprovisioning.DeviceAdminTestReceiver' setup Device Owner失败
PC端出现如下log: D:\workspace\AndroidO\CTS\CTS_Verifier>adb shell dpm set-device-owner 'com.android.ct ...
- Android CTS Test failed to run to conmpletion 测试超时问题
引用“Android cts all pass 全攻略”里面的一段话: ❀ testcase timeout 测试某个testcase的时候一直出现 “........”,迟迟没有pass或者fail ...
- android CTS 介绍
[转]http://blog.csdn.net/pugongying1988/article/details/6976091 一.为什么需要兼容性测试(以下称CTS)? 1.1.让APP提供更好的用户 ...
随机推荐
- HttpWebResponse 解压gzip、deflate压缩
需要使用到两个Stream的子类:GZipStream.DeflateStream,代码如下: public string GetResponseBody(HttpWebResponse respon ...
- day 10 - 1 函数进阶
函数进阶 命名空间和作用域 命名空间 命名空间 有三种内置命名空间 —— python解释器 就是python解释器一启动就可以使用的名字存储在内置命名空间中 内置的名字在启动解释器的时候被加载进内存 ...
- 比较python类的两个instance(对象) 是否相等
http://www.yihaomen.com/article/python/281.htm 比较python类的两个instance(对象) 是否相等 作者:轻舞肥羊 日期:2012-10-25 字 ...
- python 中的"*"与"**"
1.Python中 *和**很常见的运算符的用途及其多种使用方式. 本文所述的*和**,指的是*和**前缀运算符,而不是中缀运算符. 所以指的不是乘法和乘幂: 使用*和**将参数传递给函数 使用*和* ...
- JDBC、DBCP、C3P0、jdbc-pool--链接方式?连接池?
连接方式: java连接数据库的四种方式 - Cece_2012的专栏 - CSDN博客http://blog.csdn.net/cece_2012/article/details/7485482 J ...
- Django学习手册 - ORM数据类型
DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...
- Log4j日志根据配置输出到多个自定义文件
最近工作中遇到所有日志需要记录到一个文件,而错误的sql执行记录到另一个文件中,查询了一些资料搞定,记录下来.顺便吐槽下公司限制印象笔记的使用. ##log4j.rootLogger=INFO, CO ...
- 异常:已引发: "设置 connectionId 时引发了异常。" (System.Xaml.XamlObjectWriterException) 引发了一个 System.Xaml.XamlObjectWriterException: "
项目中,引用一个富文本编辑器,SmithHtmlEditor,进入页面的时候异常. 在View和ViewModel所在的类库引用. 还需要在Main中引用.
- 应急响应-GHO提取注册表快照
前言 备份文件.gho中找到机器的注册表 文件夹位置 在 C:\WINDOWS\SYSTEM32\CONFIG 下就是系统的注册表,一般情况下,这里面会有以下几个文件: default 默认注册表文件 ...
- linux添加swap分区【转】
概述 添加交换分区主要是因为安装oracle时碰到交换分区太小时无法安装的情况,这时候就需要添加交换分区了. 操作简介 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap ...