android 的测试工具 CTS

#移动开发 #Android

1. 什么是 CTS
兼容性测试,手机设备需要通过 Android 的兼容性测试 (CTS),以确保在 android 上开发的程序在手机设备上都能运行,才能使用

android market

2. 下载及安装
git 下载的源码里包含 cts,位置在 $ANDROID/cts 目录下(android2.1 以后版本) 如果没有也可以从此处下载 git://android.git.kernel.org/platform/cts.git(源码 70M 左右) 编译
_ $ build/envsetup.sh
$ make cts _

此时生成测试计划,测试包,测试用例,和测试报告生成的目录

3. 使用

  1. 方法1:一般使用的方法
    _ $ cts _ _ 注意如果用手机设备调试,用 _ _ 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 _ **
_ 只运行某个用例包中的某个用例 _

  1. 方法 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 明就可以节约很多时间

4. 说明

  1. bin/cts 是一个脚本,它使用 adb 来测试,测试程序及测试用例由 java 语言编写

  2. cts 主函数为 cts/tools/host/src/com/android/cts/TestHost.java

5. 参考
[http://www.kandroid.org/android_pdk/instrumentation_testing.html

](http://www.kandroid.org/android_pdk/instrumentation_testing.html)