转载自:http://blog.csdn.net/sk719887916/article/details/48050997 Tamic_码小白
最近学习cts相关的东西,发现一篇不错的文章,记录一下。
安卓应用离不开性能测试,也离不开安全测试,CTS是常用的安全测试工具,开发人员了解和正常使用是必不可少的,现在我们就看看怎么在windows下搭建cts测试环境。
一 工具/原料
Android SDK :android_sdk_windows
Java开发工具包:jdk
手机驱动:usb_driver
Cts : android-cts-4.2_r4-linux_x86-arm.zip cts 测试使用的所有APK
CTS media:android-cts-media-1.0.zip 进行CTS进行多媒体压力测试使用的视频资源
CTS verifier APK : android-cts-verifier-4.1_r6-linux_x86-arm.zip
二方法/步骤
1、安装JDK及java环境变量:
1> 安装jdk:
双击解压CTS_JDK_SDK
双击CTS_JDK_SDK\jdk jdk-7u3-windows-i586.exe 一直回车,默认安装路径即可。
2> 配置java 环境变量:
右击“我的电脑”,点击“属性”——>”高级”——>“环境变量”——“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;
JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径C:\Program Files\Java\jdk1.7.0_03,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);
Path使得系统可以在任何路径下识别java命令,设为:
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:
.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%SDK_ROOT%/tools; %JAVA_HOME%就是引用前面指定的JAVA_HOME;
3>.“开始”->;“运行”,键入“cmd”;
4>.键入命令“java -version”,“java”,“javac”几个命令,出现如下画面,说明环境变量配置成功;
Java version"1.7.0_45"Java(TM) SE Runtime Environment (build 1.7.0_45-b18)JavaHotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)
ADB配置:
将Android SDK包中tools目录下的 adb.exe 和 AdbWinApi.dll 复制到 Windows下的 system32 目录下。
连接手机输入adb shell 即可登录到你的手机里。
2、CTS 环境配置:
将CTS_JDK_SDK包解压后的 android_sdk_windows 、cts 拷贝至D或者C盘 这里我以拷贝到D盘目录为例:
1> 配置SDK变量目录 :
右击“我的电脑”,点击“属性”——>”高级”——>“环境变量”——“系统变量”添加 SDK_ROOT 变量:变量名:SDK_ROOT 变量值:D:\android_sdk_windows
(2).手机开启调试模式,连接电脑并安装好驱动,使用
adb install android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
然后在setting->Accessibility中会多一个Delegating Accessibility Service选项,将这个选项设置为On。
adb install android-cts/repository/testcases/CtsDeviceadmin.apk
adb install CtsVerifier.apk
在setting->security->device administrators下多出三个选项,将这三个选项勾选上并激活
将SD卡清空。在SD卡中新建目录test, 将android-cts-media-1.0.zip解压到test目录中,将SD卡插入手机中。确定SD卡为可读可写状态
另:为保证测试顺利进行,手机不要用图案或密码锁,其他可选设置可参见CTS相关文档(非必须);
1. 手机设置:
Setting->security->screen lock设为None
Setting->display->screen timeout -> 30 minutes
打开wifi 连接网络 (如果是自动测试的话,测试过程中会联网下载一些APK应用进行测试)。
创建CTS.bat 批处文件 文件内容如下:
ECHO OFF
ECHO CTS(Compatibility Test Suite)...
D:
cd D:\androidCTS\CTS\android-cts\tools
java -cp ddmlib-prebuilt.jar;tradefed-prebuilt.jar;hosttestlib.jar;cts-tradefed.jar -DCTS_ROOT=D:\cts com.android.cts.tradefed.command.CtsConsole
保存文件到 cts\android-cts\tools
三 开始测试
? 打开终端,进入android-cts/tools目录,运行脚本cts-tradefed。
当检测到设备(Detectednew device)的时候则说明操作成功。
? 如果把所有CTS测试的case都跑一遍(6-7个小时),可以直接输入如下命令即可:
runcts --plan CTS
? 如果只测试CTS中的部分case,只需要输入如下命令即可:
runcts -p android.NET #测试指定包下的所有case
runcts -c android.net.cts.ListeningPortsTest -m testNoListeningTcp6Ports #测单一case
三 CTS常用命令介绍
? 测试计划(plan)相关
lp #查看所有测试计划
runcts --plan <plan name> #指定一个plan
? 测试包(package)相关
lpackages #查看所有测试包
runcts -p <package name> #指定一个plan
? 具体case相关
CTS是基于JUnit测试,属于白盒测试,所以我们也可以根据某个测试包中某一个具体的类或者方法进行测试:
run cts –p <packages name> –c <class name> [-m <method name>] #测试单一case
更多的命令使用方法可以在终端中输入help查看命令帮助。
四 测试结果
查看测试结果
CTS测试的结果在android-cts/repository/results目录下以开始测试时间为名的目录下的testResults.xml文件中,用浏览器打开后如下图3所示。
图3 . CTS测试结果
CTS测试的日志文件在android-cts/repository/logs目录下的zip文件中,便于定位问题。
备注:
windows上需要自己创建cts-tradefed.bat,内容如下:
@echo off
setlocal enabledelayedexpansion
setlocal ENABLEEXTENSIONS
::设置cts根文件夹,更改当前文件夹为批处理本身的文件夹
set CTS_ROOT=%~dp0\..\..
::设置支持的jar包的根文件夹
set JAR_DIR=%CTS_ROOT%\android-cts\tools
::支持的jar包,一下项目中引用的jar包都要在启动的时候包括进来
set JARS=ddmlib-prebuilt.jar tradefed-prebuilt.jar hosttestlib.jar cts-tradefed.jar tradefed-prebuilt-orgin.jar jsoup-1.7.3.jar gson-2.2.4.jar commons-compress-1.8.1.jar mail.jar javacsv.jar RXTXcomm.jar
set JAR_PATH=.
for %%i in (%JARS%) do (
set JAR_PATH=!JAR_PATH!;%%i
)
java %RDBG_FLAG% -cp %JAR_PATH% -DCTS_ROOT=%CTS_ROOT% com.android.cts.tradefed.command.CtsConsole %*
pause