版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄1、 Android CTS 測試簡介 22、 Android CTS 測試環(huán)境搭建 21. 下載android-SDK linux 版本,下載地址: 22. 下載android-cts 包 , 下載地址: 23. jdk 的安裝: 24. 將 android-sdk 和 android-cts 解壓放置在同一個文件夾 35. 在 CTS/tools 中修改腳本設(shè)置環(huán)境變量 36. 置 ubantu 系統(tǒng)環(huán)境變量 33、 Android-CTS 測試的幾個概念 3四、終端測試前準(zhǔn)備 51. 檢測手機(jī)是否連接上電腦 52. 手機(jī)端安裝CtsDelegatingAccessibilitySer
2、vice.apk 63. 終端設(shè)置: 6五、測試命令的執(zhí)行 61 .進(jìn)入CTSM試環(huán)境 62 .CTS測試的方法 73 .CTS詳細(xì)命令 94 .Android-CTS 用戶指南 10六、測試結(jié)果分析 10Android CTS測試簡介CTS全稱Compatibility Test Suite兼容性測試工具。當(dāng)電子產(chǎn)品開發(fā)出來,并定制了自己的Android 系統(tǒng)后,必須要通過最新的CTS檢測,以保證標(biāo)準(zhǔn)的 android application能運(yùn)行在該平臺下。通過了 CTS驗(yàn)證,需要將測試報告提交給 Google ,已取得 android market 的認(rèn)證。CTS是一款通過命令行操作的工
3、具。目前cts 沒有提供windows版本,只能在Linux 下測試。本文將詳細(xì)介紹在 ubantu系統(tǒng)上如何搭建 CTS環(huán)境,以及運(yùn) 行測試計(jì)劃和分析測試結(jié)果。二、Android CTS測試環(huán)境搭建1 .下載android-SDK linux 版本,下載地址:Linux <1386)andrcii 口-516-1 i huk .呼22048174 bytes3tja457f731d51da3741c29c8330a45a32 .下載android-cts 包,下載地址:根據(jù)手機(jī)系統(tǒng)版本下載對應(yīng)版本的cts包,否則將無法運(yùn)行測試3 . jdk的安裝:在ubuntu系統(tǒng)中打開終端,輸入命令
4、:$ sudo add-apt-repository "deb lucid partner"$ sudo apt-get update$ sudo apt-get install sun-java6-jdk $ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so4 .將android-sdk 和android-cts解壓放置在同一個文件夾workspace G主文件夾 workspCTS設(shè)備U KINGST.金_ 42 GB ±_ DATA±_W
5、okd金 計(jì)算機(jī)5 .在CTS/tools中修改腳本設(shè)置環(huán)境變量進(jìn)入android-cts/t001s目錄下,修改startcts 文件,將腳本中的SDK_ROOT改成自己的SDK各徑,如:SDK_ROOT=/home/jackmiao/workspace/CTS/android-cts/t001s6 .設(shè)置ubantu系統(tǒng)環(huán)境變量進(jìn)入ubantu系統(tǒng)用戶目錄下按Ctrl+H ,打開.bashrc在最后面加PATH=$PATH:$HOME/bin: / home/jackmiao/CTS/android-sdk-linux/t001s: /home/jackmiao/CTS /android
6、- sdk - linux/platform - tools: /home/ jackmiao/CTS /android - cts/tools:其中紅色部分為sdk和cts工具的路徑請根據(jù)自己的實(shí)際路徑創(chuàng)建三、Android-CTS測試的幾個概念在進(jìn)行CTS測試之前,先闡述 CTS測試中幾個概念:Test Plan (Plan):測試計(jì)劃,Test package 的集合,每個 Plan 中都包含若干個測 試包 以android - cts 2.2 版本為例,總共有8個測試計(jì)劃CTS包含2萬多個測試用例,這些測試用例是檢驗(yàn)兼容性必須的,性能測試不包含在本計(jì)劃中,隨版本的更新,本測試計(jì)劃也會更
7、新。Signature :包含所有針對公有 APIs的署名測試Android :包含針對 android APIs 的所有測試Java :包含所有針對 Java核心library 的測試VM包含對虛擬機(jī)的所有測試RefApp:包含針對參與應(yīng)用程序的所有測試,隨版本的更新,本測試計(jì)劃也會更新 Performance :包含所有針對性能的測試,隨版本的更新,本測試計(jì)劃也會更新 AppSerurity :針對 Application 安全性的測試Test Package (Package):測試包,Test case 的集合Test case :測試用例,Test的集合Test :測試,每一個測試對
8、應(yīng)一個或者多個Instrumentation TestInstrumentation Test : Android 測試環(huán)境的核心是一個Instrumentation 框架,在這個框架下,你的測試應(yīng)用程序可以精確控制應(yīng)用程序。使用Instrumentation ,你可以在主程序啟動之前,創(chuàng)建模擬的系統(tǒng)對象,如Context ;控制應(yīng)用程序的多個生命周 期;發(fā)送UI事件給應(yīng)用程序;在執(zhí)行期間檢查程序狀態(tài)。Instrumentation框架通過將主程序和測試程序運(yùn)行在同一個進(jìn)程來實(shí)現(xiàn)這些功能。Result_Type : CTS的測試結(jié)果可以通過命令查閱,也可以通過瀏覽器查看下結(jié)果文件命令查閱結(jié)果:
9、cu_hQ£t > i -rList of all resulu:莪算ionTestSUrt tineEnd tieTeit pUnPass Fall Ttwout Executed111121 35!11167mZ0HJ2J1 廿洌2MLI2J1 12:09:18 EJ2912«144 的2011.122 14:43:0A241142,22 14:01;N Java5J郭中g(shù)27M劃 及 史相 2MM2.22 11:茹 73W其中 Test result有四種類型的值:Pass,Fail , Timeout , NoExecuted瀏覽器查看 testResult.
10、xml. 路徑: /android - cts/repository/results/Test Summary by PackageTest PackagePss«dFailedTimed OutTotal Tests6 g 皿伯儂 t0101Aoi Dem 口號1001Ctc ces sit)ility5grvicTastCasgs37010CtcAccourrtM 自rt息 q白rT£tCas三242026CtsAsTestSsEs256101267CtsBlu-toothTsslCa5ee8008C -nt 日匕507170S19Ct 耳 Uatah 非147850Z
11、32CisDuiT-iCasas809CtsDpiTe5tCms=20000Q5 Ex-口叵lies【Cas as2002Cts Ges tu.TestCas es290029Cts-raphi-sTesl 匕 as eb4070&47C【sHactwaETpsCvs101011CisJniTgtCas”610061Cts Lac ati 0口丁eslCas es83308 G90100100Cts NetJ印 Cas es7520776 0 sTg.Gasg26130254CtsPEnnisDon2TestCases82010亞 Egrm j m sjpnTgs 叵ases11230
12、WCt5PrwiMlT>StG3557Q26Q95Cts SoeechTestCases0202536059仁彩T-IT-G祕es509gQ397匕tslhilT一一季72g0SOn 1 f ini iT-m-i tf-' ftcnncocnc上圖為performance plan所包含的Test package 的測試結(jié)果,可以看到每個測試包的測試情況,詳細(xì)的測試結(jié)果分析我們將在CTS測試結(jié)果分析中介紹,這里主要讓大家明確result_type 的含義。四、終端測試前準(zhǔn)備1.檢測手機(jī)是否連接上電腦打開終端輸入命令:adb devices ,連接上這會顯示設(shè)備ID,如果未連接上則
13、 會以?代替,此時可以通過輸入以下命令進(jìn)行連接$ adb kill-server$ sudo adb start-server$ adb devicesO1® ® Jackmlao($ubuntu:-jackntao0ubuntu:-5 啟db devicesladb server is aut of date, killing.* daemon started successfully 上List of devices attached|S5830fll88529 device2 .手機(jī)端安裝 CtsDelegatingAccessibilityService.apk此包
14、位于android-cts/repository/testcases 下面??梢詫惭b包拷貝到手機(jī)后安裝也可通過打開終端輸入命令。輸入命令方法:先定位到plantform-tools 文件夾,cd cts/android-sdk-linux/platform-tools然后再輸入安裝命令:./adb install / 安裝包的路徑 /CtsDelegatingAccessibilityService.apk 安裝好后設(shè)置進(jìn)入手機(jī)設(shè)在菜單:Setting>Accessibility>Accessibility>DelegatingAccessibilityService3 .
15、終端設(shè)置:1)語言設(shè)置為English2) 去掉鎖屏(Settings > Security & location &security>Set up screen lock>none )3) 設(shè)置屏幕超時為最長時間30 分鐘(Settings>Display>Screen timeout>30minutes)4)設(shè)置喚酉!狀態(tài)(Settings>Applications>Development>Stay awake)5) 設(shè)置虛地點(diǎn) (Settings > Application > Development &g
16、t; Allow mock locationsis set)6)運(yùn)行時讓屏幕是 home主界面上7)運(yùn)行過程中不要觸摸屏幕及按鈕8)手機(jī)時間設(shè)置正確9)有SD卡并是清空五、測試命令的執(zhí)行1. 進(jìn)入CTS測試環(huán)境開啟終端輸入命令:startcts /注意權(quán)限問題如果權(quán)限不夠的話輸入:sudo ./startcts輸入用戶密碼當(dāng)出現(xiàn)Android CTS version 2.2_r1Device(s5830f1188529) connected cts_host > cts_host >就代表已經(jīng)進(jìn)入CTS測試環(huán)境2. CTS測試的方法查看測試計(jì)劃Ls -plancts_host &g
17、t; Is -planList of plans (g in total): RefAppAndrctd gum AppSecurIH CT£PerforracceVMSignature查看測試包Ls -pcts_host > Is '-packageAvailable packages (56 tn total): android*core-tests.regex dndr otdxCore.vn-testsandroid.accesslbiIttyserice andir old permisskonZandrotd .care. teet5 . Lunt. Lan
18、g android i co re . tests . ,lath dndr oLdxC&re. test . annotatlork android.wppdndoi_d .cp匕.teats . nto android.accountsandroid.core.te5ts.text andr oldLwebkt tandirotd .coe. test5 . luni. net運(yùn)行測試計(jì)劃start - - plan test_plan_name舉例:運(yùn)行VM»式計(jì)劃輸入命令:-plan VMDevtcc(12356750ABCDEF) tonncctedcts_host
19、 > cU_hgt> F3.”iiLfi VTException in thread "Thread-5" com.aridroitl.cl(JaLib.4hgllt:0i»nqntlune£porb5inoE*£2pt: ionat Lon.andr oidxddnllb.AdbHelper .enecuteRenoteConndnd(A<lbHeLper -at com,android*ddnLib . Device *execiite£h&llCommarbcl(Device . jav: 26)at
20、con.android,cts.TestDeviceSl-run(TestDevice,;107©)CT5 ERROR »> lineout : getOevicelnfostart test plan VMTest package; android.core,h-testsdot.juntt.opcodes.adddoubleladdr.JUnitTestadddoubleladdrwtesteL.(pass) dot>juntt.opcodes.add double iaddr.JUnit Test add double 2addr#test024.+(pa
21、ss)運(yùn)行測試計(jì)劃下的測試包start - - plan test_plan_name - p/ package plan_package_name舉例:運(yùn)行 Java計(jì)劃下的android.core.tests.archive 測試包c(diǎn)ts_host > start -plan Jdva -p android.core.tests.archiveexception in thread M ihread-5M com.android,dd*iLib. SheLLCon*iandunresponslveExcept tonat con. and r old. ddnltbAdbHplper
22、 .eKt?culeRpmteConndrid(AtibHelpe( . 4Bfi) at cm. android. ddnlibrDevice rexecuteShellConnandtDevice. 364)t com. android. cts .TestDevt<e$l. rm (Test Device«java: 1670)運(yùn)行測試計(jì)劃下測試包中的某個測試項(xiàng)Start - plan test plan name - tplan_package_name.class_name#plan_package_test_name舉例:運(yùn)行 Java 計(jì)劃下 android.co
23、re.tests.archive包下的 test_tostring 測試項(xiàng)cts_host > start - pLan Java t afrfrotd-core.testStarcliiveJava.uttLJarlttrWutesNawsTestttestJoStrtnj Exception in threac "Thred' cc'r. android, ddn lit), She I IConmandUnresponsiveEKceptiorat ufundeid.也mlihAdbHelpM總瞑怏病加怩師劉d(MbHMpMJ髀3:4&B)玳 .d
24、dnlb.Device.eheoj忸hellSmd(Oeyite.java:364)at cm.android.ctsJKtDeviceiLrun(TestDevice.java: 1678)指定某個設(shè)備上運(yùn)行摸個測試計(jì)劃中的測試包start -plan test_plan_name - d/-device device_ID舉例:指定設(shè)備ID號為1234567890ABCDEF!彳T VM測試計(jì)劃1 s *d/ - -dtrvi.ee : Ils t LldtiXe devices cts host » 1s -d Tdvtee? Z&EEStLd t usO1234567
25、89GABCOCrIdleS5S3er 1188529 x-dlects_host > 玉/七* -J 豆 734 5 0 了知、&A£t>EFThere are 1 cx'Lst±ng scsston( s) for pl«n VM. create a new session or cho©s.e an existing one? Creflte a new session O Choose o session (1查看測試結(jié)果Ls - r舉例:cti_hcit , li -rLilt cf all results:Sess
26、ionTest resultStart UmEnd tiwTest plan nanep翦Fail Timeout Not Executed111122濕i1U?33411.12.21 U:t9:442911.12.Zl 12:09:18CT51HI20144消Mil.12.27 14J3;N2Q11.12J25圾ra e2796ZM1,IL22 UrSlSI201L12.22 11:36:43W查看某個session的測試記錄ls -/-result -s/-session session_id 舉例:ls - r - s 3dot. Juntt. o pcodes, a nd_t n t_
27、lt ts - Jun I tjr>£t_a n t_l 1 ts«te£ t n 4 (曄f) do t 11. o ptodes, < nd_t n t_l t tfl. Jun lilies t_and_tnt_l It wtestVFEi. (p«ss) d*t. iunkc*flp«rfe$. an<tnt_XUfl. JUnUTcst_inOncUBfftwtVFta. .(pjss)dot. junlt. optcdei. an-d_int_Hte . JUnltTest and_tnt_T.l LwtestVF
28、EJ. (dot. jufilt. opcodes, aJUftttFES -. (pass) dot. Juntt,opcodes. an<l_tnt, Juntt_Test_jnd_Lntfftestei,.dot. junit,opcodes. an<l_lnt, Juntt_Testnd_tnt»test&2,. ,<pas£)dotJuntr.opccdes. an_tntTJun1.t_Test_jnd_tint»testf*i - pas)dot. junit, optcdes. and Knt r Juntt Test_n
29、d_xntotestl4i,pW85 )dot . junlt»p<ode$. and_int n JVnit_Test ndwtStestMJ». »(pass)d,t /unit, opwodes. an<j_tnt+ JUntt_Test_jndtnt»te5tH4. . ,(pass)4at. juntt.opcodM, and_lrit. Junlt_T>st_end_tnt*tMtvFEZi. .(pass)3. CTS詳細(xì)命令Host:help: 查看幫助信息exit:退出Plan:Is -plan:列出所有的測試包Is
30、-plan plan_name:查看測試方案add -plan plan_name:新建一個測試方案add -derivedplan plan_name -s/-session session_id -/-result result_type:derive a plan from the given sessionrm -plan plan_name/all: remove a plan or all plans from repositorystart -plan test_plan_name:運(yùn)行一個測試方案start -plan test_plan_name -d/-device dev
31、ice_ID: run a test plan using the specified devicestart -plan test_plan_name -t/-test test_name: run a specific teststart -plan test_plan_name -p/-package java_package_name:運(yùn)行個特定的java測試包start -plan test_plan_name -t/-test test_name -d/-device device_ID:用指定的device運(yùn)行一個特定的測試方案start -plan test_plan_name
32、 -p/-package java_package_name -d/-device device_ID: run a specific java package using the specified devicePackage:Is -p/-package: list available packagesls -p/-package package_name: list contents of the package with specified na meadd -p/-package root: add packages from root to repositoryrm -p/-pac
33、kage package_name/all: remove a package or all packages from repo sitoryResult:ls -r/-result: list all result of sessionsls -r/-result -s/-session session_id: list detail case result of a specifi ed sessionls -r/-result pass/fail/notExecuted/timeout -s/-session session_id: listdetail cases of a spec
34、ified session by the specified result.History:history/h: list all commands in command historyhistory/h count: list the latest count records in command historyhistory/h -e num: run the command designated by 'num' in command historyDevice:ls -d/-device: list available devices4. Android-CTS 用戶指
35、南網(wǎng)址:Compatlbillly Test Sutte ManualThe CTS。眥 m«nu3l is appi cable to any CTS verson but tTS 2,1 R2 and beyond require jddijonjl depute nin :h& acoeasibiit/ tests.二匚rnuatiH。TenEu.;e.(vT£)L-st:hljrl1六、測試結(jié)果分析Android-CTS 運(yùn)行后會產(chǎn)生一測試報告,測試報告以開始的日期+時間命名,如2011.12.21_12.09.44,一般只要查看testresult.xml
36、文件就可對測試結(jié)果進(jìn)行分析。由于CTS測試所需要花的時間比較長 ,當(dāng)對測試進(jìn)行調(diào)試時可針對的進(jìn)行測試可節(jié)約大量時間。 以下將介紹幾種常用的方法:查看整體測試概覽Test Summary by PackageTest PackagePassedFailedTimed OurTotal Tests0101Am Dem os Ft巳伯re dc elesi10013r7010Ct 5 AMwMM&na 產(chǎn)Tes k as es24202&CtsAcmTCagB£256101267匚i s - luDothiTas 匚asg正800BCis ContentTe sic as
37、部50712Q519147B50232CtsPpiT匚膽3與8109ctsomT-tcmggEi000flCtsExamulsTesiCases2002Gts Qg苜(yrTestC as gs2900N9Ct-eraphi-£Ts tC3M 白 s94070B47Cl sHanJwareTEs【Casn工101QUCtJniTe-Casu610061-1砥 L0c ayonTestCas 心 88330861Ct 工MediaT-異 tCases90100100CtsMeiTesiCases752077Cts 8 Test 匚 as es28130?ftdiS5iOn2TT5TCa
38、5 巳 582Q智天C-P - rmi石 sionTesLCas曰 5112a0CtsPrwidErTpstC 延25702609&CtsSoeechTesiCasgs0202C【.T.杷0.qiivT的G亞的53605ptsTMT弊:Cases58980597Cts Util T- stCas es72808t)ocnGc cu查看具體測試包測試?yán)龍?zhí)行情況Compatibility Test Package: CtsAp()TeslCasesTeslResultan droid.app.cts.ActivitvManager_Runnin(jServicelnfoTest-testC
39、onstructorpass-ie&tDescribeContenlspass-testWriteToParcelpass-test Re ad Fro impair elpass“ testAndroidTestCaseSetupProperlypassandroid.app.cis.NotiflcatlonTest-Ie st Constructorpass-testDescribeCortentspass-testWriteToParcelpass-test Set Late st Eve nt Infopass-testToStringpass-“ le&tAridro
40、idTestCaseSetupProp&rlypass測試fail項(xiàng)查看失敗細(xì)節(jié)-ojnitLicTcadT«FiilurtChNaatnEnu3di_ni?lhiDd_5JsIlbv jxa n 中"東HiEdLiumfijM d 9irdViE->:|ch±-|e iri, nt innhchnd thmq曰;SppartEjR hrgStrngj 川必川 jkg 康E要1南pn 皿 prarHirrtftdCfl'f-il 河尸"*.!出口產(chǎn)爐F 麻:T" f:"dR£TE H) < ifildi: trrifi miPh 卜.*中面產(chǎn)百卜:1 *Gil INCCWPLETEi:嘮 ifoklr :jflKwfa 04iix/:QJJUSALMjkt拉,3?印仁:。忙1:上弗戶/川屈13!項(xiàng)依日足十就如。衣山作聲巴1對.1£邙內(nèi)司 dihLhjilKflie OtpuriaKF UJU蹙Dl 網(wǎng) d*k &K
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地流轉(zhuǎn)承包項(xiàng)目合作開發(fā)投資合同范本3篇
- 2025年代理費(fèi)用協(xié)議范本
- 2025年銷售人員任職協(xié)議書:互聯(lián)網(wǎng)銷售團(tuán)隊(duì)建設(shè)協(xié)議2篇
- 2025年度風(fēng)力發(fā)電場建設(shè)與運(yùn)營合同范本4篇
- 二零二五年藝術(shù)品鑒定兼職人員保密責(zé)任書3篇
- 基于2025年度房產(chǎn)政策的商品房銷售合同
- 2025年度跨境電子商務(wù)稅收風(fēng)險擔(dān)保協(xié)議4篇
- 二零二五年度直播主播與影視作品合作合同
- 2025年度供應(yīng)鏈金融貨物沖抵貨款風(fēng)險控制協(xié)議
- 二零二五年度門面房房屋租賃押金合同
- 寒潮雨雪應(yīng)急預(yù)案范文(2篇)
- 垃圾車駕駛員聘用合同
- 2024年大宗貿(mào)易合作共贏協(xié)議書模板
- 變壓器搬遷施工方案
- 單位轉(zhuǎn)賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 2024年1月高考適應(yīng)性測試“九省聯(lián)考”數(shù)學(xué) 試題(學(xué)生版+解析版)
- EPC項(xiàng)目采購階段質(zhì)量保證措施
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 四川2024年專業(yè)技術(shù)人員公需科目“數(shù)字經(jīng)濟(jì)與驅(qū)動發(fā)展”參考答案(通用版)
- 煤炭裝卸服務(wù)合同
評論
0/150
提交評論