如何利用Airtest做一些簡單的裝包小任務

1. 前言

很多同學對於Airtest都有一些刻板的印象,覺得Airtest只能截圖,然後進行一些簡單的點點點操作。

但實際上,拋開Airtest的圖像識別點擊功能,Airtest還能幫助我們連接設備,然後完成一些別的小任務,比如裝包、打開應用、檢查應用等等(不需要截圖、也不需要生成報告)。

2. 利用Airtest完成裝包任務的腳本示例

示例爲一個非常簡單的純.py腳本例子,只連接設備,然後安裝並打開指定應用即可,log都不需要保存(可以看到auto_setup裏面logdir=False):

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
from airtest.cli.parser import cli_setup

auto_setup(__file__, logdir=False, devices=["android://127.0.0.1:5037/PFT4PBLF75GQHYBM"])

# 包體存放的路徑
APK_FILE = r"D:\demo\NeteaseCloudMusic_Music_official_8.7.11.220318190241_32.apk"
# 包名
PACKAGE_NAME = "com.netease.cloudmusic"

# 安裝應用
install(APK_FILE)

# 打開應用
start_app(PACKAGE_NAME)

3. 裝包接口詳解

1)install()

install()是Airtest的核心API之一,默認是用當前的設備去執行安裝操作,實際上裏面調用了 device().install_app(),所以上文中的案例,我們也可以寫成這樣:

...

# 安裝應用
device().install_app(APK_FILE)

# 打開應用
start_app(PACKAGE_NAME)

...

其中,install_app除了需要傳入filepath參數之外,還有2個參數我們也可以關注下:

  • replace,如果應用已存在,是否替換,默認爲False
  • install_optionsinstall命令的額外選項,默認是[]
# adb install -r -t D:\demo\test.apk
device().install_app(r"D:\demo\test.apk",install_options=["-r", "-t"])
2)pm_install()

pm_installairtest.core.android.adb模塊下面的安裝方法,在Airtest1.2.7版本,我們對這個安裝接口進行了增強:

  • 支持了安裝參數的傳入(與 adb.install 保持一致),
  • 支持了 中文路徑、一些 包含特殊符號路徑
  • 對路徑的改動同時影響到了 adb.pull()adb.push() 接口,支持了中文路徑、包含斜槓的路徑(比如 \g 這樣的字符也會有問題)、包含特殊符號(空格、括號等)的路徑
  • pm_install 安裝完畢後,會進行 adb shell rm apk 的操作,超時時間30秒

上文的小任務,也可以通過pm_install接口來實現:

...

# 安裝應用
device().adb.pm_install(APK_FILE)

# 打開應用
start_app(PACKAGE_NAME)

...

Airtest1.2.7版本之後,pm_install的參數與install_app保持了一致,同樣支持:

  • replace,如果應用已存在,是否替換,默認爲False
  • install_optionsinstall命令的額外選項,默認是[]
3)拓展:install的安裝參數

Airtest封裝的安裝接口,包含以下安裝參數可以使用:

  • -t,允許測試包
  • -l,鎖定應用程序
  • -s,把應用程序安裝到sd卡上
  • -g,爲應用程序授予所有運行時的權限
  • -r,替換已存在的應用程序(覆蓋安裝)
  • -d,允許降級覆蓋安裝

4. 小結

本文主要使用Airtest封裝的安裝接口,採用多種方式實現了裝包的小任務,另外還拓展了下安裝參數的介紹,同學們可以自己動手試試喲~


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

官方答疑 Q 羣:117973773

呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~

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