AndroidCTS测试规范linux系统.docx
《AndroidCTS测试规范linux系统.docx》由会员分享,可在线阅读,更多相关《AndroidCTS测试规范linux系统.docx(12页珍藏版)》请在冰豆网上搜索。
![AndroidCTS测试规范linux系统.docx](https://file1.bdocx.com/fileroot1/2023-1/26/80d369c6-3e50-49ce-9505-dbba0c0c0046/80d369c6-3e50-49ce-9505-dbba0c0c00461.gif)
AndroidCTS测试规范linux系统
目录
一、AndroidCTS测试简介2
二、AndroidCTS测试环境搭建2
1.下载android-SDKlinux版本,下载地址:
2
2.下载android-cts包,下载地址:
2
3.jdk的安装:
2
4.将android-sdk和android-cts解压放置在同一个文件夹3
5.在CTS/tools中修改脚本设置环境变量3
6.置ubantu系统环境变量3
三、Android-CTS测试的几个概念3
四、终端测试前准备5
1.检测手机是否连接上电脑5
2.手机端安装CtsDelegatingAccessibilityService.apk6
3.终端设置:
6
五、测试命令的执行6
1.进入CTS测试环境6
2.CTS测试的方法7
3.CTS详细命令9
4.Android-CTS用户指南10
六、测试结果分析10
一、AndroidCTS测试简介
CTS 全称Compatibility Test Suite兼容性测试工具。
当电子产品开发出来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台下。
通过了CTS验证,需要将测试报告提交给Google,已取得android market的认证。
CTS是一款通过命令行操作的工具。
目前cts没有提供windows版本,只能在Linux下测试。
本文将详细介绍在ubantu系统上如何搭建CTS环境,以及运行测试计划和分析测试结果。
二、AndroidCTS测试环境搭建
1.下载android-SDKlinux版本,下载地址:
2.下载android-cts包,下载地址:
根据手机系统版本下载对应版本的cts包,否则将无法运行测试
3.jdk的安装:
在ubuntu系统中打开终端,输入命令:
$sudoadd-apt-repository"deblucidpartner"
$sudoapt-getupdate
$sudoapt-getinstallsun-java6-jdk
$sudoln-s/usr/lib/i386-linux-gnu/libX11.so.6/usr/lib/i386-linux-gnu/libX11.so
4.将android-sdk和android-cts解压放置在同一个文件夹
5.在CTS/tools中修改脚本设置环境变量
进入android-cts/tools目录下,修改startcts文件,将脚本中的SDK_ROOT改成自己的SDK路径,如:
SDK_ROOT=/home/jackmiao/workspace/CTS/android-cts/tools
6.设置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测试中几个概念:
ØTest Plan(Plan):
测试计划,Test package的集合,每个Plan中都包含若干个测试包
以android–cts2.2版本为例,总共有8个测试计划
CTS:
包含2万多个测试用例,这些测试用例是检验兼容性必须的,性能测试不包含在本计划中,随版本的更新,本测试计划也会更新。
Signature:
包含所有针对公有APIs的署名测试
Android:
包含针对androidAPIs的所有测试
Java:
包含所有针对Java核心library的测试
VM:
包含对虚拟机的所有测试
RefApp:
包含针对参与应用程序的所有测试,随版本的更新,本测试计划也会更新
Performance:
包含所有针对性能的测试,随版本的更新,本测试计划也会更新
AppSerurity:
针对Application安全性的测试
ØTest Package(Package):
测试包,Test case的集合
ØTest case:
测试用例,Test的集合
ØTest:
测试,每一个测试对应一个或者多个Instrumentation Test
ØInstrumentation Test:
Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。
使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。
Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
ØResult_Type:
CTS的测试结果可以通过命令查阅,也可以通过浏览器查看下结果文件
命令查阅结果:
其中Test result 有四种类型的值:
Pass, Fail, Timeout, NoExecuted
浏览器查看testResult.xml. 路径:
…/android‐cts/repository/results/
上图为performance plan所包含的Test package的测试结果,可以看到每个测试包的测试情况,详细的测试结果分析我们将在CTS 测试结果分析中介绍,这里主要让大家明确result_type的含义。
四、终端测试前准备
1.检测手机是否连接上电脑
打开终端输入命令:
adbdevices,连接上这会显示设备ID,如果未连接上则会以?
?
?
?
?
?
?
代替,此时可以通过输入以下命令进行连接
$adbkill-server
$sudoadbstart-server
$adbdevices
2.手机端安装CtsDelegatingAccessibilityService.apk
此包位于android-cts/repository/testcases下面。
可以将安装包拷贝到手机后安装也可通过打开终端输入命令。
输入命令方法:
先定位到plantform-tools文件夹,cdcts/android-sdk-linux/platform-tools然后再输入安装命令:
./adbinstall/安装包的路径/CtsDelegatingAccessibilityService.apk
安装好后设置进入手机设在菜单:
Setting>Accessibility>Accessibility>DelegatingAccessibilityService
3.终端设置:
1)语言设置为English
2)去掉锁屏(Settings>Security&location&security>Setupscreenlock>none)
3)设置屏幕超时为最长时间30分钟(Settings>Display>Screentimeout>30minutes)
4)设置唤醒状态(Settings>Applications>Development>Stayawake)
5)设置虚拟地点(Settings>Application>Development>Allowmocklocationsisset)
6)运行时让屏幕是home主界面上
7)运行过程中不要触摸屏幕及按钮
8)手机时间设置正确
9)有SD卡并是清空
五、测试命令的执行
1.进入CTS测试环境
开启终端输入命令:
startcts//注意权限问题
如果权限不够的话输入:
sudo./startcts
输入用户密码
当出现
Android CTS version 2.2_r1
Device(s5830f1188529) connected
cts_host > cts_host >
就代表已经进入CTS测试环境
2.CTS测试的方法
Ø查看测试计划
Ls--plan
Ø查看测试包
Ls-p
Ø运行测试计划
start ‐‐plan [test_plan_name]
举例:
运行VM测试计划
输入命令:
--planVM
Ø运行测试计划下的测试包
start ‐‐plan [test_plan_name] ‐p/‐‐package [plan_package_name]
举例:
运行Java计划下的android.core.tests.archive测试包
Ø运行测试计划下测试包中的某个测试项
Start–plan[testplanname]–t
[plan_package_name].[class_name]#[plan_package_test_name]
举例:
运行Java计划下android.core.tests.archive包下的test_tostring测试项
Ø指定某个设备上运行摸个测试计划中的测试包
start --plan [test_plan_name]‐d/--device [device_ID]
举例:
指定设备ID号为1234567890ABCDEF运行VM测试计划
Ø查看测试结果
Ls–r
举例:
Ø查看某个session的测试记录
ls-r/--result-s/--sessionsession_id
举例:
ls–r–s3
3.CTS详细命令
Host:
help:
查看帮助信息
exit:
退出
Plan:
ls--plan:
列出所有的测试包
ls--planplan_name:
查看测试方案
add--planplan_name:
新建一个测试方案
add--derivedplanplan_name-s/--sessionsession_id-r/--resultresult_type:
deriveaplanfromthegivensession
rm--planplan_name/all:
removeaplanorallplansfromrepository
start--plantest_plan_name:
运行一个测试方案
start--plantest_plan_name-d/--devicedevice_ID:
runatestplanusingthe
specifieddevice
start--plantest_plan_name-t/--testtest_name:
runaspecifictest
start--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/--devicedevic
e_ID:
runaspecificjavapackageusingthespecifieddevice
Package:
ls-p/--package:
listavailablepackages
ls-p/--packagepackage_name:
listcontentsofthepackagewithspecifiedna
me
add-p/--packageroot:
addpackagesfromroottorepository
rm-p/--packagepackage_name/all:
removeapackageorallpackagesfromrepo
sitory
Result:
ls-r/--result:
listallresultofsessions
ls-r/--result-s/--sessionsession_id:
listdetailcaseresultofaspecifi
edsession
ls-r/--result[pass/fail/notExecuted/timeout]-s/--sessionsession_id:
list
detailcasesofaspecifiedsessionbythespecifiedresult.
History:
history/h:
listallcommandsincommandhistory
history/hcount:
listthelatestcountrecordsincommandhistory
history/h-enum:
runthecommanddesignatedby'num'incommandhistory
Device:
ls-d/--device:
listavailabledevices
4.Android-CTS用户指南
网址:
六、测试结果分析
Android-CTS运行后会产生一测试报告,测试报告以开始的日期+时间命名,如2011.12.21_12.09.44,一般只要查看testresult.xml文件就可对测试结果进行分析。
由于CTS测试所需要花的时间比较长,当对测试进行调试时可针对的进行测试可节约大量时间。
以下将介绍几种常用的方法:
Ø查看整体测试概览
Ø查看具体测试包测试例执行情况
Ø测试fail项查看失败细节
Ø测试调试
首先确定是哪个测试包出现失败,然后针对该测试包进行重新测试
$ adb install …/andandroid‐cts/package.apk
$ adb shell pm list instrumentation pm用于管理package,看当前机器安装了什么用例
$ adb shell am instrument ‐w android.tests.sigtest/.InstrumentationRunner
Ø定位某个测试失败项进行单独运行
Start–plan[testplanname]–t
[plan_package_name].[class_name]#[plan_package_test_name]
注意寻找class_name,可从测试报告中找到
举例: