如何在Windows上运行Android 4.0 的 CTS 测试呢?

最近在做Android系统的自动化测试,所以花了点时间研究一下CTS。
Android官方发布的CTS测试包默认是在Linux系统上运行的,由于CTS分两部分执行,一部分是CTSHOST,主要用来控制整个测试过程的,它的作用就是把测试包按照测试计划安装到被测设备上,然后通过AdbshellAm执行相应的测试程序,然后再收集测试结果,最终把整个测试结果汇总,同时也会记录下测试日志。CTSHOST属于PC端测试工具,使用JAVA语言写成,所以可以运行在多个平台上。CTS的另外一部分就是测试包,以APK的形式存在,这些应用里就包含需要实际执行的TestCase。
尽管我们是做Android开发,理应在Linux环境下工作,但很多时候还是无法避免使用Windows,下面就介绍如何在Windows执行CTS,这里我使用的AndroidCTS4.0R2测试包来举例。下载CTS后,在Tools目录下新建CTS-Tradefed.bat,里面内容如下:

@echooff
setCTS_ROOT=..\..
remsetRDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=0暂不需用远程调试
setCTS_LIB=%CTS_ROOT%\android-cts\tools\cts-tradefed.jar
setDDM_LIB=%CTS_ROOT%\android-cts\tools\ddmlib-prebuilt.jar
setTDF_LIB=%CTS_ROOT%\android-cts\tools\tradefed-prebuilt.jar
setHST_LIB=%CTS_ROOT%\android-cts\tools\hosttestlib.jar
setJARS=%CTS_LIB%;%DDM_LIB%;%TDF_LIB%;%HST_LIB%
remechojava%RDBG_FLAG%-cp%JARS%-DCTS_ROOT=%CTS_ROOT%com.android.cts.tradefed.command.CtsConsole
calljava%RDBG_FLAG%-cp%JARS%-DCTS_ROOT=%CTS_ROOT%com.android.cts.tradefed.command.CtsConsole
rempause
@echoon

CTS包中的shell脚本里包含远程调试的语句,但是实际执行没有用到,所以在批处理中也不需要用。不知道Google为什么要这样写。

有一点需要注意:就是在测试android.core.vm-tests-tf.jar这个包时,需要解压缩到临时目录,由于CTSHOST把这个临时目录写死了Linux的tmp,所以在Windows执行这个测试时会有问题,怎么办,我们可以简单修改一下CTSHOST:
在cts\tools\tradefed-host\src\com\android\cts\tradefed\testtype找到VMHostTest.java

修改installVmPrereqs这个方法中一条语句:

把FilelocalTmpDir=FileUtil.createTempDir("cts-vm",newFile("/tmp/"));

修改FilelocalTmpDir=FileUtil.createTempDir("cts-vm",newFile(System.getProperty("java.io.tmpdir")));
然后重新编译一下,只需要编译cts-tradefed.jar
如果你的版本和google发布一致,那直接替换,如果不一致,建议只替换包中VMHostTest.class,替换前可以jad反编译对比一下,这样最保险。
以上都是亲力亲为实践得出的。


http://hi.baidu.com/fangqianshu/item/8250d4005d1a520dcd34ea22

更多相关文章

  1. android压力测试命令Monkey
  2. Android新提供的测试框架支持库学习 && Testing Support Library
  3. android studio 2.2单元测试
  4. 重磅来袭!2020 年需要关注的 5 大 Android(安卓)开发技术,抓破脑袋
  5. ant编译android
  6. Android(安卓)Studio 学习 - 程序安装
  7. Android远程Service(AIDL)的简单实例
  8. 图文来教你在eclipse下用gradle 来打包Android
  9. Android(安卓)SqliteManager 源码

随机推荐

  1. ScrollView实现界面自动滚动
  2. android 获取http网络图片保存png
  3. 10 个 Android开发人员必备的开发工具
  4. 使用IntelliJ IDEA 编译Android JNI
  5. MVP 笔记
  6. Android 文件系统移植
  7. Android菜鸟日记12 Gallery
  8. Android中常用基本控件的使用方法和步骤(.
  9. JavaEye Android client 收藏管理功能
  10. Android水平方向ListView的使用和注意点