实例讲解Appium如何连接多台设备 您所在的位置:网站首页 scott自动化设备 实例讲解Appium如何连接多台设备

实例讲解Appium如何连接多台设备

2023-06-11 01:38| 来源: 网络整理| 查看: 265

我们在做app自动化的时候,若要考虑兼容性问题,需要跑几台设备,要是一台一台的跑比较耗时,因此需要考虑使用多线程来同时操作多台设备。

1.我们拿两台设备来模拟操作下,使用:adb devices查看连接状况,获取到设备名称。

2.获取需要操作app的包名和页面名称。(前提该设备已经打开了app)

3.设置初始配置信息。

  from appium import webdriver   import threading   # 设备一   def run_01():    desired = {    "platformName": "Android", # 手机系统    "platformVersion": "7.1.2", # 手机系统版本    "deviceName": '127.0.0.1:62001', # 连接的设备(adb devices)    "automationName": "UiAutomator2",    "appPackage": "", # app包名    "appActivity": "", # app的启动页面    "autoGrantPermissions": "true", # 默认允许app获取相关权限    "noReset": True # 保留登录模式    }    driver_01 = webdriver.Remote(command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired)    # driver(driver_01)   # 设备二   def run_02():    desired = {    "platformName": "Android", # 手机系统    "platformVersion": "11", # 手机系统版本    "deviceName": '90bf8faf', # 连接的设备(adb devices)    "automationName": "UiAutomator2", # 自动化测试框架 (1.4以上的appium不用写)    "appPackage": "", # app包名    "appActivity": "", # app的启动页面    "autoGrantPermissions": "true", # 默认允许app获取相关权限    "noReset": True # 保留登录模式    }    driver_02 = webdriver.Remote(command_executor="http://127.0.0.1:4720/wd/hub", desired_capabilities=desired)    # driver(driver_02)

不同的设备启动配置端口号是不一样的,我这里一个是4723,一个是4720。

4.打开页面后操作元素,这里只简单的关闭页面。

  def driver(drivers): # 元素操作方法    time.sleep(5)    drivers.quit()

5.使用多线程运行多台设备 

  if __name__ == '__main__':    threading.Thread(target=run_01).start()    threading.Thread(target=run_02).start()

6.启动appium服务

启动指令:appium --allow-cors -p 端口号 -U 设备名称。

我这边是两台设备,因此需要启动两个服务,启动完之后就可以运行main函数了。

7.以上实例是将配置信息写在了代码中,若是有十几二十几台设备的话,这种写法有点麻烦,我们可以将配置信息的产生封装在json文件中使用时用load()方法去取参数即可。

1)创建一个json文件存放配置信息。

  [{    "url": "http://127.0.0.1:4723/wd/hub",    "desired": {    "platformName": "Android",    "platformVersion": "7.1.2",    "deviceName": "127.0.0.1:62001",    "automationName": "UiAutomator2",    "appPackage": "",    "appActivity": "",    "autoGrantPermissions": "true",    "noReset": true}    }, {    "url": "http://127.0.0.1:4720/wd/hub",    "desired":{    "platformName": "Android",    "platformVersion": "11",    "deviceName": "90bf8faf",    "automationName": "UiAutomator2",    "appPackage": "",    "appActivity": "",    "autoGrantPermissions": "true",    "noReset": true}    }]

2)读取配置信息,这里直接贴完整代码了。 

  def test_run(url, desired):    driver_02 = webdriver.Remote(command_executor=url, desired_capabilities=desired)    driver(driver_02)   def driver(drivers): # 元素操作方法    time.sleep(5)    drivers.quit()   if __name__ == '__main__':    with open("./appium.json", mode="r", encoding="utf-8") as f:    data = list(json.load(f))    for i in range(0, len(data)):    a = threading.Thread(target=test_run, args=(data[i]["url"], data[i]["desired"]))    a.start()

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

图片

整套资料获取

  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有