android官网译文《Running CTS tests》-运行cts
译文地址
运行兼容性测试
cts tradefed的使用
详细信息请参考Trade Federation Overview (简称tradefed或TF)连续测试框架的说明。
运行一项测试计划之前,你需要:
1. 至少链接一台设备
2. 按下home键使设备停留在桌面
3. 当设备正在测试时,不能有其他任何的操作,并且为了保证相机的准确对焦,设备必须保持在一个固定的位置(以避免触发传感器活性)
4. 运行cts测试时,不允许按下任何按键或者触碰屏幕,因为这两项均有可能影响你的测试结果甚至导致测试失败
5. 通过运行cts-tradefed脚本来加载cts控制台,cts-tradefed脚本文件存放在$ ./android-cts/tools/cts-tradefed
6. 你可以通过命令run cts --plan CTS
运行默认的测试计划(包括所有的包的测试),输入list plans
查看当前有哪些测试计划,输入list packages
查看当前有哪些测试包,也可以使用 help命令查看关于cts命令的详细使用说明
7. 或者你可以选择的CTS计划:CTS-tradefed run CTS--plan
注意:如果只是运行Android6.0的cts,我们建议你使用
--skip-preconditions
选项来跳过环境检查,因为该项检查可能会造成cts运行失败
- 观测测试的过程以及控制台的反馈
- 如果你的设备是Android5.0及以后并且支持ARM和x86 ABI,需要运行ARM和x86两个测试包
选择cts plans
有如下测试计划可供选择:
- CTS – 所有兼容性必须测试项
- Signature – 所有公共APIs的签名验证
- Android – 测试Android APIs
- Java – 测试java核心库
- VM – 测试ART或Dalvik
- Performance – 接口性能测试
以上这些均可以通过命令run cts --plan
调用
cts命令行解析
表1.cts命令解析
host | 描述 |
---|---|
help | 显示命令帮助概览 |
help all | 查看所有命令支持 |
exit | 退出cts控制台,退出后,所有的测试都结束 |
run | 描述 |
---|---|
run cts | 运行指定的测试并且显示进程信息,必须指定至少一个plan, --package, --class 或者--continue-session ,在运行测试的过程中,cts控制台仍然能够接受其他的命令,如果当前并没有设备连接到控制台,那么cts会等待设备的接入后才开始执行测试,如果有多台设备同时接入,则cts主机会自动选择一台设备 |
--plan <test_plan_name> | 运行指定的测试计划 |
-- package/-p <test_package_name> [--package/-p <test_package2>...] | 运行指定的测试包名 |
--class/-c <class_name> [--method/-m <test_method_name> | 运行指定的测试类或者方法 |
--continue-session | 运行所有以前未执行CTS会话测试;会话测试的结果会在testResult.xml更新 |
--shards <number_of_shards> | 将测试分成指定的分数,并分散到到多台设备上同时运行 |
--serial/-s <deviceID> | 在指定的设备上运行cts |
-t <class_name>#<test_method_name> | 运行指定的测试方法 |
--force-abi 32|64 | 在64位的设备上,运行某些针对32位或者64位ABI的测试 |
list | 描述 |
---|---|
list packages | 列出所有可测试的包名 |
list plans | 列出所有可测试的计划名 |
list invocations | 列出当前设备正在运行的命令 |
list commands | 列出当前设备等待指派的命令队列 |
list results | 列出当前设备的测试结果 |
list devices | 列出当前连接的设备以及它们的状态,Available 指设备处于运作或空置状态,该状态下的设备可以执行测试,Unavailable 指设备可见,但是无法响应adb 命令或者无法部署测试,Allocated 指设备当前正在运行某项测试 |
add | 描述 |
---|---|
add derivedplan --plan <plan_name> --result/-r [pass | fail | timeout | notExecuted] [--session/-s <session_id>] | 通过测试结果逆向指定一个测试计划,用于问题的验证以及重新生成测试报告 |