Android-CTS測試規(guī)范(linux系統(tǒng))_第1頁
Android-CTS測試規(guī)范(linux系統(tǒng))_第2頁
Android-CTS測試規(guī)范(linux系統(tǒng))_第3頁
Android-CTS測試規(guī)范(linux系統(tǒng))_第4頁
Android-CTS測試規(guī)范(linux系統(tǒng))_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

目錄TOC\o"1-5"\h\z一、AndroidCTS測試簡介2二、AndroidCTS測試環(huán)境搭建2下載android-SDKlinux版本,下載地址:2下載android-cts包,下載地址:2jdk的安裝:2將android-sdk和android-cts解壓放置在同一個文件夾3在CTS/tools中修改腳本設(shè)置環(huán)境變量3置ubantu系統(tǒng)環(huán)境變量3三、Android-CTS測試的幾個概念3四、終端測試前準(zhǔn)備5檢測手機是否連接上電腦5手機端安裝CtsDelegatingAccessibilityService.apk6終端設(shè)置:6五、測試命令的執(zhí)行6進入CTS測試環(huán)境6CTS測試的方法7CTS詳細(xì)命令9Android-CTS用戶指南10六、測試結(jié)果分析10AndroidCTS測試簡介CTS全稱CompatibilityTestSuite兼容性測試工具。當(dāng)電子產(chǎn)品開發(fā)出來,并定制了自己的Android系統(tǒng)后,必須要通過最新的CTS檢測,以保證標(biāo)準(zhǔn)的androidapplication能運行在該平臺下。通過了CTS驗證,需要將測試報告提交給Google,已取得androidmarket的認(rèn)證。CTS是一款通過命令行操作的工具。目前cts沒有提供windows版本,只能在Linux下測試。本文將詳細(xì)介紹在ubantu系統(tǒng)上如何搭建CTS環(huán)境,以及運行測試計劃和分析測試結(jié)果。二、AndroidCTS測試環(huán)境搭建下載android-SDKlinux版本,下載地址:/sdk/index?htmlLinux(i386)亦d「oid?sdk」16?linux-1gz22048174bytes3ba457f731d51da3741c29c8830a4583下載android-cts包,下載地址:/compatibility/downloads.html根據(jù)手機系統(tǒng)版本下載對應(yīng)版本的cts包,否則將無法運行測試jdk的安裝:http:///source/initializing.html在ubuntu系統(tǒng)中打開終端,輸入命令:$sudoadd-apt-repository"deb/lucidpartner"$sudoapt-getupdate$sudoapt-getinstallsun-java6-jdk$sudoln-s/usr/lib/i386-linux-gnu/libX11.so.6/usr/lib/i386-linux-gnu/libX11.so將android-sdk和android-cts解壓放置在同一個文件夾設(shè)備workspace證主文件夾設(shè)備workspace證主文件夾workspa0KINGST.42GB...DA1AWorkdCTS42GB...DA1AWorkdCTS廿算機幽主文件夾在CTS/tools中修改腳本設(shè)置環(huán)境變量進入android-cts/tools目錄下,修改startcts文件,將腳本中的SDK_ROOT改成自己的SDK路徑,如:SDK_ROOT=/home/jackmiao/workspace/CTS/android-cts/tools設(shè)置ubantu系統(tǒng)環(huán)境變量進入ubantu系統(tǒng)用戶目錄下按Ctrl+H,打開.bashrc在最后面加PATH=$PATH:$HOME/bin:/home/jackmiao/CTS/android-sdk-linux/tools:/home/jackmiao/CTS/android-sdk-linux/platform-tools:/home/jackmiao/CTS/android-cts/tools:其中紅色部分為sdk和cts工具的路徑請根據(jù)自己的實際路徑創(chuàng)建三、Android-CTS測試的幾個概念在進行CTS測試之前,先闡述CTS測試中幾個概念:TestPlan(Plan):測試計劃,Testpackage的集合,每個Plan中都包含若干個測試包以android-cts2.2版本為例,總共有8個測試計劃CTS:包含2萬多個測試用例,這些測試用例是檢驗兼容性必須的,性能測試不包含在本計劃中,隨版本的更新,本測試計劃也會更新。Signature:包含所有針對公有APIs的署名測試Android:包含針對androidAPIs的所有測試Java:包含所有針對Java核心library的測試VM:包含對虛擬機的所有測試RefApp:包含針對參與應(yīng)用程序的所有測試,隨版本的更新,本測試計劃也會更新Performance:包含所有針對性能的測試,隨版本的更新,本測試計劃也會更新AppSerurity:針對Application安全性的測試TestPackage(Package):測試包,Testcase的集合Testcase:測試用例,Test的集合Test:測試,每一個測試對應(yīng)一個或者多個InstrumentationTestInstrumentationTest:Android測試環(huán)境的核心是一個Instrumentation框架,在這個框架下,你的測試應(yīng)用程序可以精確控制應(yīng)用程序。使用Instrumentation,你可以在主程序啟動之前,創(chuàng)建模擬的系統(tǒng)對象,如Context;控制應(yīng)用程序的多個生命周期;發(fā)送UI事件給應(yīng)用程序;在執(zhí)行期間檢查程序狀態(tài)。Instrumentation框架通過將主程序和測試程序運行在同一個進程來實現(xiàn)這些功能。Result_Type:CTS的測試結(jié)果可以通過命令查閱,也可以通過瀏覽器查看下結(jié)果文件命令查閱結(jié)果:ctsjost>Is-rListofallresults:SessionTestP355resultFailTllKDUtExecutedStarttineEndtineTe吐plannane111122頂1116732011.12h1112;旳;44291142J112:O5:1BCTSi29L2a144692611.12.12201L12.2214J81:M獅<3o27662011,12.2211:3B:58291142,22Ilr3fi243VM其中Testresult有四種類型的值:Pass,F(xiàn)ail,Timeout,NoExecuted瀏覽器查看testResult.xml.路徑:…/android-cts/repository/results/

TestSummarybyPackageTestPackagePassedFailedTimedOutTotalTestsSianatureTest01O1AoiDemasReferenceTest1001CtsAccessibilitvServiceTestCases37OIOCtsAccauntManaa&rT&EtCas&s242025CtsAppTestCaseE256101267CtsBlu&toothTestCases8O03CtsContentTestCases507120S19CtsDatabaseTestCases147850Z32GtsDpiTesTCas&s甘1a9CtsDpiTestCases20000CtsExamoleTestCases2002CtsGestiireTestCases290029CtsGraohicsTestCases34070547CtsHartiwareTestCases101011GtsJniTestGas&s510061CtsLouationTestCases8330saCtsM&diaT&stCas&s90100100GtsNetTestCases752077CtsOsTestGases28130284CtsParmi曲i&n2TsstCas&sS2□10CtsPermissioriTestCases11230115CtsProviderTestCases:和25asetCtsSp&echiTestCaees0202CtsTsieohcnvT&EtGas&e536053CtsTextTestCases嗣80597CtsLhilTestCas&s728030盧ifiih■FT\ni-igncnncncnc圖為performanceplan所包含的Testpackage的測試結(jié)果,可以看到每個測試包的測試情況,詳細(xì)的測試結(jié)果分析我們將在CTS測試結(jié)果分析中介紹,這里主要讓大家明確result_type的含義。四、終端測試前準(zhǔn)備檢測手機是否連接上電腦打開終端輸入命令:adbdevices,連接上這會顯示設(shè)備ID,如果未連接上則會以???????代替,此時可以通過輸入以下命令進行連接$adbkill-server$sudoadbstart-server$adbdevicesJackmiao@>ubuntu:-jdckmtao@ubuntu:~$cdbdevicesadbserve『isoutofdate,killing...*daemonstartedsuccessfully水Listofdevi匚亡sattachedS5839fll88529device手機端安裝CtsDelegatingAccessibilityService.apk此包位于android-cts/repository/testcases下面??梢詫惭b包拷貝到手機后安裝也可通過打開終端輸入命令。輸入命令方法:先定位到plantform-tools文件夾,cdcts/android-sdk-linux/platform-tools然后再輸入安裝命令:./adbinstall/安裝包的路徑/CtsDelegatingAccessibilityService.apk安裝好后設(shè)置進入手機設(shè)在菜單:Setting>Accessibility>Accessibility>DelegatingAccessibilityService終端設(shè)置:語言設(shè)置為English去掉鎖屏(Settings>Security&location&security〉Setupscreenlock>none)設(shè)置屏幕超時為最長時間30分鐘(Settings〉Display〉Screentimeout〉30minutes)設(shè)置喚醒狀態(tài)(Settings〉A(chǔ)pplications〉Development〉Stayawake)設(shè)置虛擬地點(Settings〉A(chǔ)pplication〉Development〉A(chǔ)llowmocklocationsisset)運行時讓屏幕是home主界面上運行過程中不要觸摸屏幕及按鈕手機時間設(shè)置正確有SD卡并是清空五、測試命令的執(zhí)行進入CTS測試環(huán)境開啟終端輸入命令:startcts//注意權(quán)限問題如果權(quán)限不夠的話輸入:sudo./startcts輸入用戶密碼當(dāng)出現(xiàn)AndroidCTSversion2.2_r1Device(s5830f1188529)connectedcts_host>cts_host>就代表已經(jīng)進入CTS測試環(huán)境CTS測試的方法>查看測試計劃Ls--planct5_hctst>Is--planListofplans(8tntotal^:RefAppAndrotdJavaAppsecurttyCTSPerformanceVMSignature>查看測試包Ls-pcts_host>Is--packageAvailablepackages(56intotal):android,core-tests”regexandrold.core.vn-testsandrotd,acces5tbil.ttysenriceandr□id^permisstonZandroid.core.tests.Lunt.langandroid,core-tests”mathandrold.core.tests.annotationandrotd,appandroid,core-tests,nioandroid.accountsandroid,core-tests”textandroid.wehkltandroid,core-tests”luni+net>運行測試計劃start--plan[test_plan_name]舉例:運行VM測試計劃輸入命令:--planVMwnaroialisyarsion2.i_rsDe7tce(1^34567e90ABCDEF)connectedcts_hast>uts_host|A"打£一plaFFwiExceptiontnthread'Thread-S^-com.android.ddnLtb.ShellCornniandUftreEponsiveExceptionatcom.aftdrotd.ddniltb.AdtiHeLper.execut&RenoteCunmand(Adbnelper.javai^ios)atcon*android*ddnlib,Device*execdteShellComnandCDevLce.java:364}atcon*endraid*cts.TestDevice$l.rjindestDevicerjava:1670)CTS_ERRDR>?■>Timeout:getDevicelnfostarttestplanVMTestpackage;androidrcore*vn-testsdot.junit.opcodes.add_double_2addr.JJrit_Test_add_double_2addritte£tBl...(pass)dot*iunit*opcodes*adddoubleZoddr-JJnitTestadddouble2oddr#testB2***(pass}>運行測試計劃下的測試包start--plan[test_plan_name]-p/--package[plan_package_name]舉例:運行Java計劃下的android.core.tests.archive測試包cts_hostasta「t--pL^nJ^va-pandrotd.core.tests^archtve|ExceptlonLnthread"Thremd-51*'cainTanHroicl.ddFiltb.ShelLConmandUnresponstveEKceptionatcom”android?ddFilLb.AdbHelper-executeftenotecanmand<Adbt^eIper.JavdJ4Q8)mtcom,android.ddnltb,DeviceTexecdteShellConnand(Device,java:364)atcon.android.cts.TestDeviceJl’run(TestDevice*java:1670}>運行測試計劃下測試包中的某個測試項Start-plan[testplanname]-t[plan_package_name].[class_name]#[plan_package_test_name]舉例:運行Java計劃下android.core.tests.archive包下的test_tostring測試項ctsjost>5tart--planMa-tandrotd.core^estLarchive.java.utiL,.]ar^ttribute5Naneskstfltest_toStrtngExceptioninthread"Thredd-6rcon^ndroid.ddnlib.SheLiConnandUnresponsiveExceptionatcon.android.ddnlib,AdbUelpe匚executeREmoteCDniund(AdbHelper.java:408)atcon.android.ddnlib,Device,executeShelICc-maud(Device.java已64)atconandroid.cts.TestDeuice51+run[IestDevke.java:1679)>指定某個設(shè)備上運行摸個測試計劃中的測試包start--plan[test_plan_name]-d/--device[device_ID]舉例:指定設(shè)備ID號為1234567890ABCDEF運行VM測試計劃Vs-d/'-device;listtlabtedevicesc±s_host>1s-didDevicewanestatusO123^4557890ABCDEFtdT.e1SSS3BrilB8529\cftet±s_host>start--planVM-d1234S67B&&ABCDEFThereare1c>ci_st_Lrhgsessi.on(s>forplanVH,Createanews-essXonorchoos-eanexistingone?Creat^anewse-ss-ton[3]

Choos-ease^s-ion[1J>查看測試結(jié)果Ls一r舉例:EtS_llDSt>Is-rListofallmulti:SessionTestresultStarttineEndtineTestplannanePa品FallTtne&utNotExecuted11112215211167312.21IZ:M:442flll.lZ.2112:e9:13CTS329120144491A1L1ZJ214:朝:帥12.22JdVd539151027962911.12.22U:J0:5&2011.12.2211:36:43州>查看某個session的測試記錄ls-r/--result-s/--sessionsession_id舉例:ls-r-s3dotdetdotdotdotdotdotIdot.Juntt,opcodes”dotdetdotdotdotdotdotIdot.Juntt,opcodes”an<ldot.juntt.opcodes,an-d_tnt_l.tte?jug(pass)dot.juntt,opcodes*and_knt_ltte,JUntt_Testautestvfei--.tp^ss^dot.jun11.ap-codes.an-d_tnt_ltto-JUntt_7est_and_^nt_ltts#testVFE2…(pass)|dot.jurtt.cp-cod^Sxand_4nt_lttfi^3ljnitand_irt_litfiBtestVFEi...(pa豐sjjuntt.opcodes.and^tnt^litB.lUnit^TEst^and^n^lttStttestVFES…(pass)jiintt.opcodes,andZtnt7jLFnit^TeiCincl_tntl?te5tBl...(pass)juntt,opcodes*and_tntrJUntt_Test_and_tnt?testBZ,..(pass):tntti0pcode5+and_i.(pass);unit,cpccdesxand_tnt.Jl^nit^re^t-aind^tntstestlyi"…(pass);unit.opcodeSaand^lnt.JUnlt_restwJnd_tnt#testN3...(pass);unit.opcodes.and_int.JUntt^Test-Jnd-tntfltestN^...(pass)kntrJLintt_Test_JAd_tnt?testVFEZ..-Cpass^CTS詳細(xì)命令Host:help:查看幫助信息exit:退出Plan:ls--plan:列出所有的測試包ls--planplan_name:查看測試方案add--planplan_name:新建一個測試方案add--derivedplanplan_name-s/--sessionsession_id-r/--resultresult_type:deriveaplanfromthegivensessionrm--planplan_name/all:removeaplanorallplansfromrepositorystart--plantest_plan_name:運行一個測試方案start--plantest_plan_name-d/--devicedevice_ID:runatestplanusingthespecifieddevicestart--plantest_plan_name-t/--testtest_name:runaspecificteststart--plantest_plan_name-p/--packagejava_package_name:運行一個特定的java測試包start--plantest_plan_name-t/--testtest_name-d/--devicedevice_ID:用指定的device運行一個特定的測試方案start--plantest_plan_name-p/--packagejava_package_name-d/--devicedevice_ID:runaspecificjavapackageusingthespecifieddevicePackage:ls-p/--package:listavailablepackagesls-p/--packagepackage_name:listcontentsofthepackagewithspecifiednameadd-p/--packageroot:addpackagesfromroottorepositoryrm-p/--packagepackage_name/all:removeapackageorallpackagesfromrepositoryResult:ls-r/--result:listallresultofsessionsls-r/--result-s/--sessionsession_id:listdetailcaseresultofaspecifiedsessionls-r/--result[pass/fail/notExecuted/timeout]-s/--sessionsession_id:listdetailcasesofaspecifiedsessionbythespecifiedresult.History:history/h:listallcommandsincommandhistoryhistory/hcount:listthelatestcountrecordsincommandhistoryhistory/h-enum:runthecommanddesignatedby'num'incommandhistoryDevice:ls-d/--device:listavailabledevicesAndroid-CTS用戶指南網(wǎng)址:/compatibility/downloads.htmlCompatibilityTestSuiteManualTheCTSusermanualisapplicabletoanyCTS'/ersion.butCTS2.1R2andbeyondrequireadditionalsiepstorunih已accessibilitytests.*Ccimp自tibilityTewtSuile〔CTS]Manual六、測試結(jié)果分析Android-CTS運行后會產(chǎn)生一測試報告,測試報告以開始的日期+時間命名,如2011.12.21_12.09.44,一般只要查看testresult.xml文件就可對測試結(jié)果進行分析。由于

CTS測試所需要花的時間比較長,當(dāng)對測試進行調(diào)試時可針對的進行測試可節(jié)約大量時間。以下將介紹幾種常用的方法:>查看整體測試概覽TestSummarybyPackageTestPackagePassedFailedTimedOutTotalTestsSianaturelest0101ApiDemosReference-Test1001CtsAccessibilityServic&TestCases31010CtsAccouritMana^erTestCases24202SCtsAonTestCases25&101267CtsB1uetoottiTestCases3003GtsGontentTestCase-s507120519CtsDatabaseTestCases147350232CtEDpiT&EtCases910gCrsDoiTesrCaseE?000■oCtsExamoleTestCases2002CtsGestureTestCases29002&CtsGraphicsTestCasesS4-070S47CtsHardwar&TestCases101011GtsJniTestGases510061CtsLocatianT&stGasesS330□&CtsMediaTestCases901001WCtsMetTestCases752077CtsOETeEtCaseE231301?adCtsPermissicn2TesTGasesS200!暫無」CtsPermissionTestCas&s1123CtsProviderTe-stCasaE7009&CtsSoeechTestCases0202GtsTeleoht)nvTestCases536059GtsTextTe-stCas&s58930597CtsUtilTestCases72909&航丹蠹■ftrr.i-Lnme!enncnunuI>查看具體測試包測試?yán)龍?zhí)行情況CompatibilityTestPackage:CtsAppTestCasesTestResultandroid.app.cts.ActiwitvMan3QErRuniiiiiQSErvicBlnfoTEst--testConstructorpass--testDescribeContentspass--testWriteToParcelpass--testReadFromParcelpass--testAndroidTestCaseSetupProperlypassandroid.app.cts.NotificationTest--testConstructorpass--testDescribeContentspass--testWriteToParcelpass--testSetLatestEventlnfopass--testToStringpass--testAndroidTestCaseSetupProperlypass

>測試fail項查看失敗細(xì)節(jié)山1¥#內(nèi)川IfT^P4tk*|H:帥比TmRjE^UkFailure血晦andiDld.擁驚時qlHt勺嚴(yán)山町齟■-s^naliiETG^:railHni£mal[hnw1hDd5igpilimKjanaPfitdRE-adEfftbsn^jannPfitdRE-adHMndfEhai||.ini.nf|jamnbchr?1〔harwl氐勺」瑋?皿曲抑langSlnng]■卜曲|川1刃屮口甲丿師尸命護唧冏a$;rd>!h1_Ccfi5J-xilu&k1_Cm:lanl:-{)|耐汕疔出血dxoN機Lp“P處耶漏唧凱護晦if::Tjj__COMREIEjr<i紬kiskortgmpmpBtii四冊阿昭#INSWLLINCOMRETEOrt:)■炒訃漳曲nrWrhrfi>LW.jsn翡血仙網(wǎng)⑹駅汕涮唄hiJSED葡制執(zhí)i血網(wǎng)命Cl必曲忒:門削底nflhii■曲討時仮皿Up.jtksKPJJJJEEDJImil4M-.切:曲他匚鞭皿詁"」」沁聾匸|_4:1:ir<idjk>町低皿[1“站SCP」』J」撫[|-無|.「1.|1由痕):訊血葉ijTA:.WLtuj.汕|仙從吃1:礙4皿瀬£

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論