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下。