http://blog.csdn.net/zxm317122667/article/details/8508013

Android-CTS 4.0.3测试基本配置

1. Download CTS

CTS的获取方式有两种:

1.1.由Google提供

1.1.1.打开浏览器输入连接: http://source.android.com/compatibility/downloads.html

1.1.2.下载所需文件

选择对应Android版本的CDD文档(介绍CTS测试),CTS测试包下载(测试包会不断更新),android-cts-verifier-4.0.3_r1-linux_x86-arm.zip,android-cts-media-1.0.zip

1.1.3.基本文件结构

将下载的CTS测试包解压到相应文件夹里面:android-cts文件夹里面包含Docs、Repository、Tools三个文件夹。

1.1.4.下载android SDK

1.2.通过4.0.3的源码编译得来

在Google提供的Android源码中是包含CTS测试的,源码下可以看到有一个CTS文件夹,里面就是CTS的测试源码。

在Android项目源码下使用命令:

(切换分支,并保证自己的项目源码最新)

./source build/envsetup.sh

choosecombo 1 18 1(仅针对公司自己的手机,我们这儿选择Variant choices :user模式)

make cts

来得到,生成的android-cts包在~/<源码目录>/out/host/linux-x86/cts中。

2.RUN CTS 前期准备工作

2.1.先确定Linux 系统的adb path是否设置正确(我是在虚拟机Ubuntu下模拟的)

Shell 命令:(配置环境变量)

shz@ubuntu:$ cd ~

shz@ubuntu:$ gedit .bashrc

在.bashrc文件中添加

PATH=$PATH:/home/shz/Java/jdk1.6.0_35/bin:

PATH=$PATH:/home/shz/sdk/android-sdk-4.0.3/platform-tools:

PATH=$PATH:/home/shz/sdk/android-sdk-4.0.3/tools:

(根据你自己的实际的文件路径来配置)

2.2.确保你所配置的环境变量都正确

shz@ubuntu:$ java

shz@ubuntu:$ adb

查看信息是否正确,如果没有配置好,会有提示

(例如adb: command not found)

2.3.确保手机已正确连接上

shz@ubuntu:$ adb devices

有的时候会出现这种情况

解决办法:权限问题,给予root权限并在root权限下重启adb server即可。

具体步骤:

shz@ubuntu:$ cd sdk/android-sdk-4.0.3/platform-tools

shz@ubuntu:~/sdk/android-sdk-4.0.3/platform-tools$ sudo su

[sudo]password for shz: (输入密码,回车,root权限)

退出root模式:

Look,一切OK。

3.调整系统状态

3.1.执行系统重置,恢复为出厂状态

3.2.测试前需要安装apk:adb install android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

然后在设置里面的辅助功能中会多一个Delegating Accessibility Service选项,将这个选项打开

3.3.测试前需要安装apk:adb install android-cts/repository/testcases/CtsDeviceadmin.apk

3.4.测试前需要安装apk:adb install CtsVerifier.apk

(之前下载下来的android-cts-verifier-4.0.3_r1-linux_x86-arm.zip解压有)

然后在设置安全->选择设备管理器对多出三个选项,将这三个选项勾选并激活

3.5.测试Media相关项需要用到官方提供的一个media包,有三种方式:

a).在SD卡中建目录test, 将android-cts-media-1.0.zip解压到test目录中,将SD卡插入设备中。确定SD卡为可读可写状态。

b).在Ubuntu环境下,可以再android-cts-media-1.0.zip解压出来的文档中放在一个新建的test文件夹汇中,直接运行文件夹下的

./copy_media.sh

即可。

它会自动把这些media文件拷贝到你的sd卡中。

c).当知道自己的设备适应的视频分辨率,使用

. copy_media.sh 1280x720

将该分辨率及以下的分辨率的视频复制到手机的SD卡中进行测试。

Google一共提供了五种分辨率的视频文件,176x144、480x360、720x480、1280x720、1920x1080。根据自己 设备的具体情况添加,公司手机最大支持1080p的视频,但是超过720p之后的视频播放都会很卡,所以我暂定为选择720p的视频来测试。

3.6.在 android设备设置中:安全->屏幕安全保护->自动锁定设为“无”

3.7. 在 android设备设置中:显示->休眠->休眠时间调节到最长

3.8.在 android设备设置中:开发人员选项->保持唤醒状态,允许模拟地址两项勾选(当然了,USB调试也是需要打开的)

3.9.将 android设备的语言设置为英文。

3.10.需要有一张有话费的可正常使用的SIM卡。

3.11.将WIFI打开,连接一个可用AP(我所在公司的手机为双卡,需要设置好手机的语音、数据、短消息的默认卡)设置->双卡设置

3.12.设置->输入语言设为android

3.13.手机屏幕停留在主界面上

4.RUN CTS

4.1.打开终端,进入android-cts/tools目录

执行命令:

shz@ubuntu:$ cd android-cts/tools

4.2.进入CTS,执行cts-tradefed脚本

执行命令:

shz@ubuntu:~/android-cts/tools$: ./cts-tradefed

当手机连接好的时候,执行该命令,会显示出Android设备的ID, 如果没有这句话,说明手机没有和PC连通。调整手机和PC的连接,连接好了之后,就重复第二步里面的内容并给与手机权限:

之后再重复之前的步骤就可以看见Android设备的ID了。

注:有时候进入CTS测试状态后无法出现cts-tf >,此时电脑按一个回车键就可以了。这算是CTS的一个小bug。

4.3开始整个CTS测试

4.3.1.首先我们先使用help命令来看一下cts-tf >里面的信息:

在这个里面会显示出CTS测试包的版本:

CTS-tradefed host version 4.0.3_r3

我们可以看一下都有哪些测试plan:

测试packages:

后面还有许多就不都贴出来了。

4.3.2.开始执行命令

a) 执行一个plan:run cts --plan <plan名称>

全部测试一遍命令:

run cts --plan CTS

b) 仅测试一个包:run cts -p <测试包名称>

例如:run cts -p android.acceleration

c) 因为是基于JUnit测试,属于白盒测试,所有基本上我们都知道它的内部是如何运行的,所以我们也可以根据某个测试包中某一个具体的类或者方法进行测试:

run cts –p <packages name> –c <class name> [-m  <method name>]

d) 多台Android设备同时测试:

run cts –s 设备名称 -plan <plan名称>

注:

(1)、这儿有一个很重要的命令

我们在进行CTS测试的时候总会有一些因为各种原因引起的不成功的测试项,但是,要完全进行一次全部的CTS测试又是一项很费时的操作,这个时候这 个命令就派上用场了,它可以让我们之前测试的结果的基础上,新建一个根据测试结果为fail/not Executed /time out的集合组建出 一个新的plan,之后测试这个plan,就可以只需要测试那些之前测试没有通过的项目,而不用再把已经通过的项目再测一遍,就节约了很多时间。

(2)、在Google的官网上有这么提到过,当我们在测试一个整的包的时候,成功率比单独测一个类和方法要高。

所以,我们再重测一些失败项的时候,根据情况选择测试一个包的模式也是一个不错的选择。

5.测试结果

测试结果在android-cts/repository/results目录下;

测试日志在android-cts/repository/logs目录下。

6. 失败项目重测及xml文档整合

我们在测试一些项目的时候,完全跑一遍CTS测试,很多项都会失败fail,但是我们在对这些失败项单独测得时候,这些项目pass,这时,我们不 可能再去重新完全跑一次CTS,这样既耗时,也不能确保该项一定会pass,这样,我们就可以用下面的方法来对失败项操作,做到失败项的pass结果整 合。

原理:

将fail项修改成not Executed项,使用该命令进行重测。

6.1. 定位

找到那些测试fail的项,对它们进行源码的修改、调试,之后进行单独测试,直到它不再fail。使用文本编译器打开result的xml文件,找到该项

6.2. 修改

找到项目之后,将[result=”fail”]改成[result=”not  Executed”],记得在xml文件的开头将fail总数和not Executed的总数根据你修改的数目进行修改

修改之后:

6.3. 测试

session_ID是之前查看result前面的ID。

运行,测试完成,结果就被整合到了原来的result集中,pass项将会把原来的fail的log在result的xml文件中也一并删除。

注意事项:CTS测试中不能对终端做任何操作。

【转】Android CTS 测试的更多相关文章

  1. 监听Android CTS测试项解决方案(一)

    前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...

  2. 监听Android CTS测试项解决方案(二)

    二,监听当前测试项是否是Accelerometer Measurement Test测试项 通过第一种方式介绍的,我们可以得到当前处于活动状态的Activity类似监听CTS测试当前的测试项.但是由于 ...

  3. android CTS测试

    CTS认证是获得Google推出的Android系统中Android Market服务的前提 CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出A ...

  4. Android 4.0.3 CTS 测试

    Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...

  5. android 兼容性测试 CTS 测试过程(实践测试验证通过)

    source: http://blog.csdn.net/jianguo_liao19840726/article/details/7222814 写这个博客的时候是为了记忆,建议大家还是看官方的说明 ...

  6. 【转】android 兼容性测试 CTS 测试过程(实践测试验证通过)

    原文网址:http://blog.csdn.net/jianguo_liao19840726/article/details/7222814 写这个博客的时候是为了记忆,建议大家还是看官方的说明,官方 ...

  7. 【转】Android 4.0.3 CTS 测试

    原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download C ...

  8. 【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

    原文网址:http://www.cnblogs.com/zh-ya-jing/p/4452675.html CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测 ...

  9. 【转】Android兼容性测试CTS --环境搭建、测试执行、结果分析

    原文网址:http://www.cnblogs.com/zh-ya-jing/p/4396918.html 为了确保Android应用能够在所有兼容Android的设备上正确运行,并且保持相似的用户体 ...

随机推荐

  1. 【Java笔记】【Java核心技术卷1】chapter3 D2注释

    package chapter3; /** * 文档注释 *@author lp *@version 1 **/ public class D2注释 { //单行注释 /* 长注释 */ }

  2. RBF神经网络

    RBF神经网络 RBF神经网络通常只有三层,即输入层.中间层和输出层.其中中间层主要计算输入x和样本矢量c(记忆样本)之间的欧式距离的Radial Basis Function (RBF)的值,输出层 ...

  3. hadoop学习(一)----概念和整体架构

    程序员就得不停地学习啊,故步自封不能满足公司的业务发展啊!所以我们要有搞事情的精神.都说现在是大数据的时代,可以我们这些码农还在java的业务世界里面转悠呢.好不容易碰到一个可能会用到大数据技术的场景 ...

  4. Android 使用 DiffUtil 处理 RecyclerView 数据更新问题

    背景 RecyclerView.Adapter#notifyDataSetChanged() 会每次刷新整个布局: 每次手动调用 RecyclerView.Adapter#notifyItemXx 系 ...

  5. 2月9日 《Java 8实战》读后感

    第一部分 基础知识 第3章 Lambda表达式 使用函数式接口 Predicate Consumer Function 第二部分 函数式数据处理 第4章 引入流 第5章 使用流 第6章 用流收集数据 ...

  6. springmvc原理详解(手写springmvc)

    最近在复习框架 在快看小说网搜了写资料 和原理 今天总结一下 希望能加深点映像  不足之处请大家指出 我就不画流程图了 直接通过代码来了解springmvc的运行机制和原理 回想用springmvc用 ...

  7. Flink 源码解析 —— Flink JobManager 有什么作用?

    JobManager 的作用 https://t.zsxq.com/2VRrbuf 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac ...

  8. GitPage部署

    前言 该文章主要为了记录我如何在GitPage上面部署博客网站,这里的话,码云上面也有相同的功能. 若有小伙伴担心GitHub担心把中国的访问也禁了的话(大概不会吧),可以在码云上面部署.流程应该是差 ...

  9. JDK集合面试20问

    1. HashMap的内部实现原理是什么? HashMap内部实现原理是数组+链表,通过散列算法将key值散列到数组中,如果到相同的位置,则通过拉链法解决散列冲突.在JDK8中新增了红黑树结构,当Ha ...

  10. 分布式系统的一致性级别划分及Zookeeper一致性级别分析

    最近在研究分布式系统的一些理论概念,例如关于分布式系统一致性的讨论,看了一些文章我有一些不解.大多数对分布式系统一致性的划分是将其分为三类:强一致性,顺序一致性以及弱一致性.强一致性(Strict C ...