一、多台设备连接电脑

adb devices查看设备序列号和连接状态

 

二、启动多个appium服务

开不同的端口,启动多个appium服务;

如果是桌面版appium:

在应用程序中找到appium,右键-》显示包内容,

 点开macOS文件夹,能够看到appium可执行文件;

 多次点击可以打开多个appium服务;

针对每个设备新开一个端口;

打开appium服务器,选择advanced;

 

设置’Sever Port’,‘Bootstrap Port’,按照递增1的规律,点击’Save As Presets’命名并保存;

 

点击’Presets’,选中想要启动的预设值端口,点击’Start Server V1.21.0’,后面可以根据需要几个安卓手机,启动几个appium服务;

 效果:

如果电脑上装的是桌面版的appium,好像不能通过命令启动。

如果是命令行appium服务:

  • Appium服务器端口:4723,Bootstrap Port为4724

  • Appium服务器端口:4725,Bootstrap Port为4726

appium -a 127.0.0.1 -p 4723 -bp 4728 --chromedriver-port 9519 -U 255d50d7 --session-override

 三、维护设备参数信息

把参数统一维护在一个配置文件里;device_config.json

[{
  "url": "http://127.0.0.1:4723/wd/hub",
  "desired_caps" : {
            "platformName": "Android",
            "platformVersion": "11",
            "deviceName": "oneplus9",
            "udid":"255d50d7",
            "appActivity": "com.xxx.MainActivity",
            "appPackage": "包名",
            "automationName": "UiAutomator2",
            "autoGrantPermissions": "true",
            "noReset": true,
            "newCommandTimeout":300
  }
}, {
  "url": "http://127.0.0.1:4725/wd/hub",
  "desired_caps" : {
            "platformName": "Android",
            "platformVersion": "12",
            "deviceName": "xiaomi12",
            "udid":"e073ee1",
            "appActivity": "com.xxx.MainActivity",
            "appPackage": "包名",
            "automationName": "UiAutomator2",
            "autoGrantPermissions": "true",
            "noReset": true,
            "newCommandTimeout":300
        }

  }

]

四、多进程或者多线程进行设备与appium的连接,获取driver

    
def connect_appium(url,desired_caps):
    #启动appium服务
    #进行设备连接
    driver = webdriver.Remote(command_executor=url,desired_capabilities=desired_caps)
    return driver

if __name__ == '__main__':

    with open("device_config.json", "r") as f:
        data = list(json.load(f))

    for i in match_list:
        a = threading.Thread(target=connect_appium,args=(data[i]["url"],data[i]["desired_caps"]))
        a.start()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐