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

需不同ADB版本的手机与模拟器实现Appium并行测试方案咨询

实现手机与模拟器的Appium并行测试方案

当然可以实现!核心思路是给两个Appium服务实例分别指定对应版本的ADB,同时用不同的端口避免冲突,让各自服务连接对应的设备。具体步骤如下:

1. 准备两个版本的ADB

  • 下载ADB 1.0.31和1.0.36版本,分别解压到独立的文件夹,比如:
    • C:\adb\adb_1.0.31(给Memu模拟器用)
    • C:\adb\adb_1.0.36(给Kiano手机用)
  • 验证每个文件夹里的ADB版本是否正确,打开命令行进入对应文件夹,执行:
    adb version
    
    确认输出的版本号和文件夹对应的一致。

2. 启动两个独立的Appium服务

你需要启动两个Appium服务,每个服务绑定不同的端口,并指定对应的ADB路径:

启动给Memu用的Appium服务(端口4723)

打开命令行,执行:

appium -p 4723 --adb-path C:\adb\adb_1.0.31\adb.exe

启动给Kiano手机用的Appium服务(端口4725)

再打开一个新的命令行窗口,执行:

appium -p 4725 --adb-path C:\adb\adb_1.0.36\adb.exe

注意:端口号只要不冲突就行,4723是默认端口,第二个服务换个比如4725、4727都可以。

3. 配置测试脚本连接对应服务

在你的测试代码里,分别为手机和模拟器创建不同的Desired Capabilities,指定对应的Appium服务地址和设备UDID:

针对Memu模拟器的Capabilities示例

desired_caps_memu = {
    "platformName": "Android",
    "deviceName": "Memu",
    "udid": "127.0.0.1:21503",  # 替换成你的Memu设备UDID,可通过adb devices获取
    "appPackage": "com.your.app",
    "appActivity": ".MainActivity",
    "automationName": "UiAutomator2"
}
# 连接到端口4723的Appium服务
driver_memu = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps_memu)

针对Kiano手机的Capabilities示例

desired_caps_kiano = {
    "platformName": "Android",
    "deviceName": "Kiano",
    "udid": "XXXXXX",  # 替换成你的Kiano手机UDID,可通过adb devices获取
    "appPackage": "com.your.app",
    "appActivity": ".MainActivity",
    "automationName": "UiAutomator2"
}
# 连接到端口4725的Appium服务
driver_kiano = webdriver.Remote("http://localhost:4725/wd/hub", desired_caps_kiano)

4. 关键注意事项

  • 设备UDID获取:分别在两个ADB文件夹下执行adb devices,获取对应设备的UDID(Memu通常是127.0.0.1:xxxx,手机是一串字符)。
  • 避免系统ADB干扰:不要把这两个ADB路径加到系统PATH里,确保Appium服务用的是你指定的路径。
  • 端口冲突排查:如果启动服务时报端口被占用,换个未使用的端口即可,可用netstat -ano | findstr 端口号查看占用情况。
  • 并行执行测试:确保你的测试框架支持并行运行(比如用TestNG、pytest-xdist等),这样两个设备的测试就能同时进行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:59:17