环境配置
蓝牙 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 隧道代理列表。
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版本)
请注意正式送测版本一定是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压缩文件
执行 ./android-cts/tools/cts-tradefed 进入cts命令行
下面是从android官网上摘抄下来的命令参考
主机 | 说明 |
---|---|
help | 显示最常用命令的摘要 |
help all | 显示可用命令的完整列表 |
version | 显示版本。 |
exit | 正常退出 CTS 控制台。所有当前正在运行的测试完成后,控制台将关闭。 |
运行 | 说明 |
run cts | 运行默认的 CTS 计划(即完整的 CTS 调用)。 在测试过程中,CTS 控制台可以接受其他命令。 如果没有连接任何设备,CTS 台式机(或主机)将等待连接设备后再开始测试。 如果连接了多台设备,则 CTS 主机将自动选择一台设备。 |
--plan |
运行指定的测试计划。 |
--module/-m |
运行指定的测试类和/或方法。例如,run cts --module CtsGestureTestCases 会执行手势测试模块(该命令可以简化为 run cts -m Gesture)。 run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes会运行指定的包、类或测试。 |
--subplan |
运行指定的子计划。 |
-- module/-m |
运行指定的模块并进行测试。例如,run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 会运行指定的包、类或测试。 |
--retry | 重新尝试运行在以前的会话中失败或未执行的所有测试。 使用 list results 获取会话 ID。 |
--shards |
将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。 |
--serial/-s |
在特定设备上运行 CTS。 |
--include-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 |
创建从上一会话衍生的子计划;此选项会生成可用于运行测试子集的子计划。 唯一的必选项是 --session。其他选项都是可选的,但如果选用这些选项,必须后跟一个值。--result-type 选项可重复使用;例如 add subplan --session 0 --result-type passed --result-type failed 是有效的。 |
Tips:
我们测试的时候有两个参数比较重要
a. -–skip-preconditions 跳过一些预置条件的检查,可以减少测试的时间
b. –-skip-device-info 跳过手机信息的收集,可以减少测试的时间
c.--disable-reboot 忽略手机重启
run cts --plan CTS
run cts --m CtsAppSecurityHostTestCases --skip-preconditions --disable-reboot
run cts -m 模块名 -t 测试方法 --skip-preconditions --disable-reboot
run cts --retry --skip-preconditions --disable-reboot
(如果测试机版本切换了是不能够使用retry命令的)
参照表中add subplan命令
list subplans
run cts --subplan
Reference:
l https://source.android.com/compatibility/
转载自:Terryho
链接:https://www.jianshu.com/p/a6feab7b468a
來源:简书