AirtestProject 用 1 行代码搞定自动化测试的设备连接问题
此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
前言
对于刚开始做自动化测试的新手同学来说,我们还是非常建议大家通过 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