CTS4.0测试完全教程

一、测试环境搭建

PC必须是linux系统

1、安装java6环境

下载java6

http://www.oracle.com/technetwork/java/javase/downloads/index.html

终端输入:sudosu -

输入密码

           sudo apt-get install sun-java-jdk

当出现如下错误:

 root@stu-system:/home# sudo apt-get install sun-java6-jdk

 Reading package lists... Done

 Building dependency tree

 Reading state information... Done

 Package sun-java6-jdk is not available, but is referred to by anotherpackage.

 This may mean that the package is missing, has been obsoleted, or

 is only available from another source


 E: Package 'sun-java6-jdk' has no installation candidate


解决办法:

       1、命令行输入sudo gedit/etc/apt/sources.list

       2、打开源列表在最后一行添加:

       debhttp://us.archive.ubuntu.com/ubuntu/ hardy multiverse

       3、保存退出

       4、更新apt

命令行输入:sudoapt-get update

       5、安装sun-java6-jdk

命令行输入:sudoapt-get install sun-java6-jdk

安装过程中根据提示选择"Y",或"OK"

2、下载文件

1.下载CTS测试包android-cts-4.2_r4-linux_x86-armandroid-cts-media-1.0

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

2.下载sdk

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

3.home文件夹下面新建一个文件夹,将下载好的三个压缩包剪贴到其中,解压缩。

3、安装adb工具

 android-sdk-linux/tools文件夹下面默认没有adb工具,解决办法:

命令行cd到android-sdk-linux/tools下,输入sh android

跳出安装窗口,选则需要的工具安装。如果android脚本不能执行,用chmod变更执行权限。具体命令如下:

Root@userhome/jacky/android-sdk-linux/tools#chmod777 android

Root@userhome/jacky/android-sdk-linux/tools#./android

运行后安装

   Tools/Android SDK Tools

           /AndroidSDK Platform-tools

   Android 4.2(API 17)

选择androidSDK ToolsandroidSDK Platform-tools以及要测试的android版本,这里主要讲android4.2,所以选择Android4.2(API 17),点击右下角"Install2 packages...."安装。安装完后close窗口,回到commandline


如果你的ubuntu安装的是64位系统,会报错:

Stopping ADB server failed (code-1).

Unable to run 'adb': Cannot runprogram "/home/jacky/android-sdk-linux/platform-tools/adb":java.io.IOException: error=2,

No such file or directory.

Starting ADB server failed (code-1).


可能需要手动安装32位支持如下:

sudo apt-get install ia32-libs


别忘了将SDK路径加入到当前的PATH变量中:

~$ vim .bashrc

export ANDROID_HOME=/home/jacky/android-sdk-linux

exportPATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools


否则执行adb会出现以下错误:

~$ adb

No command 'adb' found, did youmean:

Command 'cdb' from package 'tinycdb' (main)

Command 'gdb' from package 'gdb' (main)

Command 'dab' from package 'bsdgames'(universe)

Command 'zdb' from package 'zfs-fuse'(universe)

Command 'mdb' from package 'mono-debugger'(universe)

Command 'kdb' from package 'elektra-bin'(universe)

Command 'tdb' from package 'tads2-dev'(multiverse)

Command 'pdb' from package 'python' (main)

Command 'jdb' from package 'openjdk-6-jdk'(main)

Command 'ab' from package 'apache2-utils'(main)

Command 'ad' from package 'netatalk'(universe)



4、配置SDK路径

1.vi编辑器打开CTS\android-cts\tools下面的cts-tradefed脚本。

2.在代码最前面添加如下代码:

if[ -z "${SDK_ROOT}" ]; then

 # CONFIGURATION

 # Set this variable to the root of yourAndroid SDK installation.

 export SDK_ROOT=/home/jacky/android-sdk-linux

fi;

保存。

 3.

checkPath adb

checkPathjava

 之前,插入如下代码:

# Add SDK_ROOT to the PATH for backwardscompatibility with prior startcts

#commands that required SDK_ROOT to find adb.

if[ -n "${SDK_ROOT}" ]; then

  PATH=${SDK_ROOT}/platform-tools:${SDK_ROOT}/tools:${PATH}

fi;

保存并在commandline 输入命令chmod777 cts-tradefed

4.记事本或vi编辑器打开android-cts-media-1.0下面的copy_media.sh脚本。

5.在代码最前面添加如下代码:

 if [-z "${SDK_ROOT}" ]; then

 # CONFIGURATION

 # Set this variable to the root of yourAndroid SDK installation.

 export SDK_ROOT=/home/jacky/android-sdk-linux

 fi;

保存,并在commandline 输入命令chmod777 copy_media.sh


二、准备平台

1Do factory reset.

2Installandroid4.0 CTS test APK: 1)CtsDelegatingAccessibilityService.apk

                                                       2) CtsDeviceadmin.apk

3set up languageas United States English.

4plug in a emptySD card to the device.

5launch wifi andconnect to ×××.

6launch BT andmake sure it could searched device.

7Setting-->Display-->Sleep-->selectNever timeout.

8Setting-->Security-->Screenlock-->select None.

9Setting-->Security-->Deviceadministrators-->enable two APK activitied.

10Setting-->Security-->disableUnknown sources.

11Setting-->Accaessibility-->turnon Delegating Accessibility Service.

12Setting-->Developeroptions-->enable USB debugging.

13Setting-->Developeroptions-->enable Stay awake.

14Setting-->Developeroptions-->enable Allow mock locations.

15set system timeas local time.



三、测试

1copymedia文件

1) 平台用USB线连接LinuxPC   (连通后平台右下方会显示usbdebugicon

  2) 打开终端

  3) 输入sudo su –

输入root密码

4)输入cd../..

5)输入cd/home/user/cts4.0/android-cts-media-1.0

  //这个是copy_media.sh文件所在的路径,请输入您的实际路径。

输入 ./copy_media.sh


。。。。脚本开始copymedia文件到平台根目录下。。。。。



2、完全测试

 1) 平台用USB线连接LinuxPC   (连通后平台右下方会显示usbdebugicon

 2) 打开终端

 3) 输入sudosu –

输入root密码

 4) 输入cd../..

输入cd/home/jacky/CTS/android-cts/tools

      //这个是cts-tradefed文件所在路径,请输入您的实际路径

输入./cts-tradefed

终端显示:

     01-1615:44:05I/DeviceManager:Detectednewdevice0123456789ABCDEF

       //如果没有这行,说明设备没有和PC联通

    Android CTS 4.0.3_r1

    cts-tf >

5) 输入cts完全测试命令:runcts --plan CTS

      cts-tf>run cts --plan CTS

      01-1615:45:34 I/TestInvocation: Starting invocation for 'cts' on build'4.0.3_r1' ondevice 0123456789ABCDEF

      01-1615:45:35I/0123456789ABCDEF: Created result dir 2012.01.16_15.45.34


。。。。开始测试CTS。。。。



3、测试未完成的plan


 1) 平台用USB线连接LinuxPC   (连通后平台右下方会显示usbdebugicon

 2) 打开终端

 3) 输入sudosu –

输入root密码

 4) 输入cd../..

输入cd/home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools

      //这个是cts-tradefed文件所在路径,请输入您的实际路径

输入./cts-tradefed

终端显示:

     01-1615:44:05I/DeviceManager:Detectednewdevice0123456789ABCDEF

       //如果没有这行,说明设备没有和PC联通

    Android CTS 4.0.3_r1

    cts-tf >


 5) 输入lr


终端显示:

    Session  Pass  Fail Not Executed     Start time           Planname

      0       7     0         0        2012.01.16_16.09.19    NA      

     1        13   0         0         2012.01.16_16.13.01    NA      

      2       19    9       17120      2012.01.18_13.43.56    CTS    

(根据starttime时间,确定你要的任务的session编号)

 6) 输入run cts –continue-session session_id session编号)

终端显示

 01-1813:48:45I/TestInvocation:Startinginvocationfor'cts'onbuild'4.0.3_r1'ondevice0123456789ABCDEF


。。。。继续测试未完成的plan。。。。



4、测试某一个plan的全部fail/notExecuted/timeout


1)连接平台和PC

2)终端输入sudo su -

输入root密码

3)cdandroid-cts/tools下输入./cts-tradefed

4)确认平台和PC连通后在cts-tf>输入lr

终端显示:

    Session  Pass  Fail Not Executed     Start time           Planname

      0       7     0         0        2012.01.16_16.09.19    NA      

      1       13    0         0         2012.01.16_16.13.01    NA        

      2       19    9       17120      2012.01.18_13.43.56    CTS

5)输入add derivedplan--plan plan_name -s sessionID -r fail  

//plan_name可以自己定义,sessionID就是上面查看结果的Session编号。测试全部fail-r后面是fail,测试notExecuted项或者timeout项,-r后面就是notExecuted或者timeout

例:测试上面SessionID2的所有fail项,输入命令应为:

  add derivedplan --plan

6)输入run cts --planplan_name  

 //plan_name即您前面定义的。

终端显示

    cts-tf> 01-18 13:48:45 I/TestInvocation: Starting invocation for'cts' on build'4.0.3_r1' on device 0123456789ABCDEF


。。。。开始测试fail/notExecuted/timeout项。。。。



5、测试某一个package

 1)连接平台和PC

 2)终端输入sudosu -

输入root密码

 3)cdandroid-cts/tools下输入

输入./cts-tradefed

 4)输入命令:l p 查看所有package

 5)输入命令:runcts -c package_name

如测试android.bluetooth,输入命令:runcts -c android.bluetooth

终端显示

    cts-tf> 01-18 13:48:45 I/TestInvocation: Starting invocation for'cts' on build'4.0.3_r1' on device 0123456789ABCDEF


。。。。开始测试一个package。。。。



6、测试摸一个case

 1)连接平台和PC

 2)终端输入sudosu -

输入root密码

 3)cdandroid-cts/tools下输入./cts-tradefed


ubuntu 10.04 CTS 环境搭建_第1张图片

例:测试上面的一个case,输入命令:runcts -c android.app.cts.SystemFeaturesTest --m testLocationFeatures


终端显示

    cts-tf> 01-18 13:48:45 I/TestInvocation: Starting invocation for'cts' on build'4.0.3_r1' on device 0123456789ABCDEF


。。。。开始测试一个case。。。。



四、注意事项

1、如果忘记命令,可以在cts-tf>后输入help查看命令。

2、测试完成后,自动生成的报告存放在目录:CTS/android-cts/repository/resualt

3、报告中包括5个文件,用浏览器打开testResult.xml文件查看完整报告。

4、所有log信息存放在目录CTS/android-cts/repository/logs