Skip to content

Latest commit

 

History

History
99 lines (74 loc) · 4.79 KB

File metadata and controls

99 lines (74 loc) · 4.79 KB

测试脚本

所有脚本都从仓库根目录解析 APK 和包名。它们不会依赖固定屏幕坐标;需要设备的 脚本必须显式传入 -Serial,或者设置 ANDROID_SERIAL。

发布与仓库管理

这些脚本不需要设备:

python3 scripts/release_check.py check          # VERSION 与 CHANGELOG.md 一致(CI 也会运行)
python3 -m unittest discover -s scripts -p 'test_*.py'
bash scripts/release_build.sh                   # 构建并校验已签名的 arm64 release(需要签名环境变量,见 docs/RELEASE.md)
bash scripts/setup_release_signing.sh           # 一次性:生成发布密钥并写入 Actions secrets
bash scripts/apply_repo_settings.sh --dry-run   # 查看将要应用的仓库规则(见 docs/REPOSITORY.md)

显示环境矩阵

需要一台装了 debug 版 openIME 并已设为默认输入法的设备或模拟器;脚本会改动并还原旋转、字体、 分辨率和深色模式:

python3 scripts/display_matrix_regression.py --serial <serial> [用例名 ...]

常用命令

.\scripts\test_sop.ps1 -Level L0 -Serial <serial>
.\scripts\test_sop.ps1 -Level L1 -Serial <serial>
.\scripts\test_sop.ps1 -Level L2 -Serial <serial> -FreshInstall
.\scripts\test_sop.ps1 -Level L3 -Serial <serial> -FreshInstall
.\scripts\build_ascii.ps1
.\scripts\core_regression.ps1 -Serial <serial>
.\scripts\nine_key_regression.ps1 -Serial <serial>
.\scripts\clear_delete_voice_regression.ps1 -Serial <serial>
.\scripts\voice_lifecycle_regression.ps1 -Serial <serial>
.\scripts\voice_correction_regression.ps1 -Serial <serial>
.\scripts\typing_engine_regression.ps1 -Serial <serial>
.\scripts\extended_regression.ps1 -Serial <serial>
.\scripts\panel_data_regression.ps1 -Serial <serial>
.\scripts\lifecycle_regression.ps1 -Serial <serial>
.\scripts\visual_check.ps1 -Serial <serial>
.\scripts\perf_baseline.ps1 -Serial <serial>
.\scripts\stress_baseline.ps1 -Serial <serial>
.\scripts\upgrade_regression.ps1 -Serial <serial>

test_sop.ps1 是正式统一入口:失败即停,并把步骤日志、前后截图、UI 树、短录屏、 logcat、meminfo、gfxinfo、APK 哈希和设备元数据写入 .local/test-runs/。L2/L3 同时复制 人工验收清单,清单未完成时只能标记“自动化通过”,不能标记发布通过。

查看某一级将执行哪些脚本而不连接设备:

.\scripts\test_sop.ps1 -Level L3 -ListOnly

-FreshInstall 会卸载 openIME 并清除它的本地数据,只能用于允许重置的测试设备。

typing_engine_regression.ps1 覆盖全拼、显式分词、连续长句、扩展词候选、选词后 composition 清空及随后回删目标文本。它使用候选文本和调试状态定位,不依赖屏幕坐标。

clear_delete_voice_regression.ps1 连续执行 3 轮输入、删除键上滑清空、拼音预编辑清空、 逐字删除、长按空格语音回调、final-only 回调和语音后再次删除,并逐步核对编辑器、composition 与语音状态。

voice_lifecycle_regression.ps1 验证模型预热期间打字仍可响应、10 秒内热复用、超时释放 和重新打开后的后台重载。voice_correction_regression.ps1 验证语音结果被用户紧接着 删除和改正后,下一次相同 ASR 原结果会应用完全本地的纠正对。

panel_data_regression.ps1 验证系统剪贴板读取/插入与常用语新增、保存、使用、编辑、删除。 它只创建带唯一编号的测试短语并在通过后删除;建议在模拟器或专用测试设备上执行。

field_matrix_regression.ps1 驱动 debug-only 输入框实验室,检查普通、多行、密码、数字、 电话、邮箱、URL、搜索、聊天、表单、1 万字和选区替换输入框的默认键盘模式与关键提交链路。 security_regression.ps1 检查权限面、密码 composition、logcat 和应用私有文件泄漏。

更新内置 Rime Ice 词典后,可重新生成首次部署期间使用的高频词库:

.\scripts\generate_fast_pinyin_lexicon.ps1

生成脚本会按固定词频、长度和排序规则写入 app/src/main/assets/pinyin_phrases.tsv;该文件需要与来源词典一并提交。

设备选择

设备脚本的优先级为:命令行 -Serial、环境变量 ANDROID_SERIAL、当前唯一已连接 的 adb 设备。如果连接了多个设备且没有明确指定 Serial,脚本会直接失败,避免把 测试输入发送到错误的手机。

输出

  • 构建脚本将 APK 复制到被忽略的 artifacts/openIME-1.0-debug.apk。
  • 性能、压力和升级脚本写入 docs/perf/、docs/stress/ 和 docs/upgrade/。
  • 视觉脚本写入 docs/visual/check/;这些本地截图默认由 .gitignore 排除。
  • 正式 SOP 证据写入 .local/test-runs/,其中设备序列号只保存哈希前缀。