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-arm,android-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@user:home/jacky/android-sdk-linux/tools#chmod777 android
Root@user:home/jacky/android-sdk-linux/tools#./android
运行后安装
Tools/Android SDK Tools
/AndroidSDK Platform-tools
Android 4.2(API 17)
选择androidSDK Tools、androidSDK 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。
二、准备平台
1、Do factory reset.
2、Installandroid4.0 CTS test APK: 1)CtsDelegatingAccessibilityService.apk
2) CtsDeviceadmin.apk
3、set up languageas United States English.
4、plug in a emptySD card to the device.
5、launch wifi andconnect to ×××.
6、launch BT andmake sure it could searched device.
7、Setting-->Display-->Sleep-->selectNever timeout.
8、Setting-->Security-->Screenlock-->select None.
9、Setting-->Security-->Deviceadministrators-->enable two APK activitied.
10、Setting-->Security-->disableUnknown sources.
11、Setting-->Accaessibility-->turnon Delegating Accessibility Service.
12、Setting-->Developeroptions-->enable USB debugging.
13、Setting-->Developeroptions-->enable Stay awake.
14、Setting-->Developeroptions-->enable Allow mock locations.
15、set system timeas local time.
三、测试
1、copymedia文件
1) 平台用USB线连接LinuxPC (连通后平台右下方会显示usb和debugicon)
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 (连通后平台右下方会显示usb和debugicon)
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 (连通后平台右下方会显示usb和debugicon)
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)cd到android-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。
例:测试上面SessionID为2的所有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)cd到android-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)cd到android-cts/tools下输入./cts-tradefed
例:测试上面的一个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。