在CTS测试中,需要对某些case进行单独测试,或者对fail项进行验证,在linux环境下进行单项CTS验证略显繁琐,可以利用am命令方便快捷。
1.外部环境配置
手机:满足CTS测试要求,例如保持常亮(stay awake)等。
APK:测试相关类型的testcase的apk,在CTS 的测试包中包含的。以Camera测试为例,在android-cts-13_r2-linux_x86-arm\android-cts\testcases\CtsCameraTestCases\arm64 下存在CtsCameraTestCases.apk,将该apk安装到设备上。
adb install -r CtsCameraTestCases.apk
并且需要打开apk的全部权限,可以通过命令开启权限,或者通过设备中设置手动打开权限。以camera 测试CtsCameraTestCases.apk为例。
adb shell pm grant android.camera.cts android.permission.CAMERA
2.测试命令
测试单个case可以使用am命令,速度更快。
首先通过 pm list instrumentation 命令查看测试apk的测试用例。
am instrument -w -r -e newRunListenerMode true -e class android.media.cts.CameraProfileTest android.media.cts/androidx.test.runner.AndroidJUnitRunner
am命令可以测试某个module或者module中的某个case,使用"#"在module后添加case名即可。
am instrument -w -r -e newRunListenerMode true -e class android.hardware.camera2.cts.RobustnessTest#testVerifyMandatoryOutputCombinationTables android.camera.cts/androidx.test.runner.AndroidJUnitRunner
3.结果
4.写在最后
通过am命令可以看出,使用am命令对于单条case来说更快捷,更方便,也可以单独测试某个module的结果。
对于研发人员来说,fix cts bug使用am命令来内部测试比使用android CTS套件更方便快捷。