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

如何用Airtest脚本连接无线Android设备?

之前我们已经详细介绍过如何用AirtestIDE无线连接Android设备,它的关键点在于,需要先 adb connect 一次,才能点击 connect 按钮无线连接上该设备:

但是有很多同学,在使用纯Airtest脚本的形式连接无线设备时,还是遇到了一些困难。今天我们就继续无线连接这个话题,聊聊怎么用纯Airtest脚本连接无线Android设备。

2. 已知无线设备ip的连接方式

1)前置条件

假设我们的电脑,已经与我们的手机建立了无线连接的关系,且我们设置的通信端口为5555:

adb devices 能查询到我们的无线设备)

2)示例脚本

 
  1. # -*- encoding=utf8 -*-

  2. __author__ = "AirtestProject"

  3. from airtest.core.api import *

  4. auto_setup(__file__)

  5. connect_device("Android://127.0.0.1:5037/10.228.xx.xx:5555")

  6. snapshot(msg="尝试给无线设备截图")

需要注意,Android连接字符串为:Android://adbhost:adbport/serialno;对于无线设备,adbhost:adbport仍为本机adb:127.0.0.1:5037;serialno为无线设备的ip地址和port。

3. 未知无线设备ip的连接方式

1)前置条件

假设我们的电脑与手机,还未建立无线连接关系;但是当前手机wifi与电脑处在同一个局域网下,并且:

  • 用usb线连接了手机和电脑

  • 打开了手机USB调试选项、无线调试选项

2)示例脚本

示例脚本将自动完成:

  • 设置无线通信端口

  • 通过有线连接的方式,获取设备ip

  • 返回无线连接的字符串列表

 
  1. # -*- encoding=utf8 -*-

  2. __author__ = "AirtestProject"

  3. from airtest.core.api import *

  4. #导入了 airtest 库中的 ADB 类,这个类提供了与 Android 设备进行交互的方法

  5. from airtest.core.android.adb import ADB

  6. auto_setup(__file__)

  7. def adb_connect_devices():

  8. # 创建 ADB 实例

  9. adb = ADB()

  10. #获取设备的设备号列表

  11. devices = adb.devices()

  12. device_list = []

  13. for dev in devices:

  14. #设置端口号

  15. adb.cmd(f"-s {dev[0]} tcpip 5555", device=False)

  16. sleep(2)

  17. #初始化设备,并且设置为当前设备

  18. dev_connect = connect_device(f"Android:///{dev[0]}")

  19. # 获取当前设备IP地址

  20. ip = dev_connect.get_ip_address()

  21. #print(f"dev[0]的IP是{ip}")

  22. adb.cmd(f"connect {ip}:5555", device=False)

  23. device_list.append(f"Android://127.0.0.1:5037/{ip}:5555")

  24. return device_list

  25. if __name__ == '__main__':

  26. r = adb_connect_devices()

  27. print(r)

拿到返回的无线设备字符串列表之后,我们就可以断开数据线连接,愉快的使用无线连接方式了!

['Android://127.0.0.1:5037/10.228.xx.xx:5555', 'Android://127.0.0.1:5037/10.227.xx.xx:5555']

3)输出空列表

当我们看到返回的无线设备字符串列表为空时,应确保设备和电脑是成功连接的,并且打开usb调试和无线调试选项:

4. 小结

关于脚本连接无线设备的教程就到这里啦,更多教程可以查看我们的往期文章,或者有什么特别想看的教程,也欢迎给我们留言!

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

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

 

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

http://www.lryc.cn/news/325292.html

相关文章:

  • c语言函数大全(C开头)
  • 初始Redis关联和非关联
  • Redis 更新开源许可证 - 不再支持云供应商提供商业化的 Redis
  • 生产者Producer往BufferQueue中写数据的过程
  • 使用 Vite 和 Bun 构建前端
  • 如何设置IDEA远程连接服务器开发环境并结合cpolar实现ssh远程开发
  • 【项目管理后台】Vue3+Ts+Sass实战框架搭建二
  • 制作一个RISC-V的操作系统六-bootstrap program(risv 引导程序)
  • haproxy和keepalived的区别与联系
  • 云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
  • pta L1-004 计算摄氏温度
  • 毕业论文降重(gpt+完美降重指令),sci论文降重gpt指令——超级好用,重复率低于4%
  • Qt 多元素控件
  • LeetCode热题Hot100-两数相加
  • Selenium 自动化 —— 浏览器窗口操作
  • 二、Kubernetes(k8s)中部署项目wordpress(php博客项目,数据库mysql)
  • linux系统Kubernetes工具Service暴露服务
  • 【算法篇】逐步理解动态规划1(斐波那契数列模型)
  • 软件测试 - postman高级使用
  • 数据交换技术
  • FFmpeg-- mp4文件合成1:aac和h264封装(c++实现)
  • 【嵌入式开发 Linux 常用命令系列 1.3 -- 统计目录下有多少个文件】
  • JMeter 如何并发执行 Python 脚本
  • 第十三届蓝桥杯省赛真题 Java B 组【原卷】
  • Excel 打开后提示:MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用...
  • 【自我提升】计算机领域相关证书
  • 外包干了15天,技术退步明显。。。。。
  • 人工智能(Educoder)-- 搜索技术 -- 启发式搜索
  • 计算平均分 javascript
  • Redis入门到实战-第三弹