如何测试CTS4.1

CTS4.1测试步骤 V1.0 (更新到CTS4.1 R1)


转自 http://blog.youkuaiyun.com/subsist/article/details/7822892

前言:其实CTS4.1 R1的测试方法和CTS4.0 R2&R3一样,只是测试环境需要新的SDK r20.0.1,SDK下载链接:http://developer.android.com/sdk/index.html

所以这篇文章有点偷懒了,呵呵。

 

第一:平台准备工作

第二:新建CTS测试任务

第三:关于CTS4.1测试报告

第四:继续测试未完成的计划

第五:单独对fail/notExecuted/timeout的测试项进行测试

第六:单独测试某个Case

第七:注意事项

 


----------------------------------------------

第一部分:平台准备工作

----------------------------------------------

1.进入Settings > SD Card & phone storage > Factory data reset,对平台进行reset一次

2.平台插入一张空的TF卡

3.平台安装两个APK:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk

4. 进入settings打开Wi-Fi并连接AP (AP需要连外网)

5.进入settings->Security->Screenlock设为None

6.进入settings->Security->EnableUnknown sources

7.进入settings->Security->Deviceadministrators->Enable两个选项

8.进入Language&input->language设为English(UnitedStates)

9.进入settings->Display->Sleep设为30minutes或None

10.进入settings->Accessibility->EnableDelegating Accessibility Service

11.进入settings->Developeroptions->Enable USB debugging、Stay awake、Allowmock locations

12. 进入settings->Date&time->Select time zone设为Pacific Time

13.PC上copy“android-cts-media-1.0”,在android-cts-media-1.0文件下输入source ./copy_media.sh all (因为发现原来的./copy_media.sh脚本不能复制所有文件)运行脚本,将media文件copy进平台。成功后会在平台的内存中看到test文件夹。Media file下载链接:CTS Media 1.0 (下载后需要解压)


----------------------------------------------

第二部分:新建CTS测试任务(每次输入后加回车)

----------------------------------------------

1.平台用USB线连接LinuxPC (连通后平台左上方会显示usb和debug icon)

2.打开终端

3.输入sudosu -

      输入root密码

4.输入cd ../..

      输入 cd /home/linux/cts/android-cts-4.1_r1-linux_x86-arm/android-cts/tools  (这个是cts-tradefed文件所在路径,各位需要输入实际路径)

      输入 ./cts-tradefed

      终端显示   01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)

Android CTS 4.1_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.1_r1' on device 0123456789ABCDEF

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

       开始测试CTS

 


----------------------------------------------

第三部分:关于CTS4.1测试报告

----------------------------------------------

1.CTS测试报告是自动生成一个xml报表,并自动填写的,不需要测试人员干预

2.当一个CTS测试任务开始时,会在android-cts-4.1_r1-linux_x86-arm/android-cts/repository/results中,为这个任务建立一个存放测试报告的文件夹,文件名以任务开始的日期和时间命名。

   例如:2012.01.12_13.00.03

3.CTS4.1生成测试报告的速度比CTS2.3/2.2要慢不少,特别是在测试过程中中断测试,CTS4.1需要70秒才会开始生成报告。如果你在此过程中按ctrl+c终止CTS进程,测试报告就无法生成,以后也无法继续测试未完成的计划。

下方是中途断开后生成报告的例子:

01-1813:50:19I/0123456789ABCDEF: android.accounts.cts.AccountManagerTest#testHasFeature FAIL

Testfailed to run to completion. Reason: 'Test run failed to complete. Expected 1tests, received 0'. Check device logcat for details

01-1813:51:29I/0123456789ABCDEF: android.accounts package complete: Passed 20, Failed 2, NotExecuted 6

01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:29 I/0123456789ABCDEF: Test package android.admin started

01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------

……

01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:30 I/0123456789ABCDEF: Test package android.widget started

01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:30 I/0123456789ABCDEF: Saved log device_logcat_8558243668624894128.zip

01-1813:51:30 I/0123456789ABCDEF: Saved log host_log_6087775957743010530.zip

01-1813:51:30 I/0123456789ABCDEF: android.widget package complete: Passed 0, Failed0, Not Executed 988

01-1813:51:30 I/0123456789ABCDEF: Created xml report file at

file:///home/linux/cts/android-cts-4.1_r1-linux_x86-arm/android-cts/tools/./../../android-cts/repository/results/2012.01.18_13.43.56/testResult.xml

01-1813:51:31 I/0123456789ABCDEF: XML test result file generated at2012.01.18_13.43.56. Passed 28, Failed 20, Not Executed 17110

01-1813:51:31 I/0123456789ABCDEF: Time: 2m 45s

01-1813:51:33 W/DeviceManager: Freed device 0123456789ABCDEF is unavailable.Removing from use.

01-1813:52:38 E/BackgroundDeviceAction: Device 0123456789ABCDEF not online

 

3.CTS测试任务完成后,会生成testResult.xml和2012.01.12.zip打开这个文件夹中的testResult.xml(用firefox或IE浏览器打开),查看报表是否完全。

4.确认报表后,将整个文件夹复制出来,然后压缩后发给相关人员

 

 

----------------------------------------------

第四部分:继续测试未完成的计划

----------------------------------------------

CTS4.1对未完成的测试计划不会生成xml报告,这个和CTS2.3/2.2不同。但是,这并不意味测试中断后无法继续未完成的测试。

1. 前提条件是有未完成的测试计划

2. 平台用USB线连接LinuxPC   (连通后平台右下方会显示usb和debugicon)

3. 打开终端

4. 输入sudo su –

     输入root密码

5. 输入cd ../..

     输入cd /home/linux/cts/android-cts-4.1_r1-linux_x86-arm/android-cts/tools(这个是startcts文件所在路径,各位需要输入实际路径)

     输入 ./cts-tradefed

      终端显示   01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)

Android CTS 4.1_r1

cts-tf >

6.输入l r

       终端显示

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      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.1_r1' on device 0123456789ABCDEF

01-1813:49:59 I/0123456789ABCDEF: Collecting device info

01-1813:50:00 I/0123456789ABCDEF: -----------------------------------------

01-1813:50:00 I/0123456789ABCDEF: Test package android.accounts started

01-1813: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线连接LinuxPC    (连通后平台左上方会显示usb和debugicon)

3.打开终端

4.输入sudosu -

      输入root密码

5.输入cd ../..

      输入 cd /home/linux/cts/android-cts-4.1_r1-linux_x86-arm/android-cts/tools  (这个是startcts文件所在路径,各位需要输入实际路径)

      输入 ./cts-tradefed

      终端显示   01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)

                         Android CTS 4.1_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.输入addderivedplan --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线连接LinuxPC    (连通后平台左上方会显示usb和debugicon)

3.打开终端

4.输入sudosu -

      输入root密码

5.输入cd ../..

      输入 cd /home/linux/cts/android-cts-4.1_r1-linux_x86-arm/android-cts/tools  (这个是startcts文件所在路径,各位需要输入实际路径)

      输入 ./cts-tradefed

      终端显示   01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)

Android CTS 4.1_r1

cts-tf >

6.从CTS测试报告XML文件中查找需要测试的Case的packagename 和 method name

例如:





按上方的例子:android.acceleration.cts.HardwareAccelerationTest是package name,testIsHardwareAccelerated是method name

7.输入runcts -c android.acceleration.cts.HardwareAccelerationTest --m testIsHardwareAccelerated开始测试这个Case

8. 测试完成后,CTS会自动生成一个新测试报告文件夹


----------------------------------------------

第七部分:注意事项:

----------------------------------------------

1.CTS4.1的命令和CTS2.3/2.3完全不同,所以在进入CTS后,先输入help看看命令的格式和意思。

2.CTS要求测试平台的硬件和Android内置APK功能完好

3.正常测试一次CTS4.1,需要6小时。所以,测试时请接上电源,并尽量在晚上测试,不会影响平台的使用

4.CTS是自动化测试,测试过程中不需要人的干预。如果在上班时间,每1-2小时观察下即可

5.CTS4.1在测试过程中断开、终止都不会生成测试报告,所以,测试前要保证USB连接稳定和平台设置

6.CTS每次执行run cts –plan CTS时,CTS会搜索android-cts-4.1_r#-linux_x86-arm/android-cts/repository/results中的历史报表文件夹。如果文件有很多,启动速度会非常慢。所以,请定期清理results文件夹中的历史报表(直接删除报表文件夹即可)


<think>好的,用户想了解如何将应用或功能移植到鸿蒙4.1系统,需要教程、开发者文档和兼容性方面的指导。首先,我需要整理鸿蒙移植的基本步骤,确保覆盖主要方面。根据提供的引用,特别是引用[1]提到API11及以上的开发文档和IDE下载,应该先确认开发环境。 用户可能需要知道开发工具的安装,比如DevEco Studio,引用[2]提到支持HarmonyOS 3.0,但4.1可能需要更高版本,需要确认IDE是否兼容。然后,代码迁移是关键部分,ArkTS和Stage模型是核心,引用[1]和[3]都提到这些知识点,需要强调代码调整和资源适配。 兼容性方面,API差异和权限管理可能存在问题,引用[4]的文档链接可以作为快速入门参考。测试和调试部分需要提到模拟器和真机调试,引用[2]提到的工具应该适用。最后,文档和社区资源也很重要,引用[3]的学习资料可以帮助深入学习。 用户可能遇到的问题包括API不兼容、UI适配、性能优化等,需要给出具体的解决建议。例如,使用IDE的兼容性检查工具,或者查阅官方文档中的迁移指南。同时,注意用户可能需要了解分布式能力和多端部署,引用[1]和[2]提到这些,应该包含在步骤中。 需要确保回答结构清晰,分步骤说明,并引用提供的资料作为支持。还要生成相关问题,可能涉及具体迁移案例、API变化、性能优化方法等。保持语言简洁,技术点明确,帮助用户逐步完成移植工作。</think># 鸿蒙4.1系统移植指南 ## 一、移植前准备 1. **开发环境搭建** - 安装DevEco Studio 4.1版本(需从[华为开发者联盟](https://developer.huawei.com)下载)[^2] - 配置OpenHarmony SDK,确保包含API 11及以上组件[^1] - 创建新工程时选择"Stage模型",这是鸿蒙4.1推荐的应用架构模式[^3] 2. **代码兼容性检测** - 使用IDE内置的"Code Compatibility Checker"工具扫描原生代码 - 重点关注Java/Kotlin转ArkTS的语法差异,如类型注解、异步处理等[^4] ## 二、关键移植步骤 1. **UI框架适配** - 将Android XML布局转换为ArkUI声明式语法,例如: ```typescript // 原生Android <TextView android:text="Hello"/> // 鸿蒙ArkUI Text('Hello') .fontSize(20) .fontColor(Color.Black) ``` - 使用`@Component`装饰器重构自定义组件 2. **分布式能力接入** - 注册分布式权限:`ohos.permission.DISTRIBUTED_DATASYNC` - 实现`AbilityContext`跨设备调用接口[^3] 3. **多媒体兼容处理** - 视频播放需改用`@ohos.multimedia.media`接口 - 图形渲染优先使用WebGL/OpenGL ES 3.0标准[^1] ## 三、兼容性解决方案 | 问题类型 | 解决方案 | 参考文档 | |---------|--------|---------| | API差异 | 使用`@system`扩展API实现功能替代 | [兼容性指南] | | 权限变更 | 动态申请`ohos.permission.xxxx`新权限体系 | 安全规范文档[^2] | | 后台限制 | 改用后台任务管理器`backgroundTaskManager` | 生命周期管理[^3] | ## 四、测试与部署 1. **多设备验证** - 使用DevEco Studio的"Multi-profile Preview"双向预览功能 - 真机调试需开启"开发者模式->USB调试" 2. **性能优化** - 使用HiProfiler分析内存泄漏 - 通过`@State`和`@Link`优化数据绑定效率[^1] 3. **应用上架** - 打包App时选择"兼容模式"(支持Android生态) - 提交至华为应用市场前通过CTS兼容性测试套件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值