news 2026/6/10 13:14:37

appium如何连接多台设备

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
appium如何连接多台设备

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

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

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)

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

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 7:43:55

PB级数据迁移挑战:Oracle故障响应优化实战

一、大数据量下的数据库挑战随着企业数字化转型的推进,越来越多的企业开始考虑将原有的Oracle数据库迁移到国产数据库平台。然而,在大数据量场景下,尤其是PB级数据,迁移过程中的故障响应时间成为关键挑战之一。传统的数据库架构在…

作者头像 李华
网站建设 2026/6/10 7:13:47

Soft TF-IDF算法与传统TF-IDF的区别

Soft TF-IDF相似度算法是传统TF-IDF方法的一种优化变体,它通过引入平滑处理和动态阈值策略,使文本相似度计算更加灵活和准确。Soft TF-IDF的核心思想是对传统TF-IDF算法的权重计算和相似度判断进行"软化"处理,以解决传统方法在极端…

作者头像 李华
网站建设 2026/6/7 13:48:19

AutoGPT能否用于新闻摘要生成?媒体行业应用前景

AutoGPT能否用于新闻摘要生成?媒体行业应用前景 在信息洪流席卷每一个角落的今天,媒体机构每天面对的是成千上万条来自全球各地的新闻源。传统编辑团队即便全天候轮班,也难以实时捕捉、筛选并整合关键事件。更棘手的是,读者对“快…

作者头像 李华
网站建设 2026/6/9 3:43:47

借助拼多多API,轻松分析竞品数据,制定差异化策略!

引言 在竞争激烈的电商环境中,及时了解竞品动态、分析市场格局是制定有效营销策略的关键。手动收集数据不仅效率低下,还容易遗漏关键信息。拼多多开放平台提供的API接口,为我们自动化获取和分析竞品数据提供了强大的技术支撑。本文将介绍如何…

作者头像 李华
网站建设 2026/6/7 22:23:52

3、DB2 Express - C 安装与相关特性介绍

DB2 Express - C 安装与相关特性介绍 1. DB2 相关特性 DB2 在数据库领域有着丰富的特性和多样的产品。 1.1 SQL 兼容性 虽然许多数据库供应商遵循 SQL 92 和 SQL/PSM 标准,但并非支持标准的所有特性,同时还支持一些标准未包含的特性。DB2 9.7 的 SQL 兼容性特性使 DB2 除…

作者头像 李华
网站建设 2026/6/9 3:51:28

6、DB2 架构与操作指南

DB2 架构与操作指南 1. DB2 工具使用注意事项 在使用 DB2 工具时,在 Windows Vista 系统上有一些特殊的考虑。由于 Windows Vista 的用户访问控制(UAC)功能,即使你的用户 ID 是本地管理员,应用程序也会以标准权限启动。这可能导致 DB2 工具或命令虽然能运行,但会报告访…

作者头像 李华