1. 前言
前几天有同学留言,能不能安排“读写手机文件”的示例。我们今天就来实现这个小功能。
当然,熟悉adb的同学,看到这个需求,肯定很开心,不就是一个 adb push
和 adb pull
嘛,非常简单呀。
确实如此,那结合Airtest,我们该如何写脚本呢?接下来我们就详细看看。
2. 手机文件读写与删除功能
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
都支持中文路径。
3. 小结
今天的小需求就实现到这里啦。其实,用Airtest封装的adb能力,还可以帮助我们实现非常多有趣的小场景,感兴趣的同学可以上手尝试下。
另外,有其它想要实现的功能,欢迎给我们留言哦!
最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了
以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。
关注下方我的微信公众号免费领取!↓ ↓ ↓ ↓ ↓