You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何在自动化测试环境处理Google UMP同意表单?

Flutter应用UMP同意表单自动化测试解决方案

一、本地integration_test环境处理

UMP同意表单是原生控件,Flutter的integration_test默认只能识别Flutter渲染的元素,所以得用原生测试逻辑来交互:

  • 直接通过IntegrationTestWidgetsFlutterBinding调用原生查找动作:
    Android端按文本定位点击:
    await IntegrationTestWidgetsFlutterBinding.instance?.performAction(
      const AndroidUiAutomator('text("同意")').click(),
    );
    
    iOS端按标签定位点击:
    await IntegrationTestWidgetsFlutterBinding.instance?.performAction(
      const IOSXcuElement('label == "同意"').tap(),
    );
    
  • 测试前建议加2-3秒延迟,或者用原生元素存在的断言等待表单加载,避免点击时机过早。

二、Google Play预启动报告优化

Play预启动的Robo测试无法自动识别UMP表单,需要添加自定义Robo脚本引导测试流程:

  1. 在Android项目的android/app/src/main/res/raw目录下创建robo_script.json,用resourceId定位更精准(UMP同意按钮Android端统一resourceId为com.google.android.ump:id/consent_button_accept):
[
  {
    "eventType": "DELAY",
    "delayTimeMs": 3000
  },
  {
    "eventType": "CLICK",
    "target": {
      "resourceId": "com.google.android.ump:id/consent_button_accept"
    }
  }
]
  1. 在AndroidManifest.xml中添加meta-data指定脚本路径:
<meta-data
  android:name="android.intent.extra.ROBO_SCRIPT"
  android:resource="@raw/robo_script" />

配置后,预启动测试会先等待表单加载,点击同意后继续爬取应用内界面。

三、Firebase Test Lab的Robo脚本实现

Firebase Test Lab的Robo测试逻辑和Play预启动一致,制作简短脚本即可:

  • 针对德语环境的「Zustimmen」按钮,文本精准匹配脚本:
[
  {
    "eventType": "DELAY",
    "delayTimeMs": 2000
  },
  {
    "eventType": "CLICK",
    "target": {
      "text": "Zustimmen",
      "textExact": true
    }
  }
]
  • 用通用resourceId的脚本(适配多语言环境):
[
  {
    "eventType": "DELAY",
    "delayTimeMs": 2000
  },
  {
    "eventType": "CLICK",
    "target": {
      "resourceId": "com.google.android.ump:id/consent_button_accept"
    }
  }
]

创建测试时,选择「自定义Robo脚本」上传该文件,测试过程会自动执行点击同意操作。

内容的提问来源于stack exchange,提问作者rph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:12:21