用Airtest快速實現手機文件讀寫與刪除功能

此文章來源於項目官方公衆號:“AirtestProject”
版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途

1. 前言

前幾天有同學留言,能不能安排“讀寫手機文件”的示例。我們今天就來實現這個小功能。

當然,熟悉adb的同學,看到這個需求,肯定很開心,不就是一個 adb pushadb 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.pulldevice().adb.push 都支持中文路徑。

3. 小結

今天的小需求就實現到這裏啦。其實,用Airtest封裝的adb能力,還可以幫助我們實現非常多有趣的小場景,感興趣的同學可以上手嘗試下。

另外,有其它想要實現的功能,歡迎給我們留言哦!


AirtestIDE下載:airtest.netease.com/
Airtest 教程官網:airtest.doc.io.netease.com/
搭建企業私有云服務:airlab.163.com/b2b

官方答疑 Q 羣:117973773

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章