针对Android 15 GTS-Interactive测试的一键自动化脚本实现方案,结合GTS测试工具、ADB命令和自动化框架设计:
一、脚本设计思路
- 核心工具:基于
cts-tradefed
框架执行GTS测试命令(参考网页7的GTS指令)。 - 环境初始化:通过ADB命令自动配置设备(如开发者模式、语言设置、安装依赖APK)。
- 媒体文件预置:使用官方提供的
copy_media.sh
脚本提前推送测试媒体文件(需从CTS媒体包中获取)。 - 测试执行与重试:支持全量测试、模块重试、失败用例重跑(通过
--retry
参数)。
二、脚本实现示例
#!/bin/bash
# 1. 设备初始化配置
adb root
adb remount
adb shell settings put global development_settings_enabled 1
adb shell settings put global adb_enabled 1
adb shell settings put global stay_on_while_plugged_in 3
adb shell settings put secure sleep_timeout 86400000 # 保持屏幕常亮
# 设置语言和时区
adb shell "setprop persist.sys.language en"
adb shell "setprop persist.sys.country US"
adb shell "setprop persist.sys.timezone America/Chicago"
# 安装测试依赖APK(需提前下载)
adb install CtsDelegatingAccessibilityService.apk
adb install CtsDeviceAdmin.apk
# 2. 推送媒体文件(需下载CTS媒体包)
cd android-cts-media-1.0/
./copy_media.sh all # 根据设备分辨率调整参数,如1280x720
# 3. 启动GTS测试
cd /path/to/android-gts-12_R2/tools
./gts-tradefed <<EOF
run gts --plan GTS-Interactive-12_R2 --shard-count 3 --disable-reboot # 禁止测试中自动重启
exit
EOF
# 4. 失败用例重试
./gts-tradefed <<EOF
run retry --retry 1 --plan GTS-Interactive-12_R2 # 重试最近一次失败的Session
exit
EOF
# 5. 生成测试报告(结果默认保存在repository/results/目录)
latest_session=$(ls -t repository/results/ | head -1)
cp -r repository/results/$latest_session ./gts_report
echo "测试报告已生成:gts_report/testResult.xml"
三、关键参数说明
- 分片测试:
--shard-count 3
表示分3个进程并行测试,缩短时间。 - 禁用重启:
--disable-reboot
防止测试过程中设备意外重启导致中断。 - 重试机制:
run retry --retry 1
自动重试最近一次失败的测试会话。 - 环境配置:通过ADB命令设置开发者选项、语言、时区等,避免手动操作。
四、优化建议
- 多设备支持:通过
-s <设备序列号>
指定多设备并行测试(需调整分片数)。 - 结果解析:集成Python脚本解析
testResult.xml
,自动提取失败用例并生成摘要。 - 错误监控:添加ADB日志捕获(
adb logcat -f gts_log.txt
),便于调试测试失败原因。 - 容器化部署:使用Docker封装测试环境(如Ubuntu 14.04 + JDK 8),避免系统依赖问题。
五、注意事项
- 网络要求:确保设备能访问Google服务器(如GPS辅助数据需连接
supl.google.com:7276
)。 - 版本匹配:GTS测试包需与Android 15版本严格对应(参考网页7的月度版本表)。
- 设备兼容性:需使用User版本系统镜像,且通过Google认证成为合作伙伴。
如需完整脚本或更详细的参数调整,可参考Google官方文档或CTS/GTS测试指南。