版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-5"\h\z一、AndroidCTS测试简介2二、AndroidCTS测试环境搭建2下载android-SDKlinux版本,下载地址:2下载android-cts包,下载地址:2jdk的安装:2将android-sdk和android-cts解压放置在同一个文件夹3在CTS/tools中修改脚本设置环境变量3置ubantu系统环境变量3三、Android-CTS测试的几个概念3四、终端测试前准备5检测手机是否连接上电脑5手机端安装CtsDelegatingAccessibilityService.apk6终端设置:6五、测试命令的执行6进入CTS测试环境6CTS测试的方法7CTS详细命令9Android-CTS用户指南10六、测试结果分析10AndroidCTS测试简介CTS全称CompatibilityTestSuite兼容性测试工具。当电子产品开发出来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的androidapplication能运行在该平台下。通过了CTS验证,需要将测试报告提交给Google,已取得androidmarket的认证。CTS是一款通过命令行操作的工具。目前cts没有提供windows版本,只能在Linux下测试。本文将详细介绍在ubantu系统上如何搭建CTS环境,以及运行测试计划和分析测试结果。二、AndroidCTS测试环境搭建下载android-SDKlinux版本,下载地址:/sdk/index・htmlLinux(i386)亦d「oid・sdk」16・linux-1gz22048174bytes3ba457f731d51da3741c29c8830a4583下载android-cts包,下载地址:/compatibility/downloads.html根据手机系统版本下载对应版本的cts包,否则将无法运行测试jdk的安装:http:///source/initializing.html在ubuntu系统中打开终端,输入命令:$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解压放置在同一个文件夹设备workspace證主文件夹设备workspace證主文件夹workspa0KINGST.42GB...DA1AWorkdCTS42GB...DA1AWorkdCTS廿算机幽主文件夹在CTS/tools中修改脚本设置环境变量进入android-cts/tools目录下,修改startcts文件,将脚本中的SDK_ROOT改成自己的SDK路径,如:SDK_ROOT=/home/jackmiao/workspace/CTS/android-cts/tools设置ubantu系统环境变量进入ubantu系统用户目录下按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工具的路径请根据自己的实际路径创建三、Android-CTS测试的几个概念在进行CTS测试之前,先阐述CTS测试中几个概念:TestPlan(Plan):测试计划,Testpackage的集合,每个Plan中都包含若干个测试包以android-cts2.2版本为例,总共有8个测试计划CTS:包含2万多个测试用例,这些测试用例是检验兼容性必须的,性能测试不包含在本计划中,随版本的更新,本测试计划也会更新。Signature:包含所有针对公有APIs的署名测试Android:包含针对androidAPIs的所有测试Java:包含所有针对Java核心library的测试VM:包含对虚拟机的所有测试RefApp:包含针对参与应用程序的所有测试,随版本的更新,本测试计划也会更新Performance:包含所有针对性能的测试,随版本的更新,本测试计划也会更新AppSerurity:针对Application安全性的测试TestPackage(Package):测试包,Testcase的集合Testcase:测试用例,Test的集合Test:测试,每一个测试对应一个或者多个InstrumentationTestInstrumentationTest:Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。Result_Type:CTS的测试结果可以通过命令查阅,也可以通过浏览器查看下结果文件命令查阅结果:ctsjost>Is-rListofallresults:SessionTestP355resultFailTllKDUtExecutedStarttineEndtineTe吐plannane111122顶1116732011.12h1112;旳;44291142J112:O5:1BCTSi29L2a144692611.12.12201L12.2214J81:M獅<3o27662011,12.2211:3B:58291142,22Ilr3fi243VM其中Testresult有四种类型的值:Pass,Fail,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的测试结果,可以看到每个测试包的测试情况,详细的测试结果分析我们将在CTS测试结果分析中介绍,这里主要让大家明确result_type的含义。四、终端测试前准备检测手机是否连接上电脑打开终端输入命令:adbdevices,连接上这会显示设备ID,如果未连接上则会以???????代替,此时可以通过输入以下命令进行连接$adbkill-server$sudoadbstart-server$adbdevicesJackmiao@>ubuntu:-jdckmtao@ubuntu:~$cdbdevicesadbserve『isoutofdate,killing...*daemonstartedsuccessfully水Listofdevi匚亡sattachedS5839fll88529device手机端安装CtsDelegatingAccessibilityService.apk此包位于android-cts/repository/testcases下面。可以将安装包拷贝到手机后安装也可通过打开终端输入命令。输入命令方法:先定位到plantform-tools文件夹,cdcts/android-sdk-linux/platform-tools然后再输入安装命令:./adbinstall/安装包的路径/CtsDelegatingAccessibilityService.apk安装好后设置进入手机设在菜单:Setting>Accessibility>Accessibility>DelegatingAccessibilityService终端设置:语言设置为English去掉锁屏(Settings>Security&location&security〉Setupscreenlock>none)设置屏幕超时为最长时间30分钟(Settings〉Display〉Screentimeout〉30minutes)设置唤醒状态(Settings〉Applications〉Development〉Stayawake)设置虚拟地点(Settings〉Application〉Development〉Allowmocklocationsisset)运行时让屏幕是home主界面上运行过程中不要触摸屏幕及按钮手机时间设置正确有SD卡并是清空五、测试命令的执行进入CTS测试环境开启终端输入命令:startcts//注意权限问题如果权限不够的话输入:sudo./startcts输入用户密码当出现AndroidCTSversion2.2_r1Device(s5830f1188529)connectedcts_host>cts_host>就代表已经进入CTS测试环境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)>指定某个设备上运行摸个测试计划中的测试包start--plan[test_plan_name]-d/--device[device_ID]举例:指定设备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>查看测试结果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详细命令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用户指南网址:/compatibility/downloads.htmlCompatibilityTestSuiteManualTheCTSusermanualisapplicabletoanyCTS'/ersion.butCTS2.1R2andbeyondrequireadditionalsiepstorunih已accessibilitytests.*Ccimp自tibilityTewtSuile〔CTS]Manual六、测试结果分析Android-CTS运行后会产生一测试报告,测试报告以开始的日期+时间命名,如2011.12.21_12.09.44,一般只要查看testresult.xml文件就可对测试结果进行分析。由于
CTS测试所需要花的时间比较长,当对测试进行调试时可针对的进行测试可节约大量时间。以下将介绍几种常用的方法:>查看整体测试概览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>查看具体测试包测试例执行情况CompatibilityTestPackage:CtsAppTestCasesTestResultandroid.app.cts.ActiwitvMan3QErRuniiiiiQSErvicBlnfoTEst--testConstructorpass--testDescribeContentspass--testWriteToParcelpass--testReadFromParcelpass--testAndroidTestCaseSetupProperlypassandroid.app.cts.NotificationTest--testConstructorpass--testDescribeContentspass--testWriteToParcelpass--testSetLatestEventlnfopass--testToStringpass--testAndroidTestCaseSetupProperlypass
>测试fail项查看失败细节山1¥#內川IfT^P4tk*|H:帥比TmRjE^UkFailure血晦andiDld.擁驚时qlHt勺严山町齟■-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翡血仙网⑹駅汕涮呗hiJSED葡制执i血网命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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋买卖合同正规版本2025
- 银行风险防范操作流程详解
- 麻纺生产线调度管理办法
- 某家具厂生产标准规范
- 小学数学进阶专项应用题训练集
- 建筑施工安全防护措施汇报
- 小班幼儿发展评估总结
- 中考物理模拟测试题及解析
- 第3节 熔化和凝固说课稿2025学年初中物理沪科版五四学制2024八年级下册-沪科版五四学制2024
- 档案管理制度
- 司法三段论课件
- 零件读本(出书版)-1
- 教育局中小学考试命题管理方案
- 光大金瓯资产管理有限公司笔试
- 2025年中国邮政集团有限公司湖北省分公司招聘笔试备考试题及完整答案详解1套
- 2025年建筑施工特种作业人员考试建筑电焊工题库(附答案)
- 构建人类命运共同体+课件-2025-2026学年高中政治统编版选择性必修一
- 2025年善意的谎言辩论会材料及流程
- 2025年辽宁卷历史高考试卷(原卷+答案)
- 检验科个人防护培训课件
- 2025年不动产登记业务知识试题及答案
评论
0/150
提交评论