# 原生能力隔离验收 夹具无网络与额外权限,包名 `com.artemis.fixture`,只记录自身控件值与触摸事件。需要已安装的 Android SDK/JDK,不会下载依赖。生成物写入 `artifacts/`,不提交设备输出。 1. `uv run python tests/native_actions_fixture/build.py --output artifacts/native-actions-fixture/fixture.apk` 2. 在指定且空闲设备安装该 APK;启动 `com.artemis.fixture/.MainActivity`。 3. 使用 ARTEMIS 探索该页面:`fixture.range`、`fixture.editor`、`fixture.scroll`、`fixture.bottom` 与 `fixture.touch`。 4. `uv run python tests/native_actions_fixture/verify_device.py --serial SERIAL --output artifacts/native-actions-fixture/verification --repeats 5` 5. 使用正式 Flash/Pro 复跑,并检查工具记录、APP 数值与最终验收;探索结果不能代替正式模式。 设备脚本获取现有设备锁,通过生产 driver/actuator 执行;会正常升级打包的辅助服务,并重建**自身测试 Activity**使计数可重复,不清空数据、不停止用户 APP。它验证精确设值、选区/替换/IME、条件等待、五轮缩放/旋转/连续接触及两轮往返滚动;软键盘关闭后再测试触摸区域。结果 JSON 保留每步回执,失败样本不删除。脚本保留夹具供取证,测试结束后由操作者恢复原 APP;需要卸载时仅卸载夹具。 `uv run python tests/native_actions_fixture/verify_cancellation.py --serial SERIAL --output artifacts/native-actions-fixture/cancellation` 验证先取消后注册、执行中的双指取消、实际释放及返回后没有新增触点。它要求夹具已在前台、触摸区与重置按钮完整可见、键盘关闭且无窗口遮挡;前置条件不足会写 blocked 报告,不自动修复界面。判断键盘以系统 `mInputShown` 为准,IME 内部 `mIsInputViewShown` 不能单独证明窗口可见。 `uv run python tests/native_actions_fixture/touch_jvm_harness.py` 在临时目录编译实际 Java 源码并模拟回调,验证取消、迟到回调与输入所有权。它不连接设备,不能证明 Android 的实际触摸交付。 `uv run python tests/native_actions_fixture/control_windows_jvm_harness.py` 编译生产窗口解析及原生控件实现,模拟多窗口唯一性、读失败、搜索预算、取消与写入遮挡。覆盖实际选区工具栏/手柄形状、区域空洞及多个遮挡合并;同样不操作设备。 构建脚本使用临时测试签名。重建后签名可能变化;如安装提示签名冲突,可卸载**这个夹具**再装,不卸载用户 APP 或 ARTEMIS 助手来绕过问题。