用1行代码搞定自动化测试的设备连接问题

简介: 用1行代码搞定自动化测试的设备连接问题

前言



对于刚开始做自动化测试的新手同学来说,我们还是非常建议大家通过IDE提供的设备窗口去连接测试设备的:



这样不仅可以非常直观地看到设备的画面;还可以在运行脚本时,自动帮大家生成带连接设备参数的运行命令,减少很多不必要的错误:



当然,很多同学也会有 脱离IDE来跑自动化脚本 的需求,这时候就需要我们自己添加设备连接参数。通常我们可以用以下俩种方式来连接设备:


① 在 脚本 中添加连接设备的参数

② 在 运行命令 中添加连接设备的参数


下文将详细讲述在这俩种情况下,具体如何来添加这些连接设备的参数。


用于初始化设备的URI字符串



在初始化设备的时候,我们会用到以下的URI字符串,不同设备的URI字符串格式会略有不同(建议收藏,用到的时候再翻一翻):


1.连接Android手机


# 什么都不填写,默认取当前连接中的第一台手机
Android:///
# 连接本机默认端口连的一台设备号为79d03fa的手机
Android://127.0.0.1:5037/79d03fa
# 用本机的adb连接一台adb connect过的远程设备,注意10.254.60.1:5555其实是serialno
Android://127.0.0.1:5037/10.254.60.1:5555
复制代码


2.连接iOS手机


iOS:///127.0.0.1:8100
复制代码


3.连接Windows窗口


# 连接一个窗口句柄为123456的Windows窗口
Windows:///123456
# 连接一个Windows窗口,窗口名称匹配某个正则表达式
Windows:///?title_re=Unity.*
# 连接windows桌面,不指定任何窗口
Windows:///
复制代码


4.使用了备选连接参数的设备


# 夜神模拟器(127.0.0.1:62001为夜神模拟器的端口号)
Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP&&ori_method=ADBORI
# 设备号为79d03fa的 MIUI11 设备
Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI
复制代码


在脚本中添加连接设备的参数



1.使用 auto_setup 接口


auto_setup 是一个用来 初始化环境 的接口,它接受5个参数。我们可以设置当前脚本所在的路径、 指定运行脚本的设备 、设置默认的log路径、设置脚本父路径和指定截图精度:



其中第二个参数就是指定运行脚本的设备,我们可以在这里 传入待连接设备的URI字符串 ,例如:


# 连接本机默认端口连的一台设备号为SJE5T17B17的手机
auto_setup(__file__,devices=["Android://127.0.0.1:5037/SJE5T17B17"])
复制代码


注意:devices 传入的是一个字符串列表,所以如果需要 连接多台设备 ,直接用 , 隔开多个URI字符串即可:


# 连接本机默认端口连的设备号为123和456的两台手机
auto_setup(__file__,devices=["Android://127.0.0.1:5037/123","Android://127.0.0.1:5037/456"])
复制代码


2.使用 connect_device 接口


connect_device 接口中传入设备的URI字符串即可连接1台设备:


dev = connect_device("Android://127.0.0.1:5037/SJE5T17B17") 
复制代码



如果需要连接多台设备,可以编写多条的 connect_device 脚本,并且用 set_current 来切换到当前使用设备:


# 连上第一台手机
dev1 = connect_device("Android://127.0.0.1:5037/serialno1")
# 连上第二台手机
dev2 = connect_device("Android://127.0.0.1:5037/serialno2")
# 切换当前操作的手机到序列号为serialno1的手机
set_current("serialno1")
复制代码


3.使用 init_device 接口

init_device 接口只需要传入 设备平台和设备的uuid 即可,参数详情可以查看下图:


init_device(platform="Android",uuid="SJE5T17B17")
复制代码



在命令行中添加设备连接的参数



在本地命令行运行脚本时,如果脚本中没有任何连接设备的语句,我们就需要通过 --device URI字符串 来连接设备:


airtest run D:/test/test_connect.air --device Android:///
复制代码


否则命令行会提示你没有连接设备:



并且脚本中如果涉及了需要连接设备才能够执行的脚本,比如 touch(截图) 等,则会出现如下报错:



另外,如果你的设备需要添加备选的连接参数才可以正常连接,比如 模拟器或者MIUI11 的设备,则在连接设备时也需要把这些参数加上:


airtest run D:/test/test_connect.air --device Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP^&^&ori_method=ADBORI
复制代码

注意: && 在Windows平台下需要转义成 ^&^& ;在MAC平台下需要转义成 /&/&。否则有可能出现因运行命令被截断而产生的各种报错。


Airtest官网:airtest.netease.com/

Airtest教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b

相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
309 0
|
5月前
|
存储 算法 5G
可测多种时间频率信号精度的设备有哪些、标准时钟测试仪、gps时间校验仪
时间频率综合测试仪用于分析时间频率信号的精度与特性,支持多种标准,如B码、NTP、PTP等。其发展趋势包括:1. 高精度化,满足5G等新兴领域需求;2. 智能化,实现自动校准与故障诊断;3. 集成化多功能化,整合多参数测量功能;4. 小型化便携化,便于现场使用;5. 高速实时处理,提升数据处理能力;6. 网络化远程控制,支持远程操作与管理。例如SYN5104型设备,在多项指标上达到高精度,并具备网络接口和自动存储功能。
|
7月前
|
druid Java 数据库连接
【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接
【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接
|
7月前
|
druid Java 数据库连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
|
7月前
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
11月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
846 1
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
测试技术 Linux Android开发
i2c总线及设备测试工具i2ctools:i2cdetect、i2cdump、i2cget、i2cset
本文介绍了i2ctools工具集的使用,包括i2cdetect、i2cdump、i2cget和i2cset,这些工具有助于I2C设备的开发和调试,通过检测设备、读写寄存器和数据块来提高开发效率。
2738 1
|
安全 物联网 物联网安全
物联网设备的安全性评估与测试:技术深度解析
【7月更文挑战第7天】物联网设备的安全性评估与测试是保障物联网系统安全运行的重要环节。通过实施全面的安全性评估与测试,可以发现并修复设备中存在的安全漏洞和风险,提高整体安全防护能力。然而,由于物联网设备的多样性和复杂性以及安全标准与监管的缺失等挑战,测试工作需要不断创新和优化。未来,随着技术的不断进步和实践的深入,物联网设备的安全性评估与测试将更加完善和高效。
|
API 网络架构 Windows
【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)
【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)
106 0