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

无法连接Dart Observatory URL的Flutter自动化测试问题求助

Flutter应用Appium+WebdriverIO自动化测试连接Dart Observatory失败解决方案

1. 确认Debug APK的调试配置

  • 要求开发确认提供的debug.apk未被加固,且在Flutter项目的android/app/src/main/AndroidManifest.xml中包含以下配置,确保Dart Observatory端口开启:
<meta-data
    android:name="flutterEmbedding"
    android:value="2" />
<meta-data
    android:name="dart.vm.service.port"
    android:value="8181" />

Debug包默认开启调试,但加固或修改后的包可能关闭该端口,需重新获取未修改的debug版本。

2. 手动配置ADB端口转发

Dart Observatory的设备端口需要映射到本地,执行以下命令(替换日志中的实际端口42545):

adb reverse tcp:42545 tcp:42545

也可通用转发常用Flutter调试端口:

adb reverse tcp:8181 tcp:8181
adb reverse tcp:42545 tcp:42545

3. 修正WebdriverIO配置文件

在wdio.android.conf.ts的capabilities中补充Flutter相关配置:

capabilities: [{
    platformName: 'Android',
    'appium:deviceName': 'Pixel API 31',
    'appium:platformVersion': '12.0',
    'appium:app': '/绝对路径/到你的/debug.apk',
    'appium:automationName': 'Flutter', // 必须指定为Flutter
    'appium:autoGrantPermissions': true,
    'flutter:debugConnectTimeout': 30000, // 延长连接超时时间
    'flutter:observatoryWsUri': 'ws://127.0.0.1:42545/eCMb9Es1JfQ=/ws' // 直接填入日志中的URL
}]

同时确认项目依赖已安装,package.json需包含:

"devDependencies": {
    "appium-flutter-driver": "^2.0.0",
    "webdriverio": "^8.0.0"
}

执行npm install确保依赖生效。

4. 重启相关服务

  • 关闭Appium服务器:pkill -f appium
  • 重启ADB服务:
adb kill-server
adb start-server
  • 重启Pixel API 31 AVD,重新启动Appium服务器后再运行测试命令:npx wdio run config/android/wdio.android.conf.ts

5. 验证端口可达性

在浏览器中访问http://127.0.0.1:42545,若能打开Dart Observatory页面,说明端口连接正常;若无法访问,需重新检查端口转发或APK配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:57:19