1. android的cts测试到底有多细
以wifi测迟亮试为列android.net.wifi模块的cts测试结果如下:android.app.cts.SystemFeaturesTest-- testBluetoothFeaturepass -- testCameraFeaturespass -- ...
以wifi测试为列
android.net.wifi模块的cts测试结果如下:
android.app.cts.SystemFeaturesTest
-- testBluetoothFeature
pass
-- testCameraFeatures
pass
-- testFeatureNamespaces
pass
-- testLiveWallpaperFeature
pass
-- testLocationFeatures
pass
-- testNfcFeatures
pass
-- testScreenFeatures
pass
-- testSensorFeatures
pass
-- testSipFeatures
pass
-- testTelephonyFeatures
pass
-- testTouchScreenFeatures
pass
-- testUsbAccessory
pass
-- testWifiFeature
pass
android.net.http.cts.ApacheHttpClientTest
--
pass
-- testExecute_withMobile
pass
-- testExecute_withWifi
pass
android.net.wifi.cts.ConcurrencyTest
--
pass
-- testConcurrency
pass
android.net.wifi.cts.ScanResultTest
--
pass
-- testScanResultProperties
pass
android.net.wifi.cts.SupplicantStateTest
--
pass
-- testIsValidState
pass
android.net.wifi.cts.WifiConfigurationTest
--
pass
-- testWifiConfiguration
pass
android.net.wifi.cts.WifiInfoTest
--
pass
-- testWifiInfoProperties
pass
android.net.wifi.cts.WifiManagerTest
--
pass
-- testSignal
pass
-- testWifiManagerActions
pass
-- testWifiManagerNetWork
pass
-- testWifiManagerProperties
pass
android.net.wifi.cts.WifiManager_WifiLockTest
--
pass
-- testWifiLock
pass
上面的assert部分为断言,用来检查cts的测试结果是pass还是fail。你会发现cts的测试比较简单,它只能保证 你的android设备支或旦高持衫尺wifi,和中间件接口控制wifi的工作。
搜遍了wifi的全部测试模块,都没有找到哪里验证了 WifiConfiguration.KeyMgmt (wifi鉴权)。
2. 如何通过Android CTS测试
解决方法: 1. 生成加密key文件: 将/android_src/development/tools/生成的key COPY到android\build\target\proct\security\ 2. 编译android源码 重新编粗卜译android源码,此时out/.../system/app下就是重新编译的APK 重新构建NFS挂载使用的根文件系统再次测试 3. 单个APK的签名 重新测试时发现com.android.pts.browser包还是PASS不了,查看out/.../system/app/下的APK文件,发现在步骤2中, out/.../system/app/PtsDeviceBrowserLauncher.apk没有重新生成,还是原来的。 不知道为啥没有重新生成? 我的解决方法是对此碰凳卜APK单独签名,将signapk.jar 及自签名密匙,platform.pk8 platform.x509.pem COPY到下面路径并 cd /out/target/proct/xxxx/obj/APPS/PtsDeviceBrowserLauncher_intermediates 文件位置:可以在platform/build/target/proct/security/中找到platform.pk8 platform.x509.pem等签名文件,对应不同的权限。 signapk.jar:由/platform/build/tools/signapk/编译产出,可以在/out/host/linux-x86/framework/中找到。 然后运行下面命令 : # java -jar signapk.jar platform.x509.pem platform.pk8 package.apk.unsigned PtsDeviceBrowserLauncher.apk package.apk.unsigned 表示未签名的该APK文件, 重新签名后为PtsDeviceBrowserLauncher.apk //签过名的APK重新签名可能会出错,最好找到未签笑穗名的APK 其他参考: 签名: java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有对应权限的APK 优化APK: zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk 查循APK是否优化过: zipalign -c -v 4 MyDemo.apk
3. 如何在win 环境下进行Android CTS 测试
可以在windows上进行测试,我们一直都用Windows测的
java -Xmx512M -cp D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\cts.jar;D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\hosttestlib.jar;D:\android-sdk_eng.apuser_linux-x86\android-cts\tools\junit.jar;D:\android-sdk_eng.apuser_linux-x86\tools\lib\ddmlib.jar com.android.cts.TestHost D:\android-sdk_eng.apuser_linux-x86\android-cts\repository\host_config.xml
用这个进入CTS host之后的测试就跟linux上是一样的
4. 如何进行android兼容性测试cts
二、运行CTS的方法,步骤如下:
(1)进入目录android-cts,该目录是通过上面那两种方法获得的。在android-cts目录下会有3个文件夹,其中一个是tools。
(2)进入tools目录,输入./startcts来启动CTS。
(3)如果运行成功会出现Android CTS version 2.3_r1的字样(我的android的版本是2.3的)。如果有连接设备到PC上还会出现Device(设备ID)connected的字样。这里设备可以是连接PC的android的机器,也可以是模拟器。
三、CTS测试的方法:
(1)在cts_host>下敲入help,会显示cts下的许多命令。ls –plan命令显示google自带的测试方案,如:Java、Signature、Android、CTS、VM、RefApp、Performance、AppSecurity。其中Performance这个方案是google暂不要求的。Java、Signature、Android、VM、RefApp、Appsecurity方案都是CTS方案的子集。
(2)用命令ls -d来查看已连接的设备,CTS测试之前我们必须保证至少有一个设备连接上。
(3)输入命令start –plan CTS来执行CTS测试方案,该方案有两万多条测试项目,需要很长时间,因此除了第一次测试之外,不建议这么做。我做的都是针对某些包的测试。如果连接了多个设备的话需加上-d参数,后面跟上设备id来告诉CTS需要测试的设备。
(4)对单独一个包进行测试的方法:start –plan CTS –p 包名;推荐用这种方法来进行针对性的测试。需要知道有哪些包名,可以输入命令:ls –plan CTS
(5)也可以针对单独一个case进行测试:start –plan CTS –test 类名#方法名
四、查看测试的结果:
测试生成的log在\android-cts\repository目录下以log+测试时间.txt命名。测试报告在android-cts\repository\results目录下,也是以测试时间命名。
五、注意事项:
(1)测试前需要安装一个apk:adb install -r android-cts/repository/testcases/.apk 然后在设置里面
5. 如何通过Android CTS测试
Android的CTS测试,英文为Compatibility Test Suite,意为兼容性测试。只有通过CTS测试的设备才有可能获得Android的商标和享受Android Market的权限。以下分享我对Android CTS的认识。
一、取得Compatibility Test Suite的两种方法:
(1)可以从http://source.android.com/compatibility/downloads.html下载最新版本的Compatibility Test Suit;
(2)也可以通过编译Android源代码的方式获得。在android源代码目录下输入make cts命令来编译CTS,之后会在out/host/linux-x86/cts/下生成android-cts文件夹。这个文件夹就是Compatibility Test Suit。
==========================================
1、Error occurred ring initialization of VM
Could not reserve enough space for object heap
从字面上看是在初始化java Vm的时候不能获取足够的堆空间,于是修改了build/core/definition.mk文件中的编译core.jar和framework.jar时需要的-JXmx为1024m,此参数代表编译上述两个包时需要的最大内存,此初始值为2048M,由于我的PC电脑总的内存才2G,系统运行会占据一部分内存,故编译android的时候肯定不会分配2G内存,
解决:
把build/core/definitions.mk 文件
第1528行:$(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx2048M) \
改成: $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx1024M) \
http://blog.csdn.net/leerobin83/article/details/7873229
==========================================
二、运行CTS的方法,步骤如下:
(1)进入目录android-cts,该目录是通过上面那两种方法获得的。在android-cts目录下会有3个文件夹,其中一个是tools。
(2)进入tools目录,输入./startcts来启动CTS。
(3)如果运行成功会出现Android CTS version 2.3_r1的字样(我的android的版本是2.3的)。如果有连接设备到PC上还会出现Device(设备ID)connected的字样。这里设备可以是连接PC的android的机器,也可以是模拟器。
三、CTS测试的方法:
(1)在cts_host>下敲入help,会显示cts下的许多命令。ls –plan命令显示google自带的测试方案,如:Java、Signature、Android、CTS、VM、RefApp、Performance、AppSecurity。其中Performance这个方案是google暂不要求的。Java、Signature、Android、VM、RefApp、Appsecurity方案都是CTS方案的子集。
(2)用命令ls -d来查看已连接的设备,CTS测试之前我们必须保证至少有一个设备连接上。
(3)输入命令start –plan CTS来执行CTS测试方案,该方案有两万多条测试项目,需要很长时间,因此除了第一次测试之外,不建议这么做。我做的都是针对某些包的测试。如果连接了多个设备的话需加上-d参数,后面跟上设备id来告诉CTS需要测试的设备。
(4)对单独一个包进行测试的方法:start –plan CTS –p 包名;推荐用这种方法来进行针对性的测试。需要知道有哪些包名,可以输入命令:ls –plan CTS
(5)也可以针对单独一个case进行测试:start –plan CTS –test 类名#方法名
四、查看测试的结果:
测试生成的log在\android-cts\repository目录下以log+测试时间.txt命名。测试报告在android-cts\repository\results目录下,也是以测试时间命名。
五、注意事项:
(1)测试前需要安装一个apk:adb install -r android-cts/repository/testcases/.apk 然后在设置里面
6. android的cts测试到底有多细
1.下载完整的cts测试工具包,方式有两种:
a.在现有代码上编译,代码版本与目标机器版本一致;
b.在Google官网下载:http://source.android.com/compatibility/downloads.html,Compatibility
Test Suite (CTS)即可。
2.下载media测试内容,还是上边的官网,在网页最下边:
CTS Media Files
These media files are required for the CTS media stress tests.
CTS Media 1.0
3.连接手机与电脑(至少一台手机)
4.测试前准备
android-cts/repository/testcases中的.apk和CtsDeviceAdmin.apk
安装完成以上apk后,在手机端操作:
a.设置->辅助程序->Delegating Accessibility Service,打开;
b.设置->安全->设备管理器->CTS相关的两个选项都激活;
c.打开USB调试模式;
d.保持屏幕唤醒;
e.允许模仿位置;
f.切换至英文模式US。
5.进入cts控制台
执行android-cts/tools/cts-tradefed
dev@linux -dev:~/android/CTS/android-cts/tools$ ./cts-tradefed
09-0509:20:52 I/: Detectednew device c8090fe4
09-0509:20:52 I/: Detectednew device5348300e
Android CTS 4.2_r1
我现在连接着两台设备,都检测到了。
6.开始进行CTS测试
首先,在控制台中输入help看这个控制台都能干什么。
cts-tf > help
CTS-tradefed host version 4.2_r1
CTS-tradefed is the test harness for running the Android Compatibility
Suite, built on top of the tradefed framework.
Available commands and options
Host:
help: show this message
help all: show the complete tradefed help
exit: gracefully exit the cts console, waiting till all invocations are
complete
Run:
run cts --plan test_plan_name: run a test plan
run cts --package/-p: run a CTS test package
run cts --class/-c [--method/-m]: run a specific test class
and/ormethod
run cts --continue-session session_ID: run all not executed tests from a
previous CTS session
run cts [options] --serial/s device_ID: run CTS on specified device
run cts [options] --shards number_of_shards: shard a CTS run into given
number of independent chunks, to run on multiple devices inparallel
run cts --help/--help-all: get more help on running CTS
List:
l/list d/devices: list connected devices and their state
l/list packages: list CTS test packages
l/list p/plans: list CTS test plans
l/list i/invocations: list invocations aka CTS test runs currentlyin
progress
l/list c/commands: list commands: aka CTS test run commands currently in
the queue waiting to be allocated devices
l/list r/results: list CTS results currently present in the repository
Add:
add derivedplan --plan plane_name --session/-s session_id-r
[pass/fail/notExecuted/timeout]: derive a plan from the given session
Dump:
d/mp l/logs: mp the tradefed logsfor all running invocations
Options:
--disable-reboot: Do not reboot device after running some amount of
tests.
run cts --plan + 运行某个plan,查看当前支持的plan,运行l
p,实际上所有的plan存放在android-cts/repository/plans;
run cts --package/-p 运行某一个测试包;
run cts --class/-c [--method/-m] 运行某一个测试类或测试方法;
run cts --continue-session session_ID 继续运行之前没有完成的CTS测试,要知道它的session_ID;
run cts [options] --serial/s device_ID 在某个串号的设备上进行CTS测试,对应多个机器的时候,通过adb
devices能够查看当前连接的所有设备的串号;
run cts [options] --shards number_of_shards 在多个设备上同时运行CTS测试,如run cts --plan
CTS --shards 2,在两个设备上同时运行;
run cts --help/--help-all 展示更多帮助
查看列表:
查看行为是l/list,接不同的参数显示对应信息。
d/devices 当前连接的设备,效果同adb devices,不过信息更详细,还有设备电量信息;
packages 当前CTS plan的所有测试包;
p/plan 当前所支持的CTS plan有哪些;
i/invocations 当前CTS的运行状态;
c/commands 展示出用户输入过的命令;
r/results 展示以往的测试结果
Session Pass Fail Not Executed Start time Plan name Device serial(s)
0 17720 239 12 2013.08.24_18.23.23 CTS c8090fe4
1 17907 64 0 2013.09.04_17.51.15 CTS FUSC85YLYPAMRC69
需要特别关注的几点注意事项:
首先,手机的功能一定要完整,WIFI BT 3G CAMERA等;
手机要切换至英文语言;
连接到可用WIFI;
有SIM卡,并能够打电话发短信;
对于屏幕密度,目前CTS中最高支持320,但实际上Google已经添加了对480,也就是1080p的支持;
会检测Fingerprint,注意厂家名;
要保证能够访问到www.google.com;
实战演戏:
连接两台手机后,进入cts控制台:
run cts --plan CTS --shards 2
两台手机上会同时跑起CTS测试,大概5小时候测试完成,生成测试报告,保存在results下。