此文章來源於項目官方公衆號:“AirtestProject”
版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途
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能力,還可以幫助我們實現非常多有趣的小場景,感興趣的同學可以上手嘗試下。
另外,有其它想要實現的功能,歡迎給我們留言哦!
AirtestIDE下載:airtest.netease.com/
Airtest 教程官網:airtest.doc.io.netease.com/
搭建企業私有云服務:airlab.163.com/b2b
官方答疑 Q 羣:117973773