news 2026/5/1 8:11:47

用Airtest快速实现手机文件读写与删除功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用Airtest快速实现手机文件读写与删除功能

前几天有同学留言,能不能安排“读写手机文件”的示例。我们今天就来实现这个小功能。

当然,熟悉adb的同学,看到这个需求,肯定很开心,不就是一个 adb push 和 adb pull 嘛,非常简单呀。

确实如此,那结合Airtest,我们该如何写脚本呢?接下来我们就详细看看。

手机文件读写与删除功能

1)adb知识

Airtest不仅给我们提供了连接和操控手机的功能,还封装了绝大部分adb功能供我们便捷使用,以“从手机上复制文件到本地计算机”为例,使用adb指令的话,是这样的:

adb pull <src> <dst>

其中:

src:要传输的 Android 文件路径

dst:要传输到的本地计算机路径

2)Airtest封装的adb功能

而在Airtest里面,adb功能封装在 irtest.core.android 模块里面,我们可以编写下述脚本实现 adb pull 指令的功能:

from airtest.core.android import * device().adb.pull(scr,dst)

3)文件读写与删除功能实现

了解这些之后,我们就可以非常轻松地用Airtest实现手机文件读写与删除功能啦:

# -*- encoding=utf8 -*- __author__ = "AirtestProject" from airtest.core.api import * from airtest.core.android import * auto_setup(__file__) dev = device() phone_file = r"/sdcard/Download/test.png" # 手机文件路径 local_path = r"E:/test_file/" # 电脑存储路径 local_file = r"E:/test_file/test1.png" # 电脑文件路径 phone_path = r"/sdcard/Download/" # 手机存储路径 del_file = r"/sdcard/Download/test1.png" # 要删除的手机文件 # 从手机上复制文件到本地 def pull_file(): dev.adb.pull(phone_file,local_path) print("文件已复制到本地") # 将本地文件推送到手机 def push_file(): dev.adb.push(local_file,phone_path) print("文件已推送到手机") # 删除手机上的文件 def delete_file(): shell("rm %s" % (del_file)) print("手机文件已删除") if __name__ == '__main__': pull_file() push_file() delete_file()

PS:Airtest里的 device().adb.pull 和 device().adb.push 都支持中文路径。

小结

今天的小需求就实现到这里啦。其实,用Airtest封装的adb能力,还可以帮助我们实现非常多有趣的小场景,感兴趣的同学可以上手尝试下。

另外,有其它想要实现的功能,欢迎给我们留言哦!

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

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

软件测试面试文档

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

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

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

性能测试中唯一标识的JMH测试

前文分享了几种性能测试中常用到的生成全局唯一标识的案例&#xff0c;虽然在文中我猜测了几种方案设计的性能&#xff0c;并根据自己的经验给出了适用的场景。 但对于一个性能测试工程师来讲&#xff0c;有真是测试数据才更有说服力。这让我想起来之前学过的Java微基准测试框…

作者头像 李华
网站建设 2026/5/1 6:47:39

LobeChat能否支持优惠券发放?促销活动设计思路

LobeChat 能否支持优惠券发放&#xff1f;——一场关于智能营销的工程实践 在电商大促的深夜&#xff0c;用户正浏览商品页面&#xff0c;突然弹出一个对话框&#xff1a;“您关注的耳机正在参加618满减活动&#xff0c;需要一张专属折扣券吗&#xff1f;” 用户回复“好啊”&a…

作者头像 李华
网站建设 2026/5/1 4:31:52

CUDA安装检测工具nvidia-smi使用详解

CUDA环境诊断与容器化AI开发实践 你有没有遇到过这样的场景&#xff1a;满怀期待地启动一个PyTorch训练脚本&#xff0c;结果 torch.cuda.is_available() 却返回了 False&#xff1f;明明装了驱动、也配了CUDA&#xff0c;为什么GPU就是“看不见”&#xff1f;这时候&#xff0…

作者头像 李华
网站建设 2026/5/1 5:48:49

8、Kubernetes 容器管理与操作指南

Kubernetes 容器管理与操作指南 1. 删除 LimitRange 可以通过以下命令删除 LimitRange 资源: # kubectl delete LimitRange <limit name> --namespace=<namespace>这里, limit name 是 limits , namespace 是 new-namespace 。之后,当描述该命名空…

作者头像 李华
网站建设 2026/5/1 7:55:02

13、在AWS上构建Kubernetes

在AWS上构建Kubernetes 1. 在AWS上构建Kubernetes基础设施 Amazon Web Services(AWS)是最受欢迎的云服务,可在其数据中心启动多个虚拟机。以下是在AWS上构建Kubernetes基础设施的步骤: - 注册AWS账号 :访问http://aws.amazon.com ,输入信息和信用卡号进行注册,注册…

作者头像 李华
网站建设 2026/5/1 5:46:24

wangEditor导入word图片自动压缩尺寸处理

ASP.NET企业网站Word内容粘贴与文档导入解决方案 作为河北某IT公司的.NET高级工程师&#xff0c;我最近负责了一个企业网站后台管理系统的升级项目&#xff0c;需要实现Word/Excel/PPT/PDF文档导入和Word一键粘贴功能。以下是我的技术实现方案。 一、技术需求分析 核心功能需…

作者头像 李华