Android CTS(兼容性测试)

来源:互联网 发布:win7公用网络设置 编辑:程序博客网 时间:2024/05/22 10:50

                                             Android CTS测试

一、Android CTS测试简介

CTS全称Compatibility Test Suite兼容性测试工具,为了保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document,CDD)。当电子产品开发现来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台上。通过了CTS验证,需要将测试报告提交给Google,以取得android market的认证。CTS是一款 通过命令行操作的工具。目前CTS没有提供windows版本,只能在Linux下测试。

二、Android CTS测试环境搭建

1.下载配置android-SDK linux版本,地址:

http://developer.android.com/sdk/index.html

2.jdk安装配置

http://source.android.com/source/initializing.html

3.下载android-cts包,下载地址:

http://source.android.com/compatibility/downloads.html

需要根据手机系统版本和类型下载对应版本的cts包,否则将无法运行测试

大部分是基于Junit和仪表盘技术编写的。还扩展了自动化测试过程,可以自动执行用例,自动收集和汇总测试结果。CTS采用XML配置文件的方式将这些测试用例分组成多个测试计划(plan),第三方也可以创建自己的plan。

4.将android-sdk和android-cts解压放置在同一个文件夹下

5.添加环境变量/etc/profile文件中

三、Android-CTS测试的几个概念

在进行CTS测试之前,我们先理解其中几个概念:

Test Plan(Plan):测试计划,Test package的集合,每个Plan中都包含若干个测试包,以android-cts 2.2版本为例,总共有8个测试计划:

        CTS:包含2万多个测试用例,这些测试用例是检验兼容性必须的,性能测试不包含在本计划中,随版本的更新,本测试计划也

                     会更新。

        Signature:包含所有针对公有APIs的所有测试

        Android:包含针对android APIs的所有测试

        Java:包含所有针对Java核心library的测试

        VM:包含对虚拟机的所有测试

        RefApp:包含针对参与应用程序的所有测试,随版本的更新,本测试计划也会更新

        Performance:包含所有针对性能的测试,随版本的更新,本测试计划也会更新

        AppSerurity:针对Application安全性的测试

Test Package(Package):测试包,Test Case的集合

Test Case:测试用例,Test的集合

Test:测试,每一个测试对应一个或者多信Instrumentation Test

Instrumentation Test:Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。

Result_Type:CTS的测试可以通过命令查阅,也可以通过浏览器查看结果文件


命令查阅结果:其中Test Result有四种类型的值:Pass,Fail,Timeout,NoExecuted

浏览器查看testResult.xml,路径:.../android-cts/repository/results/


CTS测试执行之前要做的准备工作如下:

PC端操作:

1.检测设备是否连接上电脑

打开终端输入命令:adb devices,连接上会显示设备ID,如果端口被占用

$adb kill-server

$sudo adb start-server

$adb devices

2.设备端安装CtsDelegatingAccessibilityService.apk

此包位于android-cts/repository/testcases下面。可以将安装包拷贝到手机后安装也可以通过打开终端输入命令,安装完成后设置进入手机设置菜单

Setting->Accessitility->Accessibility->DelegatingAccessibilityService

终端操作:

1.下载兼容性测试用例包,并解压,解压后的文件名命名为"android-cts"。

2.重置手机(恢复出厂设置)。

3.去年谷歌账户。

4.设置手机语言为英语:Setting->Language&input->language->English(United States)。

5.插入SIM卡和外置SD卡(SD卡需要格式化:Setting->Storage->Erase SD card->Erase SD card->Erase Everything)。

6.插入USB,连接手机到电脑,可以用adb devices检查,是否正确连接。

7.打开wifi,并连接到可用wifi。

8.打开蓝牙,无须配对。

9.保证手机无操作30分钟后LCDoff:Settings->Display->Sleep->30 minutes。

10.去掉屏幕锁:Settings->Security->ScreenLock的值是"None"。

11.打开Settings->Locationservices->"Google location services","GPS satellites","Location&Google search"。

12.打开Settings->Accessibility->Developeroptions->USB debugging(USB调试)。

13.打开Settings->Accessibility->Developeroptions->Stay Awake(保持唤醒)。

14.打开Settings->Accessibility->Developeroptions->Allow mock location(允许模拟位置)。

15.通过Settings->Speechsynthesis->Install voice data安装“Text To Speech”文件(com.svox.langpack.installer-1.apk),假如android-cts/repository/testcases/中没有此文件,就省去这一步。

16.如果需要执行可访问性方面的兼容性测试,则安装“CtsDelegatingAccessibilityService.apk”(adbinstall -r */android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk),并将Settings->Accessitility->DelegatingAccessibility Service选项打开。

17.如果需要执行设备管理方面的兼容性测试,则安装“CtsDeviceAdmin.apk”(adb install -r */android-cts/repository/testcases/CtsDeviceAdmin.apk),并将Setting->Security->DevicesAdminstrators->android.devicesadmin.cts.CtsDevicesAdmin等选项打开。

TestCase里面包含很多的测试用例,可以全部测试,也可以只测试部分。

四、测试命令的执行

1.进入CTS测试环境

开启终端输入命令:startcts          //注意权限问题

如果权限不够的话输入:sudo ./startcts

输入用户密码

当出现

Android CTS version 2.2_r1

Device(s5830f1133529) connected

cts_host > cts_host >

就代表已经进入CTS测试环境

2.CTS测试方法

  查看测试计划

  Ls --plan

  查看测试包

  Ls -p

  运行测试计划

  start --plan [test_plan_name]

  举例:运行VM测试计划

  输入命令:--plan VM

  运行测试计划下的测试包

  start --plan [test_plan_name]  -p/--package [plan_package_name]

  举例:运行Java计划下的android.core.tests.archive测试包

  运行测试计划下测试包中的某个测试项

  Start --paln [test plan name] -t

  [plan_package_name].[class_name]#[plan_package_test_name]

  举例:运行Java计划下android.core.tests.archive包下的test_tostring测试项

指定某个设备上运行摸个测试计划中的测试包

start --plan [test_plan_name ]‐d/--device [device_ID] 

举例:指定设备ID号为1234567890ABCDEF运行VM测试计划

 

 

 

 

Ø 查看测试结果

 Ls –r

举例:

 

 

 

 

 

Ø 查看某个session的测试记录

ls -r/--result -s/--session session_id

举例: ls –r –s 3

 

3.CTS详细命令

  Host:

 help: 查看帮助信息

   exit: 退出

  Plan:

    ls--plan: 列出所有的测试包

    ls--plan plan_name: 查看测试方案

    add--plan plan_name: 新建一个测试方案

    add--derivedplan plan_name -s/--session session_id -r/--resultresult_type:

 derive a plan from the givensession

    rm--plan plan_name/all: remove a plan or all plans fromrepository

   start --plan test_plan_name: 运行一个测试方案

   start --plan test_plan_name -d/--device device_ID: run a test planusing the

 specified device

   start --plan test_plan_name -t/--test test_name: run a specifictest

   start --plan test_plan_name -p/--package java_package_name:运行一个特定的java测试包

   start --plan test_plan_name -t/--test test_name -d/--devicedevice_ID: 用指定的device运行一个特定的测试方案

   start --plan test_plan_name -p/--package java_package_name-d/--device devic

e_ID: run a specific java package using thespecified device

  Package:

    ls-p/--package: list available packages

    ls-p/--package package_name: list contents of the package withspecified na

me

    add-p/--package root: add packages from root to repository

    rm-p/--package package_name/all: remove a package or all packagesfrom repo

sitory

  Result:

    ls-r/--result: list all result of sessions

    ls-r/--result -s/--session session_id: list detail case result of aspecifi

ed session

    ls-r/--result [pass/fail/notExecuted/timeout] -s/--sessionsession_id: list

 detail cases of a specifiedsession by the specified result.

  History:

   history/h: list all commands in command history

   history/h count: list the latest count records in commandhistory

   history/h -e num: run the command designated by 'num' in commandhistory

  Device:

ls -d/--device: list available devices

 

4. Android-CTS用户指南

网址:http://source.android.com/compatibility/downloads.html




 

0 1