Android 23 CTS测试修改测试结果和调试方法.docx
《Android 23 CTS测试修改测试结果和调试方法.docx》由会员分享,可在线阅读,更多相关《Android 23 CTS测试修改测试结果和调试方法.docx(14页珍藏版)》请在冰豆网上搜索。
Android23CTS测试修改测试结果和调试方法
Android2.3CTS测试修改测试结果和调试方法
1.CTS测试用USB连接开发板和办公电脑,就可以开始进行cts测试了。
测试步骤如下:
1)进入cts目录,启动cts。
localhostbin#pwd
/work/android_src/out/host/linux-x86/bin(cts可执行程序放在android源代码/work/android_src中的/out/host/linux-x86/bin路径下。
)
localhostbin#./cts(启动cts)
启动开发板会在屏幕上显示下面信息。
AndroidCTSversion2.2_r1
Device(0123456789ABCDEF)connected(开发板已经连接,说明USB已经连接好,可以进行CTS测试了)
cts_host>start--planVM(启动cts的VM测试计划)
starttestplanVM
==============================================================
Testpackage:
android.core.vm-tests
dot.junit.opcodes.add_double_2addr.JUnit_Test_add_double_2addr#testB1....(pass)
dot.junit.opcodes.add_double_2addr.JUnit_Test_add_double_2addr#testB2...(pass)
dot.junit.opcodes.add_double_2addr.JUnit_Test_add_double_2addr#testB3....(pass)
........................(略)
如果以前跑过VM测试,或由于某种原因导致VM测试暂停,在下次cts测试,会显示如下信息:
localhostbin#./cts
AndroidCTSversion2.2_r1
Device(0123456789ABCDEF)connected
cts_host>start--planVM
cts_host>Thereare1existingsession(s)forplanVM.
Createanewsessionorchooseanexistingone?
(表示对VM重新进行测试)
Createanewsession[0]
(表示从上次中断的地方开始继续进行测试)
Chooseasession[1]
(输入1,从上次中断处继续进行测试)
(VM如果重新测试过两次及以上,会出现下面的信息,session值越小,表示上次测试时间离目前时间越远)
Pleasechooseasessionfromtheexistedsession(s):
1[0]
7[1]
(从最早一次开始进行测试)
0
resumetestplanVM(sessionid=1)
==============================================================
Testpackage:
android.core.vm-tests
dot.junit.opcodes.add_float_2addr.JUnit_Test_add_float_2addr#testN5...(pass)
........................(略)
测试中存在着很多意想不到的情况,会导致cts测试中断,可见cts功能做得很贴心。
上面这点一定要知道,因为它非常重要。
2)测试时注意事项:
如果测试中出现板子跑死了,需要重新开始测试,只需要把板子重新启动,千万不要通过Ctrl+C的方式把正在运行的cts中断掉,因为在享受(Ctrl+C)带来快感的
同时,很有可能会导致测试结果毁于一旦。
这一点非常重要,我在测试VM的时候,就多次遇到这种问题,导致测试进度缓慢,一天也没有把VM测试完。
(注:
这一点也并不是每次必现的,在测试Java部分的时候,一次失败都没有遇到,但在测试VM的时候却多次出现,搞的我真的很郁闷,看来,以后只能多攒点RP了。
通过(Ctrl+C)中断测试真的很爽,如果测试进度要求很紧的话,还是不用为妙,按板子的reset键,对于cts测试来说,更迅速点,可以一键搞定问题。
)
4.修改CTS测试结果(仅限特殊情况下使用)
CTS测试完成,会生成测试报告,存放在下面路径下:
/work/android_src/out/host/linux-x86/cts/android-cts/repository/results
(/work/android_src是本人电脑上android源代码的存放路径)
以一个CTS测试结果为例,生成的目录结构如下:
├──2010.10.19_10.39.00
│├──cts_result.css
│├──cts_result.xsl
│├──logo.gif
│├──newrule-green.png
│└──testResult.xml
├──2010.10.19_10.39.00.zip
CTS测试结果会生成一个按照测试时间命名的2010.10.19_10.39.00.zip.zip压缩包,和一个同名的文件夹。
可以进入测试结果文件夹中用浏览器打开testResult.xml文件,就可以看到CTS的测试结果。
(注意,测试结果中的5个文件一个都不能少,不然用浏览器打不开。
)
CTS默认情况测试时会把所有的测试选项全部测试一遍,但有时,有些功能由于板子不支持,不需要进行测试,就可以通过下面介绍的方法修改cts的测试结果。
千
万不要为了有个好看的测试结果而使用!
以下面这个测试结果为例,介绍下如何把测试结果修改为“notExecuted”。
修改之前,一定要记得把需要修改的测试结果备份一下,以防意外。
4.1把测试结果中的“pass”修改为“notExecuted”
用gedit打开testResult.xml文件,通过“Ctrl+F”键查找到需要修改的测试选项testGetDefault,查找结果如下图所示。
修改方法:
把result="pass"修改为result="notExecuted"即可。
4.2把测试结果中的“fail”修改为“notExecuted”
通过查找,fail的结果如下图所示。
从测试结果可以看到之间的内容为测试失败的堆栈调用顺序,这对于定位故障有很好的参考作用。
修改方法:
1)把测试结果中的result="pass"修改为result="notExecuted"。
2)删除的所有内容。
修改后的结果如下:
4.3修改测试结果的Summary
用浏览器打开的测试报告,最上面会有个TestSummary一栏,修改了测试报告结果之后,还需要把TestsPassed、TestsFailed、TestsTimedout、TestsNotExecuted值修改正确,也就是简单的算术加减法,同样在testResult.xml文件中修改。
下面是修改之前的TestSummary。
要把它修改为下面的结果。
修改方法:
查找“Summary”,找到测试结果。
把修改上面的内容即可,修改结果如下:
4.4检验修改是否正确
用浏览器打开testResult.xml文件,如果浏览器打开时有报错,说明有的地方修改不正确了,可以根据错误提示修改过来。
5.测试单个测试包或用例
CTS允许测试单个package或test,这对于重新测试那些没有通过的项目省下了很多时间。
以下面的测试结果为例,介绍下测试命令。
5.1测试单个packet
上图中testSendMessages测试项没有通过,可以把它所在的packageandroid.telephony.gsm.cts.SmsManagerTest重新测试一下。
测试命令如下。
cts_host>start--planJava-pandroid.telephony.gsm.cts.SmsManagerTest
(注:
--plan表示这个Packet所在的测试计划,-p表示所要测试的packet)
5.2测试单个test
如果觉得测试packet测试项目太多,也可以对单个测试失败的testSendMessages进行测试。
测试命令如下。
cts_host>start--planJava-tandroid.telephony.gsm.cts.SmsManagerTest#testSendMessages
(注:
--plan表示test所在的测试计划,-t表示具体的test,android.telephony.gsm.cts.SmsManagerTest#testSendMessages是由两部分组成,测试的packet和测试的test,他们通过#分割开。
)
不管是packet测试还是test测试,一定要建立一个新的session,因为新session中的测试项目都是“NotExecuted”,不然由于之前存在的session中的测试包或测试项目可能已经测试过,CTS就不会再重新进行测试。
6.总结
Android希望建立一个开放性的平台,可以让开发者在这个平台上面开发出具有创新性的移动应用软件,为了保证这些软件可以运行在各种终端设备上,Android兼
容性项目定义了Android平台的各种技术细节,并提供了测试工具CTS。
CTS具有多达2万多个的测试用例,可以测试Android的各个方面。
因此,如果一款应用软件可以通过CTS测试,说明它具有相当好的兼容性,按照Android官方的说法,这款软件就可以在Androidmarket上发布了。
希望大家都能够用好这款测试工具。
cts_host>start--planPerformance
starttestplanPerformance
==============================================================
Testpackage:
android.performance2
android.performance2.cts.AppStartup#testStartup..............................................(timeout)
==============================================================
CTS_INFO>>>MaxADBoperationsreached.RestartingADB...
CTS_INFO>>>Restartingdevice...
CTS_INFO>>>Restartcomplete.
=====================================