CTS中自定义(新增)一项测试计划Plan

CTS中自定义(新增)一项测试计划Plan

查看官网并没有找到自定义plan的具体操作,只是告诉你可以新建,于是自己琢磨了下,发现还真能跑起来,下面说下方法:

说明: $android-cts指的是你在官网下的cts测试包,解压之后得到的路径,类似...\android-cts-6.0_r8-linux_x86-arm\android-cts\的这种格式,请自行替换

1. 进入$android-cts\repository\plans 目录,里面有一堆的xml文件,这里面是CTS自带的plans,文件名为plans名称

2. 复制CTS.xml文件,并将文件名修改为MyPlan.xml,其中MyPlan即为你自定义的plan的名称,完成后使用任意的编辑器打开它

可以看到TestPlan节点里面有很多Entry节点,Entry节点的name字段即为测试的入口,其实也就是一个个测试包的包名,我们只需要仿造这个xml,进行填写,比如你需要测试的包名为android.app,android.admin,或者以及你自己编写的测试用例(假设包名为cxq.wifi),那么需要修改MyPlan.xml的内容为:






说明:
Entry节点包括如下属性:
- name属性 —- 用于指定包名,比如“android,admin”
- abi属性 —- 用于指定abi,比如”armeabi-v7a”或则”arm64-v8a”等,不指定的话,默认全执行
- include属性 — 用于指定包含哪些测试
- exclude属性 — 用于指定不包含哪些测试
其中,include属性和exclude属性的内容应当遵循以下格式:
1. 包含/不包含某些测试类,多个项之间用分割

    include="包名.类A;包名.类B;"
    exclude="包名.类A;包名.类B;"
  1. 包含/不包含一个测试类下的某些用例,类名和用例名之间使用#连接,多个项之间用分割
    include="包名.类A#用例a;包名.类B#用例b;"
    exclude="包名.类A#用例a;包名.类B#用例b;"

举个例子,


<TestPlan version="1.0">
    <Entry abi="armeabi-v7a" name="android.admin"/>
    <Entry include="android.jni.cts.JniCTest;android.jni.cts.JniCppTest" name="android.jni"/>
    <Entry exclude="android.provider.cts.BrowserTest;android.provider.cts.CalendarTest" name="android.provider"/>
    <Entry include="android.os.cts.BuildVersionTest#testReleaseVersion;android.os.cts.BuildTest#testIsSecureUserBuild" name="android.os"/>
    <Entry exclude="android.hardware.cts.CameraTest#testVideoSnapshot;android.hardware.cts.CameraGLTest#testCameraToSurfaceTextureMetadata;android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks;android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback" name="android.hardware"/>
TestPlan>

3. 运行你的plan

进入cts-tradefed控制台,这一步不清楚的请参考android官网译文《Running CTS tests》-运行cts
在控制台下运行命令:

run cts --plan MyPlan

你可能感兴趣的:(android,自动化测试)