当前位置: 首页 > news >正文

appium怎样连接多台设备

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

我们在做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.打开页面后操作元素,这里只简单的关闭页面(具体方法可参考:https://www.cnblogs.com/lihongtaoya/p/16988855.html)

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()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.jsqmd.com/news/317397/

相关文章:

  • 2026年本地靠谱的外教机构哪家好,补习班/成绩提升/新初一补课/新高一补课/新高一补习班/新高一补课班,外教老师怎么选
  • 2026年温室大棚厂家推荐:横向对比与长期测试排名,直击效率与兼容性痛点
  • 洗发水控油去屑止痒哪个好?2026年去屑止痒控油洗发水排行榜,推荐这几款!
  • 2026口碑好的防脱洗发水品牌,国产防脱发洗发水哪个好用,国家正规无硅油防脱生发洗发水推荐
  • 认证防脱洗发水最好的品牌盘点 男士防脱洗发水口碑最好的前十名推荐
  • 2026年三峡旅游直直通车产品推荐:跨域专线服务深度评测,直击自由行效率与安全痛点
  • 2026年热门健身学校及教练培训基地、机构推荐
  • vscode 中使用 QT 6.8相关配置
  • 2026可靠制氮机TOP5企业推荐
  • Kubeadm搭建的K8S集群怎么更新证书
  • 2026年适合办公室吃的健康零食品牌:办公室下午茶小包装零食推荐挑选指南和选购建议
  • 2026最新必读:采购五轴机床首选哪个平台好?
  • 2026年三峡旅游直直通车产品推荐:基于跨域专线实测评价,直击景区衔接与效率痛点
  • 2026年三峡旅游直直通车产品推荐:深度评测与排名,覆盖家庭与自由行场景痛点
  • 艾体宝方案 | 守护核心数据资产:文件服务器访问与敏感数据防泄漏实践
  • 艾体宝方案 | AI时代的数据安全与Lepide智能治理方案
  • 好写作AI:当“意识流”艺术写作,遇见“结构化”AI队友
  • 好写作AI:当你的回归结果开始“讲故事”,AI是第一个听众兼挑刺专家
  • 新手必看|如何在期刊上发表论文?实操干货+避坑指南
  • 2026年苏州硕士留学机构前十诚信排名,服务品质全解析
  • 2026年新加坡留学机构前十,如何评估其负责程度
  • 2026年长沙留学机构排名,这些机构值得信赖
  • 合肥留学机构口碑排名揭晓,性价比高机构全面推荐
  • 济南硕士留学机构前十盘点,经验丰富顾问助您留学成功
  • 探索郑州硕士留学机构排名,寻找性价比高的优质选择
  • 郑州留学中介十强专业解析,2026年最新趋势与建议
  • 2026年夜游长江经典旅游线路推荐:都市夜景与文化沉浸双维度评测,附权威产品排名
  • 2025罐头机生产风云榜:口碑爆棚的肉制品罐头机厂家揭秘!市场上专业的罐头机公司博锐层层把关品质优
  • 2026全自动咖啡机哪个牌子好哪个品牌合适:哪家产品更适合商用场景
  • 探讨昆明有名的四合院设计公司,选哪家更靠谱