无法连接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
相关产品推荐
相关产品推荐

