Android CTS环境配置及基础命令介绍(仅针对8.0)

环境配置

物理环境

蓝牙 LE 信标

如果 DUT 支持蓝牙 LE 功能,则应在与 DUT 的距离不超过五米的范围内放置至少三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone,甚至模拟 BLE 信标的设备。

GPS/GNSS

如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS) 功能,需将 DUT 放在距离窗口足够近的位置以使其可以直接接收到足够强的 GPS/GNSS 信号即可。

Tips:在进行 GPS 测试时,请确保互联网连接设置未屏蔽 supl.google.com 的 7276 端口的连接。该端口将用于下载 GPS 辅助数据,以便在本地设备上测试位置计算。

WLAN 和 IPv6

CTS 测试需要满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离客户端,并可以连接到互联网(Google)。隔离客户端是一种配置,可使 DUT 无法接收子网络上的广播/多网消息;这种配置可通过 WLAN AP 配置或通过在未连接其他设备的隔离子网络上运行 DUT 来实现。

如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 IPv6 VPN,以致无法通过基于 IPv6 的一些测试,则可以改为使用 WLAN 接入点和 IPv6 隧道。请参阅维基百科 IPv6 隧道代理列表。

PC设置

1.1.1 ADB和AAPT

安装最新的adb和aapt,并将这些工具的位置添加到计算机的环境变量中。

例如

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/

1.1.2 JDK

现在要求安装jdk8,openjdk和sunjdk都可以

1.1.3 CTS文件

下载CTS测试套件

下载CTS媒体文件,Media相关测试需要用(日常使用1.4版本)

Android设备设置

请注意正式送测版本一定是user版本(定位问题可使用userdebug版本)

准备UICC

为了执行CTS运营商API测试,设备需要使用运营商授权的SIM卡,可以参照https://source.android.com/devices/tech/config/uicc#prepare_uicc

a. 将设备恢复出厂设置:设置 > 备份和重置 > 恢复出厂设置(刷机后的机器不用再次恢复出厂设置)

b. 将设备的语言设置为英语(美国):设置 > 语言和输入法 > 语言

c. 如果设备具有 GPS 或 WLAN/移动网络功能,则打开位置信息设置:设置 > 位置信息 > 开启 (选择高精度)

d. 插入sd卡,推荐class10且大于8GB(只有内部存储可不插)

e. Settings > Display > Sleep should be set to “30 minutes” or the largest value

f. 测试前,手机应该回到Home界面

g. 写入IMEI

h. 插入SIM卡并开启数据流量

i. Settings > About phone > Status > My phone number查看SIM卡号码,如果看不到,需要将SIM卡号码写入到SIM中,目前知道小米手机可以直接写入。

j. 连接到满足以下要求的 WLAN 网络:支持 IPv6,能够访问Google网络(梯子)

k. 关闭锁屏幕图案或密码:设置 > 安全 > 屏幕锁定 > 无

l. 在设备上启用 USB 调试:设置 > 开发者选项 > USB 调试

m. 设置 > 日期和时间 > 使用 24 小时制 > 关闭(使用12小时制)

n. 设置 > 开发者选项 > 不锁定屏幕 > 开启

o. 启动浏览器并关闭任何启动/设置屏幕。

p. 将 CTS 媒体文件复制到设备上,

i. 运行 copy_media.sh:

l 要复制分辨率不超过 720x480 的剪辑,请运行:./copy_media.sh 720x480

l 如果您不确定最大分辨率,请尝试运行 ./copy_media.sh all,以便复制所有文件。

ii. 执行 copy_images.sh(建议在测试机内置存储新建cts文件夹,讲bbb_full和bbb_short)

运行CTS

解压缩下载的CTS压缩文件

执行 ./android-cts/tools/cts-tradefed 进入cts命令行

下面是从android官网上摘抄下来的命令参考

主机 说明
help 显示最常用命令的摘要
help all 显示可用命令的完整列表
version 显示版本。
exit 正常退出 CTS 控制台。所有当前正在运行的测试完成后,控制台将关闭。
运行 说明
run cts 运行默认的 CTS 计划(即完整的 CTS 调用)。 在测试过程中,CTS 控制台可以接受其他命令。 如果没有连接任何设备,CTS 台式机(或主机)将等待连接设备后再开始测试。 如果连接了多台设备,则 CTS 主机将自动选择一台设备。
--plan 运行指定的测试计划。
--module/-m [--module/-m ...] 运行指定的测试类和/或方法。例如,run cts --module CtsGestureTestCases 会执行手势测试模块(该命令可以简化为 run cts -m Gesture)。 run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes会运行指定的包、类或测试。
--subplan 运行指定的子计划。
-- module/-m -- test 运行指定的模块并进行测试。例如,run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 会运行指定的包、类或测试。
--retry 重新尝试运行在以前的会话中失败或未执行的所有测试。 使用 list results 获取会话 ID。
--shards 将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。
--serial/-s 在特定设备上运行 CTS。
--include-filter [--include-filter ...] 仅使用指定的模块运行。
--exclude-filter [--exclude-filter ...] 运行时排除指定的模块。
--log-level-display/-l 以显示给 STDOUT 的最小指定日志级别运行。有效值:[VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT]。
--abi 强制要求测试在给定的 ABI(32 或 64)上运行。默认情况下,CTS 会为设备支持的每个 ABI 运行一次测试。
--logcat、--bugreport 和 --screenshoot-on-failure 显示更详尽的故障信息并帮助进行诊断。
--device-token 指定具有给定令牌的给定设备,例如 --device-token 1a2b3c4d:sim-card.。
--skip-device-info 跳过收集设备相关信息的过程。注意:运行 CTS 以寻求批准时,请勿使用此选项。
--skip-preconditions 绕过对设备配置的验证和设置,例如推送媒体文件或检查 WLAN 连接。
列表 说明
list modules 列出存储区中的所有可用测试模块。
list plans 或 list configs 列出存储区中的所有可用测试计划(配置)。
list subplans 列出存储区中的所有可用子计划。
list invocations 列出设备上当前正在执行的“运行”命令。
list commands 列出当前在队列中等待分配给设备的所有“运行”命令。
list results 列出当前存储在存储区中的 CTS 结果。
list devices 列出当前连接的设备及其状态。 “可用”设备是可正常运行的空闲设备,可用于运行测试。 “不可用”设备是可通过 adb 查看但不响应 adb 命令的设备,不会分配用于测试。 “已分配”设备是当前正在运行测试的设备。
转储 说明
dump logs 为所有正在运行的调用转储 tradefed 日志。
添加 说明
add subplan --name/-n --result-type pass | fail | timeout |notExecuted 创建从上一会话衍生的子计划;此选项会生成可用于运行测试子集的子计划。 唯一的必选项是 --session。其他选项都是可选的,但如果选用这些选项,必须后跟一个值。--result-type 选项可重复使用;例如 add subplan --session 0 --result-type passed --result-type failed 是有效的。

一些命令示例

Tips:

我们测试的时候有两个参数比较重要

a. -–skip-preconditions 跳过一些预置条件的检查,可以减少测试的时间

b. –-skip-device-info 跳过手机信息的收集,可以减少测试的时间

c.--disable-reboot 忽略手机重启

  1. 完整的跑一遍CTS测试

run cts --plan CTS

  1. 单独跑一个模块

run cts --m CtsAppSecurityHostTestCases --skip-preconditions --disable-reboot

  1. 单独跑某一个测试方法

run cts -m 模块名  -t 测试方法 --skip-preconditions --disable-reboot

  1. 运行以前的会话中失败或未执行的所有测试

run cts --retry --skip-preconditions --disable-reboot

(如果测试机版本切换了是不能够使用retry命令的)

  1. 创建从上一会话衍生的子计划

参照表中add subplan命令

  1. 查看所有的subplan

list subplans

  1. 运行子计划

run cts --subplan

Reference:

l https://source.android.com/compatibility/


转载自:Terryho
链接:https://www.jianshu.com/p/a6feab7b468a
來源:简书
 

你可能感兴趣的:(Android CTS环境配置及基础命令介绍(仅针对8.0))