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

Karate移动端真实设备测试连接问题求助(非模拟器)

解决Karate连接Android真实设备问题

一、先确保真实设备能被ADB识别

不管用USB还是WiFi调试,核心前提是让设备能被adb检测到:

USB调试连接步骤

  • 开启设备「开发者选项」:进入设置 → 关于手机 → 连续点击「版本号」7次,直到提示开启成功
  • 打开「USB调试」「USB安装」(部分设备需开启「安装未知应用」权限)
  • 用USB线连接电脑,设备弹出授权提示时,勾选「始终允许此计算机」并确认
  • 电脑终端执行命令:adb devices,若能看到设备序列号,说明连接成功

WiFi调试连接步骤(无线场景)

  • 先通过USB连接设备,确保adb能识别
  • 终端执行:adb tcpip 5555(设置设备监听5555端口)
  • 拔掉USB线,在设备设置→WLAN→已连接网络详情中查看WiFi IP地址
  • 终端执行:adb connect [设备IP]:5555,例如adb connect 192.168.1.100:5555
  • 执行adb devices确认设备已连接

二、修改Karate测试代码配置

你的现有配置是针对模拟器的,需调整desiredConfig参数适配真实设备:

@android_sample_test
Feature:  Simple test with appium

Scenario: launch app on real device
    * configure driver =
    """
    {
      type: 'android',
      webDriverPath : "/wd/hub",
      start: true,
      httpConfig : { readTimeout: 120000 }
    }
    """
    * def desiredConfig =
    """
    {
      "app":"/home/yabesh/Downloads/UiDemo.apk",
      "newCommandTimeout" : 300,
      "platformVersion" : "9.0", // 替换为你真实设备的Android版本,比如"10""11"
      "platformName" : "Android",
      "connectHardwareKeyboard" : true,
      "deviceName" : "真实设备型号", // 可用adb devices里的序列号,或设备型号如"Pixel 5"
      "automationName" : "UiAutomator2",
      "udid": "设备序列号" // 多设备连接时必填,确保指定目标设备
      // 移除avd参数,该参数仅适用于模拟器
    }
    """
    * driver { webDriverSession: { desiredCapabilities : "#(desiredConfig)"} }
    * delay(5000).screenshot()
    * delay(2500)
    * close()

三、常见问题排查

  • adb无法识别设备:换USB线/端口,确认设备已授权电脑,重启adb服务(adb kill-server → adb start-server)
  • 测试提示找不到设备:检查deviceName或udid是否正确,确认Appium服务无端口冲突(可手动关闭Appium进程后重试)
  • APK安装失败:开启设备「未知来源应用安装」权限,确保APK与设备架构兼容(如arm64/x86)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:50:34