从 08年开始写博客,之前一直在 新浪上写,但是好多朋友都在CSDN上,所以今天也搬家了;
============================
Android 4.0 CTS step
前提:
1.在虚拟机上 安装linux (ubuntu)并用串口连接;
2.用USB线把 MID和 pc里的 虚拟机连接起来;
$ mkdir ~/CTS
$ cd ~/CTS
$ wget http://dl.google.com/dl/android/cts/android-cts-4.0.3_r1-linux_x86-arm.zip
$ unzip android-cts-4.0.3_r1-linux_x86-arm.zip
3. Setup device:
- Factory reset your device to remove any add-on APK that can affect CTS testing //恢复出厂设置
- Enable Developer options --> USB debugging
- Enable Developer options --> Stay awake
- Enable Developer options --> Allow mock locations
- Disasble Settings --> Security --> Unknown sources
- Install CTS APK://安装下边两个APK ,注意一定要用USB把MID和PC的虚拟机连接起来
$ adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
$ adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
- On the device, enable Settings > Accessibility > Delegating Accessibility Service > ON
- On the device, enable all the android.deviceadmin.cts.* device administrators under Settings > Security > Device Administrators
(without this and the previous step, you will get errors in some tests!)
//注意:以上两步APK的 安装 必须完成,否则下边操作无效,这两个apk安装到了MID里了。
- Enable WiFi - Device needs to be connected to an AP with WAN connectivity (connect VPN)
- Device language MUST be English
- Device has SD card inserted
- Choose Settings-->Display –>sleep ->Never timeout (If no this option, please choose the longest time)
- Press the HOME button to show the Home screen.
第一部分:平台准备工作(前提)
1. 进入settings->Privacy->Factory data reset,对平台进行reset一次,恢复出厂设置
2. 平台插入一张空的TF卡
3. 平台安装两个APK:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk
4. 进入settings打开Wi-Fi并连接AP (AP需要连外网)
5. 进入settings->Security->Screen lock设为None
6. 进入settings->Security->Enable Unknown sources
7. 进入settings->Security->Device administrators->Enable两个选项
8. 进入Language&input->language设为English(United States)
9. 进入settings->Display->Sleep ->Never timeout (如果没有这一项,选择最长时间)
10. 进入settings->Accessibility->Enable Delegating Accessibility Service
11. 进入settings->Developer options->Enable USB debugging、Stay awake、Allow mock locations
12. PC上copy“android-cts-media-1.0”,在android-cts-media-1.0文件下输入./copy_copy_media.sh运行脚本,将media文件copy进平台。成功后会在平台的内存中看到test文件夹。(此项适用于CTS4.0 R2,不能用于R1)
第二部分:新建CTS测试任务(每次输入后加回车)
1. 平台用USB线连接Linux PC (连通后平台右下方会显示usbconnected和usb debug conneted)
2. 打开终端
3. 输入sudo su -
输入root密码
4. 输入cd ../..
输入cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,cts-tradefed是一个脚本文件,有的版本叫startcts)
输入./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected new device 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf >
5. 输入run cts --plan CTS
终端显示 cts-tf > run cts --plan CTS
cts-tf > 01-16 15:45:34 I/TestInvocation: Starting invocation for 'cts' on build '4.0.3_r1' on device 0123456789ABCDEF
01-16 15:45:35 I/0123456789ABCDEF: Created result dir 2012.01.16_15.45.34
开始测试CTS
第三部分:关于CTS4.0测试报告
1. CTS测试报告将自动生成一个xml报表,并自动填写的,不需要测试人员干预
2. 当一个CTS测试任务开始时,会在android-cts-4.0.3_r1-linux_x86-arm/android-cts/repository/results中,为这个任务建立一个存放测试报告的文件夹,文件名以任务开始的日期和时间命名。
例如:2012.01.12_13.00.03
3. CTS4.0生成测试报告的速度比CTS2.3/2.2要慢不少,特别是在测试过程中中断测试,CTS4.0需要70秒才会开始生成报告。如果你在此过程中按ctrl+c终止CTS进程,测试报告就无法生成,以后也无法继续测试未完成的计划。
下方是中途断开后生成报告的例子:
01-18 13:50:19 I/0123456789ABCDEF: android.accounts.cts.AccountManagerTest#testHasFeature FAIL
Test failed to run to completion. Reason: 'Test run failed to complete. Expected 1 tests, received 0'. Check device logcat for details
01-18 13:51:29 I/0123456789ABCDEF: android.accounts package complete: Passed 20, Failed 2, Not Executed 6
01-18 13:51:29 I/0123456789ABCDEF: -----------------------------------------
01-18 13:51:29 I/0123456789ABCDEF: Test package android.admin started
01-18 13:51:29 I/0123456789ABCDEF: -----------------------------------------
……
01-18 13:51:30 I/0123456789ABCDEF: -----------------------------------------
01-18 13:51:30 I/0123456789ABCDEF: Test package android.widget started
01-18 13:51:30 I/0123456789ABCDEF: -----------------------------------------
01-18 13:51:30 I/0123456789ABCDEF: Saved log device_logcat_8558243668624894128.zip
01-18 13:51:30 I/0123456789ABCDEF: Saved log host_log_6087775957743010530.zip
01-18 13:51:30 I/0123456789ABCDEF: android.widget package complete: Passed 0, Failed 0, Not Executed 988
01-18 13:51:30 I/0123456789ABCDEF: Created xml report file at
file:///home/ linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools/./../../android-cts/repository/results/2012.01.18_13.43.56/testResult.xml
01-18 13:51:31 I/0123456789ABCDEF: XML test result file generated at 2012.01.18_13.43.56. Passed 28, Failed 20, Not Executed 17110
01-18 13:51:31 I/0123456789ABCDEF: Time: 2m 45s
01-18 13:51:33 W/DeviceManager: Freed device 0123456789ABCDEF is unavailable. Removing from use.
01-18 13:52:38 E/BackgroundDeviceAction: Device 0123456789ABCDEF not online
4. CTS测试任务完成后,会生成testResult.xml和2012.01.12.zip打开这个文件夹中的testResult.xml(用firefox或IE浏览器打开),查看报表是否完全。
5. 确认报表后,将整个文件夹复制出来,然后压缩后发给相关人员
第四部分:继续测试未完成的计划
CTS4.0对未完成的测试计划不会生成xml报告,这个和CTS2.3/2.2不同。但是,这并不意味测试中断后无法继续未完成的测试。
1. 前提条件:有未完成的测试计划
2. 平台用USB线连接Linux PC (连通后平台右下方会显示usbconnected和usb debug conneted)
3. 打开终端
4. 输入sudo su –
输入root密码
5. 输入cd ../..
输入cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,各位需要输入实际路径)
输入./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected new device 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf >
6. 输入l r
注意:是小写字母l,不是 阿拉伯数字1;
终端显示
Session Pass Fail Not Executed Start time Plan name
0 7 0 0 2012.01.16_16.09.19 NA
1 13 0 0 2012.01.16_16.13.01 NA
2 19 19 17120 2012.01.18_13.43.56 CTS
(根据start time时间,确定你要的任务的session编号)
7. 输入run cts –continue-session session_id (session编号)
终端显示
cts-tf > 01-18 13:48:45 I/TestInvocation: Starting invocation for 'cts' on build '4.0.3_r1' on device 0123456789ABCDEF
01-18 13:49:59 I/0123456789ABCDEF: Collecting device info
01-18 13:50:00 I/0123456789ABCDEF: -----------------------------------------
01-18 13:50:00 I/0123456789ABCDEF: Test package android.accounts started
01-18 13:50:00 I/0123456789ABCDEF: -----------------------------------------
第五部分:对fail/notExecuted/timeout的测试项进行测试(根据软件工程师要求是否执行)
1. 前提条件:已经有完成的测试结果testResult.xml文件add derivedplan --plan plane_name --session/-s session_id -r [pass/fail/notExecuted/timeout]
2. 平台用USB线连接Linux PC (连通后平台右下方会显示usbconnected和usb debug conneted)
3. 打开终端
4. 输入sudo su -
输入root密码
5. 输入cd ../..
输入cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,各位需要输入实际路径)
输入./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected new device 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf >
6. 输入l r
终端显示
Session Pass Fail Not Executed Start time Plan name
0 7 0 0 2012.01.16_16.09.19 NA
1 13 0 0 2012.01.16_16.13.01 NA
(根据start time时间,确定你要的任务的session编号)
7. 输入add derivedplan --plan plane_name(新建一个测试计划)--session/-s session_id -r [pass/fail/notExecuted/timeout] (只能选择其中一项)
8. 输入run cts –plan plane_name(新建的测试计划名称)开始测试
9. 测试完成后,CTS会自动生成一个新测试报表文件夹
第六部分:单独测试某个Case
1. 目前对单个Case每单独测试一次,就会生成一个Session(和测试报告xml)。所以,一般在有需求的情况下才会进行测试。
2. 平台用USB线连接Linux PC (连通后平台右下方会显示usbconnected和usb debug conneted)
3. 打开终端
4. 输入sudo su -
输入root密码
5. 输入cd ../..
输入cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,各位需要输入实际路径)
输入./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected new device 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf >
6. 从CTS测试报告XML文件中查找需要测试的Case的package name 和method name
例如:
按上方的例子:android.acceleration.cts.HardwareAccelerationTest是package name ,testIsHardwareAccelerated是method name
7. 输入run cts -c android.acceleration.cts.HardwareAccelerationTest --m testIsHardwareAccelerated 开始测试这个Case
8. 测试完成后,CTS会自动生成一个新测试报告文件夹
第七部分:注意事项:
1. CTS要求测试平台的硬件和Android内置APK功能完好
2. 正常测试一次CTS,需要8小时。所以,测试时请接上电源,并尽量在晚上测试,不会影响平台的使用
3. CTS是自动化测试,测试过程中一般不需要人的干预。如果在上班时间,每1-2小时观察下即可
4. CTS4.0在测试过程中断开、终止都不会生成测试报告,所以,测试前要保证USB连接稳定和平台设置
5. CTS每次执行run cts –plan CTS时,CTS会搜索android-cts-4.0.3_r1-linux_x86-arm/android-cts/repository/results中的历史报表文件夹。如果文件有很多,启动速度会非常慢。所以,请定期清理results文件夹中的历史报表(直接删除报表文件夹即可)。