Android CTS测试
? Android CTS測(cè)試
一、Android CTS測(cè)試簡(jiǎn)介
CTS全稱(chēng)Compatibility Test Suite兼容性測(cè)試工具,為了保證開(kāi)發(fā)的應(yīng)用在所有兼容Android的設(shè)備上正常運(yùn)行,并保證一致的用戶體驗(yàn),Google制定了CTS來(lái)確保設(shè)備運(yùn)行的Android系統(tǒng)全面兼容Android規(guī)范,Google也提供了一份兼容性標(biāo)準(zhǔn)文檔(Compatibility Definition Document,CDD)。當(dāng)電子產(chǎn)品開(kāi)發(fā)現(xiàn)來(lái),并定制了自己的Android系統(tǒng)后,必須要通過(guò)最新的CTS檢測(cè),以保證標(biāo)準(zhǔn)的android application能運(yùn)行在該平臺(tái)上。通過(guò)了CTS驗(yàn)證,需要將測(cè)試報(bào)告提交給Google,以取得android market的認(rèn)證。CTS是一款 通過(guò)命令行操作的工具。目前CTS沒(méi)有提供windows版本,只能在Linux下測(cè)試。
二、Android CTS測(cè)試環(huán)境搭建
1.下載配置android-SDK linux版本,地址:
http://developer.android.com/sdk/index.html
2.jdk安裝配置
http://source.android.com/source/initializing.html
3.下載android-cts包,下載地址:
http://source.android.com/compatibility/downloads.html
需要根據(jù)手機(jī)系統(tǒng)版本和類(lèi)型下載對(duì)應(yīng)版本的cts包,否則將無(wú)法運(yùn)行測(cè)試
大部分是基于Junit和儀表盤(pán)技術(shù)編寫(xiě)的。還擴(kuò)展了自動(dòng)化測(cè)試過(guò)程,可以自動(dòng)執(zhí)行用例,自動(dòng)收集和匯總測(cè)試結(jié)果。CTS采用XML配置文件的方式將這些測(cè)試用例分組成多個(gè)測(cè)試計(jì)劃(plan),第三方也可以創(chuàng)建自己的plan。
4.將android-sdk和android-cts解壓放置在同一個(gè)文件夾下
5.添加環(huán)境變量/etc/profile文件中
三、Android-CTS測(cè)試的幾個(gè)概念
在進(jìn)行CTS測(cè)試之前,我們先理解其中幾個(gè)概念:
Test Plan(Plan):測(cè)試計(jì)劃,Test package的集合,每個(gè)Plan中都包含若干個(gè)測(cè)試包,以android-cts 2.2版本為例,總共有8個(gè)測(cè)試計(jì)劃:
??????? CTS:包含2萬(wàn)多個(gè)測(cè)試用例,這些測(cè)試用例是檢驗(yàn)兼容性必須的,性能測(cè)試不包含在本計(jì)劃中,隨版本的更新,本測(cè)試計(jì)劃也
???????????????????? 會(huì)更新。
??????? Signature:包含所有針對(duì)公有APIs的所有測(cè)試
??????? Android:包含針對(duì)android APIs的所有測(cè)試
??????? Java:包含所有針對(duì)Java核心library的測(cè)試
??????? VM:包含對(duì)虛擬機(jī)的所有測(cè)試
??????? RefApp:包含針對(duì)參與應(yīng)用程序的所有測(cè)試,隨版本的更新,本測(cè)試計(jì)劃也會(huì)更新
??????? Performance:包含所有針對(duì)性能的測(cè)試,隨版本的更新,本測(cè)試計(jì)劃也會(huì)更新
??????? AppSerurity:針對(duì)Application安全性的測(cè)試
Test Package(Package):測(cè)試包,Test Case的集合
Test Case:測(cè)試用例,Test的集合
Test:測(cè)試,每一個(gè)測(cè)試對(duì)應(yīng)一個(gè)或者多信Instrumentation Test
Instrumentation Test:Android測(cè)試環(huán)境的核心是一個(gè)Instrumentation框架,在這個(gè)框架下,你的測(cè)試應(yīng)用程序可以精確控制應(yīng)用程序。使用Instrumentation,你可以在主程序啟動(dòng)之前,創(chuàng)建模擬的系統(tǒng)對(duì)象,如Context;控制應(yīng)用程序的多個(gè)生命周期;發(fā)送UI事件給應(yīng)用程序;在執(zhí)行期間檢查程序狀態(tài)。Instrumentation框架通過(guò)將主程序和測(cè)試程序運(yùn)行在同一個(gè)進(jìn)程來(lái)實(shí)現(xiàn)這些功能。
Result_Type:CTS的測(cè)試可以通過(guò)命令查閱,也可以通過(guò)瀏覽器查看結(jié)果文件
命令查閱結(jié)果:其中Test Result有四種類(lèi)型的值:Pass,Fail,Timeout,NoExecuted
瀏覽器查看testResult.xml,路徑:.../android-cts/repository/results/
CTS測(cè)試執(zhí)行之前要做的準(zhǔn)備工作如下:
PC端操作:
1.檢測(cè)設(shè)備是否連接上電腦
打開(kāi)終端輸入命令:adb devices,連接上會(huì)顯示設(shè)備ID,如果端口被占用
$adb kill-server
$sudo adb start-server
$adb devices
2.設(shè)備端安裝CtsDelegatingAccessibilityService.apk
此包位于android-cts/repository/testcases下面。可以將安裝包拷貝到手機(jī)后安裝也可以通過(guò)打開(kāi)終端輸入命令,安裝完成后設(shè)置進(jìn)入手機(jī)設(shè)置菜單
Setting->Accessitility->Accessibility->DelegatingAccessibilityService
終端操作:
1.下載兼容性測(cè)試用例包,并解壓,解壓后的文件名命名為"android-cts"。
2.重置手機(jī)(恢復(fù)出廠設(shè)置)。
3.去年谷歌賬戶。
4.設(shè)置手機(jī)語(yǔ)言為英語(yǔ):Setting->Language&input->language->English(United States)。
5.插入SIM卡和外置SD卡(SD卡需要格式化:Setting->Storage->Erase SD card->Erase SD card->Erase Everything)。
6.插入U(xiǎn)SB,連接手機(jī)到電腦,可以用adb devices檢查,是否正確連接。
7.打開(kāi)wifi,并連接到可用wifi。
8.打開(kāi)藍(lán)牙,無(wú)須配對(duì)。
9.保證手機(jī)無(wú)操作30分鐘后LCDoff:Settings->Display->Sleep->30 minutes。
10.去掉屏幕鎖:Settings->Security->ScreenLock的值是"None"。
11.打開(kāi)Settings->Locationservices->"Google location services","GPS satellites","Location&Google search"。
12.打開(kāi)Settings->Accessibility->Developeroptions->USB debugging(USB調(diào)試)。
13.打開(kāi)Settings->Accessibility->Developeroptions->Stay Awake(保持喚醒)。
14.打開(kāi)Settings->Accessibility->Developeroptions->Allow mock location(允許模擬位置)。
15.通過(guò)Settings->Speechsynthesis->Install voice data安裝“Text To Speech”文件(com.svox.langpack.installer-1.apk),假如android-cts/repository/testcases/中沒(méi)有此文件,就省去這一步。
16.如果需要執(zhí)行可訪問(wèn)性方面的兼容性測(cè)試,則安裝“CtsDelegatingAccessibilityService.apk”(adbinstall -r */android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk),并將Settings->Accessitility->DelegatingAccessibility Service選項(xiàng)打開(kāi)。
17.如果需要執(zhí)行設(shè)備管理方面的兼容性測(cè)試,則安裝“CtsDeviceAdmin.apk”(adb install -r */android-cts/repository/testcases/CtsDeviceAdmin.apk),并將Setting->Security->DevicesAdminstrators->android.devicesadmin.cts.CtsDevicesAdmin等選項(xiàng)打開(kāi)。
TestCase里面包含很多的測(cè)試用例,可以全部測(cè)試,也可以只測(cè)試部分。
四、測(cè)試命令的執(zhí)行
1.進(jìn)入CTS測(cè)試環(huán)境
開(kāi)啟終端輸入命令:startcts????????? //注意權(quán)限問(wèn)題
如果權(quán)限不夠的話輸入:sudo ./startcts
輸入用戶密碼
當(dāng)出現(xiàn)
Android CTS version 2.2_r1
Device(s5830f1133529) connected
cts_host > cts_host >
就代表已經(jīng)進(jìn)入CTS測(cè)試環(huán)境
2.CTS測(cè)試方法
? 查看測(cè)試計(jì)劃
? Ls --plan
? 查看測(cè)試包
? Ls -p
? 運(yùn)行測(cè)試計(jì)劃
? start --plan [test_plan_name]
? 舉例:運(yùn)行VM測(cè)試計(jì)劃
? 輸入命令:--plan VM
? 運(yùn)行測(cè)試計(jì)劃下的測(cè)試包
? start --plan [test_plan_name]? -p/--package [plan_package_name]
? 舉例:運(yùn)行Java計(jì)劃下的android.core.tests.archive測(cè)試包
? 運(yùn)行測(cè)試計(jì)劃下測(cè)試包中的某個(gè)測(cè)試項(xiàng)
? Start --paln [test plan name] -t
? [plan_package_name].[class_name]#[plan_package_test_name]
? 舉例:運(yùn)行Java計(jì)劃下android.core.tests.archive包下的test_tostring測(cè)試項(xiàng)
指定某個(gè)設(shè)備上運(yùn)行摸個(gè)測(cè)試計(jì)劃中的測(cè)試包
start?--plan?[test_plan_name ]‐d/--device?[device_ID]?
舉例:指定設(shè)備ID號(hào)為1234567890ABCDEF運(yùn)行VM測(cè)試計(jì)劃
?
?
?
?
??查看測(cè)試結(jié)果
?Ls –r
舉例:
?
?
?
?
?
??查看某個(gè)session的測(cè)試記錄
ls -r/--result -s/--session session_id
舉例: ls –r –s?3
?
3.CTS詳細(xì)命令
??Host:
?help: 查看幫助信息
???exit: 退出
? Plan:
??? ls--plan: 列出所有的測(cè)試包
??? ls--plan plan_name: 查看測(cè)試方案
??? add--plan plan_name: 新建一個(gè)測(cè)試方案
??? add--derivedplan plan_name -s/--session session_id -r/--resultresult_type:
?derive a plan from the givensession
??? rm--plan plan_name/all: remove a plan or all plans fromrepository
???start --plan test_plan_name: 運(yùn)行一個(gè)測(cè)試方案
???start --plan test_plan_name -d/--device device_ID: run a test planusing the
?specified device
???start --plan test_plan_name -t/--test test_name: run a specifictest
???start --plan test_plan_name -p/--package java_package_name:運(yùn)行一個(gè)特定的java測(cè)試包
???start --plan test_plan_name -t/--test test_name -d/--devicedevice_ID: 用指定的device運(yùn)行一個(gè)特定的測(cè)試方案
???start --plan test_plan_name -p/--package java_package_name-d/--device devic
e_ID: run a specific java package using thespecified device
? Package:
??? ls-p/--package: list available packages
??? ls-p/--package package_name: list contents of the package withspecified na
me
??? add-p/--package root: add packages from root to repository
??? rm-p/--package package_name/all: remove a package or all packagesfrom repo
sitory
? Result:
??? ls-r/--result: list all result of sessions
??? ls-r/--result -s/--session session_id: list detail case result of aspecifi
ed session
??? ls-r/--result [pass/fail/notExecuted/timeout] -s/--sessionsession_id: list
?detail cases of a specifiedsession by the specified result.
? History:
???history/h: list all commands in command history
???history/h count: list the latest count records in commandhistory
???history/h -e num: run the command designated by 'num' in commandhistory
? Device:
ls -d/--device: list available devices
?
4.?Android-CTS用戶指南
網(wǎng)址:http://source.android.com/compatibility/downloads.html
總結(jié)
以上是生活随笔為你收集整理的Android CTS测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: bash脚本截取字符串的两种方法
- 下一篇: OBJ文件导出