如何判断 cts android
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断 cts android相关的知识,希望对你有一定的参考价值。
CTS是什么?资料:CDD、CTS官网、android-cts-manual-r4;
CTS是什么我就不多费话了,看上面官方的说法就行了。不过有一点需要明确,你的设备只有满足CDD的规定并且通过CTS,才有可能获得Android的商标和享受Android Market的权限。这里有可能指的是需要你自己去向google申请的,不是说兼容了,这些东西就自然而然有了。
怎么用:
资料: android-cts-manual-r4、宋立新_Android CTS测试研究;
安装与配置:
下载或自己编译;修改startcts中SDK_ROOT;在板子或emulator上装一个apk;设置setting;
各种命令的用法:
注意:start --plan –p以及start --plan –t的用法,-t要指定一个具体的测试方法
方法1:一般使用的方法
$ ./startcts 注意如果用手机设备调试,用root权限执行
cts_host > ls --plan 列出所有plan
out/host/linux-x86/cts/android-cts/repository/plans中有plan的具体内容
cts_host > start --plan VM 运行某个plan
测试结果在out/host/linux-x86/cts/android-cts/repository/results目录下,用浏览器看时间目录下的xml文件即可
注意在改动cts后,还要make cts重新编译,若只在cts目录中编译不能生效
cts_host > ls -p 看当前可用的用例包
cts_host > start --plan Android -p android.app 只运行某个用例包,节约时间
cts_host > start --plan Android -p android.app -t android.app.cts.AlertDialogTest#testAlertDialog
只运行某个用例包中的某个用例
方法2:遇到问题时方便调试的方法
$ adb install out/target/product/xxxx/data/app/SginatureTest.apk 安装某个用例包
$ adb shell pm list instrumentation pm用于管理package,看当前机器安装了什么用例
$ adb shell am instrument -w android.tests.sigtest/.InstrumentationRunner am用于管理activity 运行某一用例
$ adb shell am instrument -e class android.app.cts.AlertDialogTest#testAlertDialog -w com.android.cts.app/android.test/InstrumentationCtsTestRunner 单独运行一个小case
如果在一个时间很长的plan(如Android)中,某处错了,而错误信息又不全,需要单独跑一个小case,用-e指明class明就可以节约很多时间
用完后结果的分析:
结果在repository/results中,放在一个文件夹里,名字是你测试开始的时间。
分析的方法有两种:
1、可以直接从Failure Details找原因;(个人感觉应该难度较大)
2、结合源代码以及Failure Details的信息找原因
第二种方法牵扯到找测试源代码的问题,这就要对CTS源码目录以及相应生成物的命名有一定的了解。
了解CTS这个工程:
资料:宋立新同学的Android CTS测试研究二、android build system、CTS源码、makefile以及shell基本知识
了解Linux工程最好的入手点,就是从它的编译系统入手。
这个涉及到Linux的makefile以及android的编译系统的基本知识,具体内容还是挺多的,不过看懂了android编译系统,以后看其他Android工程应该都会得心应手。
在android CTS上增加自己的test package
资料:CTS命令的用法、Erin Yueh的两篇文章
有两种方法:
1、完美利用自带命令(已验证)
2、用Erin Yueh的方法
用这个方法的前提也是要彻底弄懂CTS的内部结构,不然也只能照猫画虎
如何写test case
资料:JUnit、SDK/docs下面的五篇文章、android open source官网/porting/Instrumentation Testing
这又是另外一门学问了
这个test case 可以涉及各个层次,Android 平台相关的测试的写法可以参考官方的那五篇文章,如何运行可参考上面资料三,其他的可能会涉及到JUnit以及其他一些知识,目前还没实地考察。
接下来要弄明白的
1、android的编译系统(学习下makefile以及shell基本知识)
2、CTS这个工程(看看测试包XML生成器的假设成不成立,能不能提取出来)
3、众多层次test case 的写法 参考技术A 如何判断?
你就直接跑这个测试呗
android 性能測试CTS篇
CTS介绍
一、CTS简单介绍
CTS 全称Compatibility Test Suite兼容性測试工具。
当电子产品开发出来。并定制了自己的Android系统后,必需要通过最新的CTS检測。以保证标准的android应用能执行在该平台下。
通过了CTS验证。须要将測试报告提交给Google,已取得android market的认证
二、为什么须要CTS測试?
1、让APP提供更好的用户体验。用户能够选择很多其它的适合自己设备的APP。让APP更稳定。
2、让开发人员设计更高质量的APP。
3、通过CTS的设备能够执行Android market。
三、怎么样才干让我的设备变成兼容的?
1、与Android Compatibility Definition文档匹配,文档列举了兼容性设备的软硬件特性
2、通过CTS測试。CTS是开源的測试框架,使用它来測试你的设备是否具备兼容性。
3、提交报告,測试完CTS后,把測试结果发送给[email protected]。同一时候还能够申请訪问Android Market的权限
四、CTS工作原理
CTS自己主动化測试两部分组成:
1、执行在PC上的測试框架组件。主要用来管理測试用例(test case)的执行
2、执行在设备或模拟器上的測试用例。这些用例用JAVA写成的APK文件
五、CTS流程
1、获取CTS(源代码编译/站点下载)
2、安装配置CTS。
3、把设备连接到PC上。
4、执行CTS。
CTS会把对应的測试用例(APK文件)安装到设备上,执行,记录执行结果。最后删除測试用例。
5、全部的測试用例执行完成后。能够參照測试结果又一次调整或优化系统。然后继续执行CTS測试。
6、測试通过以后,把CTS生成的结果(就是result目录以下的.zip文件)和设备的一些额外信息(如:screen captures)提交给[email protected]。
六、CTS測试类型
CTS包括以下三种级别:
1、单元级。
測试Android平台上的代码单元。
比方,一个java.util.HashMap这种类。
2、功能级。
多个API组合而成的一个更高级測试用例。
3、程序级。
执行APP来測试全部API和Android服务。
未来版本号还会包括以下的类型:
1、强度測试。測试系统在高CPU运算之下的稳定性。
2、效率測试。比方每秒渲染的帧数。
环境搭建
一、ADB环境变量配置
‘vim ~/.bashrc,在文件头加入以下两句
export SDK_ROOT=/home/xxx/sdk
export PATH=${SDK_ROOT}/platform-tools:${SDK_ROOT}/tools:$PATH
二、编译cts
source build/envsetup.sh
make cts
编译结束后:
生成到out/host/linux-x86/cts
三、ADB连接设备
1:所有測试须要6小时左右,建议使用USB连接ADB
2:假设是仅仅測试一部分,能够选择网络或者USB
四、设备设置
1: settings->Developeroptions->中的Enable USB debugging、 Stay awake、 Allowmock Locations 这3项选择打开
2: settings->Security->Device administrators 里面的所有选择(此处是在CTS開始測试后,第一次重新启动后设置)
五、測试步骤
以下是所有測试步骤,部分測试方法见out/host/linux-x86/cts/android-cts/tools/README说明
cd out/host/linux-x86/cts/android-cts/tools
./cts-tradefed
run cts --plan CTS
開始測试,例如以下图:
注意:
在測试过程中,设备会重新启动几次。不要中断终端的cts測试窗体
六、測试结果
例如以下图:測试完毕
结果在cts/android-cts/repository/results文件夹
部分结果见下图:
以上是关于如何判断 cts android的主要内容,如果未能解决你的问题,请参考以下文章