Android 4.0.3 CTS 测试

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.

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测试中不能对终端做任何操作。


img_42a4adae4716d0e15c3eeaabfd040044.png

注:转载需注明出处及作者。

流柯      

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
6月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
123 0
|
2月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
176 4
Android性能测试——发现和定位内存泄露和卡顿
|
2月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
55 6
|
2月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
55 5
|
2月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
52 5
|
2月前
|
测试技术 Shell 定位技术
Android 性能测试初探 (五)
聊聊大家不常关注的测试项- 功耗
52 3
|
2月前
|
算法 测试技术 Android开发
Android 性能测试初探 (二)
上回大体介绍了下在 android 端的性能测试项,现在我们就细节测试项做一些阐述(包括如何自己 DIY 测试)
48 4
|
2月前
|
测试技术 API Android开发
Android 性能测试初探 (一)
Android 性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试;一类为应用的性能测试。
53 3
|
2月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
6月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。