从 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文件夹中的历史报表(直接删除报表文件夹即可)。

 

posted @ 2012-03-19 19:54  点点爱梦  阅读(83)  评论(0编辑  收藏  举报