2014年11月4日 星期二

Android 4.4 CTS Test (二)


五、測試命令的執行
1.進入CTS測試環境
開啟終端輸入命令:  /home/android-cts/tools/cts-tradefed (注意權限問題)

如果權限不夠的話輸入:sudo  /home/android-cts/tools/cts-tradefed
輸入用戶密碼

當出現
cts_tf >  
就代表已經進入CTS測試環境 


2.CTS測試的方法:
完整測試(依硬體裝置的不同, 6~12小時):
run  cts  --plan  CTS

查看測試計劃:  list  p/plans
Ex:  l  p

查看測試包:   list  packages 
 

執行測試計劃: run cts --plan [test_plan_name] 
舉例:
run cts --plan Android

測試某個測試 package: run cts --package/-p [package_name]
例如android.bluetooth
run cts -p android.bluetooth

測試某個測試類: run cts --class/-c [class_name]
例如android.bluetooth.cts.BasicAdapterTest
run cts -c android.bluetooth.cts.BasicAdapterTest

測試某個測試類的某方法, run cts --class/-c [class_name] --method/-m [method_name]
例如android.bluetooth.cts.BasicAdapterTest測試類的test_checkBluetoothAddress方法:
run cts -c android.bluetooth.cts.BasicAdapterTest -m test_checkBluetoothAddress


list/l  results/r (查詢未完成的 session ID)
Session   Pass      Fail     Not Executed   Start time                        Planname
0              7             0          0                        2012.01.16_16.09.19   NA
1              13            0          0                        2012.01.16_16.13.01       NA
2              19            9      17120                    2012.01.18_13.43.56      CTS
(Start time找出您需要的session ID)

繼續之前未完成的測試:
run cts --continue-session session_id
: run cts --continue-session 3


測試某個plan中所有的 fail/notExecuted/timeout:
指令: add derivedplan --plan plan_name  -s sessionID -r [fail/notExecuted/timeout]
: 要測 session 2的所有fail/notExecuted/timeout
add derivedplan --plan test_session_2_all   (plan_name請自訂)
若只想測fail:
add derivedplan --plan test_session_2_fail -r fail


4.Android-CTS用戶指南
網址: https://source.android.com/compatibility/downloads.html

5. cts-media 媒體影音測試檔 (放在網頁最底部)
 網址: https://source.android.com/compatibility/downloads.html


六、測試結果分析
Android-CTS運行後會產生一測試報告,測試報告以測試開始的日期+時間命名,: 2011.12.21_12.09.44, 一般只要查看testresult.xml文件就可對測試結果進行分析。由於CTS測試所需要花的時間比較長,當對測試進行調試時可針對的進行測試可節約大量時間。

以下將介紹幾種常用的方法:
(1). 測試摘要報告 (/home/android-cts/repository/results/2014.11.03_08.56.16)

(2). log: /home/android-cts/repository/logs

(3). 測試與debug
a. 首先確定是哪個測試package出現失敗,然後針對該測試package進行重新測試
$ adb install  /android-cts/repository/testcases/package.apk
$ adb shell pm list instrumentation   pm
用於管理 package,看當前機器安裝了什麼
用例
$ adb shell am instrument
w android.tests.sigtest/.InstrumentationRunner               

b. 定位某個測試失敗項進行單獨運行
Start –plan [test plan name] –t [plan_package_name].[class_name]#[plan_package_test_name]

注意尋找class_name,可從測試報告中找到
舉例:
測試某個class:
cd /home/android-cts/tools
./cts-tradefed
入指令:run cts -c package_name  -m method

此例: run cts -c android.app.cts.SystemFeaturesTest -m testLocationFeatures



七、簡易處理
1. 處理 Not executed的方法:
Android 4.4 full test 需進12小時測試, 若中間出現 not executed, 不需要再重跑另一次12小時全部重測, 可以使用一下命令, 針對not executed項測試, 並更新報告內容
run cts --continue-session session_ID  (session_ID可用  list results)
若是跑完還有, 可再進行一次上述步驟, 直到所有NotExecuted項都run過。
獨家密籍: 開始執行後, CTS開始跑了, 輸入指令: l r,找出所有session ID,
此時可用 run cts --continue-session session_ID_+1 , 重覆此指令3, 保證第一次測試不會出現Not Executed項。

2. 處理因操作不當造成的失敗項處理法:
當測完時, Failed項比較多時, 可針對Failed項單測
指令: add derivedplan --plan plan_name -s sessionID -r [pass/fail/notExecuted]
: 測項SessionID = 2 的所有fail:
add derivedplan --plan user123 -s 2 -r fail
run cts --plan user123
此法不會更新報告, 而是重新單測這些失敗項, 並另產生報告

3. 需要連Google等網路測試項的處理法:
VPN的不穩定, 無法確保連續12小時的測試過程中, 可完全對外連線正常, 因此連網測試常常會無法Pass, 此部份可在全測結束後, 單獨測試這些網路相依的項目
打開testResult.xml, 找到測項失敗原因是www.xxx.com”的項, 用文字編輯器打開testResult.xml, 找到這些失敗項, 並將測試結果由 Fail改成notExecuted並存檔, 然後連好VPN, 再用第一解法(處理 Not executed的方法)處理.

4. 寫入測試結果時報Toomany open files的錯誤,這是因為網絡請求過多,也就導致了系統打開的文件過多。每一個連接都會當成「文件」看待的。
解決方案:用ulimit a 命令查看每個用戶允許打開的最大文件數,
看到是的1024,把它改大點,用命令:ulimit-n 4096

5. 為了避免一些沒必要的錯誤,在測試前先更改一下設備設置:
(a). Make sure theWi-Fi development option is checked(Settings->Wireless and network->Wi-Fi).
(b). Make sure the Wi-Fi is connected (Settings->Wireless and network->Wi-Fi settings).
(c). Make sure Bluetooth development option is checked(Settings->Wireless and network->Bluetooth).
(d). Make sure theWi-Fi sleep policyis set to Never(Settings->Wireless and network->Wi-Fi settings->Menu->Advanced->Wi-Fi sleep policy).
(d). Make sure the "Screen Timeout" is set to "Never "or The max time of time out(Setting->Display settings->Screen timeout).
(e). Check "Stay Awake", "Allow mock locations" and "User Debugging" from Settings->Application->Development
(f). Make sure "Use wireless networks " development option is checked (Settings->Location and security->Use wireless networks ). 
(g). Set the language to English(Settings->Locale and text-Select language).
(h). Copy the “svox” file to the device,make sure the “English(United States)”and “English (United Kingdom)”has been Installed.(Settings->Voice input and output settings->Text-to-speech settings->Pico TTs)
(i). Install CtsDelegatingAccessibilityService.apk, then the “Accessibility” and” Delegating Accessibility Service” development options are checked (Settings->Accessibility->Delegating Accessibility Service) (Android 2.3~4.0.3 only)
(j). Set the Date and Time.(Settings -> Date&time ->Set date / Set time),set the “Select time zone” to “Beijing”(Setting->Select time zone).
(k). Clear browser cache and history (Internet->Menu->Settings)
(l). SD card and have enough space and copy smaple audio and video media files
(m). Make sure no lock pattern is set on the device.
(n). Make sure the device is at the home screen at the start of CTS (Press the home button).
(o). Do not press any keys on the device while CTS is running.
(p). Click the voice Recorder application,to record and save.
(q). Make sure My location is Located on “Maps”
(r). Make sure “turn off USB”

八、 GTS測項
須向Google取得, CTS相似, GTS頂多測試一個半小時, 多為播放線上影音測試, 因此, VPN與網路的要求較高。

九、CTS Verifier測試
1. 首先測 Data backup test, 否則後來就無法測此項:
adb shell bmgr enable true
adb shell bmgr transport android/com.cndroid.internal.backup.LocalTransport
adb shell bmgr run
adb uninstall com.android.cts.verifier
adb install /home/android-cts-verifier/CTSVerifier_4.0.3_r1.apk

2. CTS Verifier測試工具在Google官網可下載
https://source.android.com/compatibility/downloads.html

3. CTS Verifier 需要VPN 線上播放影片
 
 十、自行compile CTS測試 packages 
想深入了解怎麼測試, 詳細測試步驟, 測試內容, 甚至想修改測試者。
不過....  自己改了也沒用, 因為測試是以Google官方提供的 bin 為主。
 1) 先上網抓包 Android Source (詳細方法請上Google查查) (假設download到/home/android4.4/
      https://source.android.com/source/building.html 

2) 先compile 一般Android code
cd /home/android4.4
source build/envsetup.sh
lunch (選好平台)
make

3) compile CTS packages
make cts

4) CTS 結果說明:
compiled CTS packages在 /home/android4.4/out/host/linux-x86/ (以下以[P]代表)
Package CTS(Google官網的那個android-cts.zip): [P]/out/host/linux-x86/cts/android-cts.zip
cts make file: /home/android4.4/build/core/tasks/cts.mk
run cts program:  [P]/bin/cts
test plans: [P]/cts/android-cts/repository/plans
test packages: [P]/cts/android-cts/repository/testcases
test results: [P]/cts/android-cts/repository/results
CTS program setting value: /home/android4.4/cts/tools/util/host_config.xml

REF:
http://wenku.baidu.com/view/88b3089a6137ee06eef9181d.html
http://wenku.baidu.com/view/443310ed5ef7ba0d4a733ba7.html

沒有留言:

張貼留言