Airtest封裝的Tidevice介面有多好用(二)

AirtestProject發表於2024-08-01

此文章來源於專案官方公眾號:“AirtestProject”
版權宣告:允許轉載,但轉載必須保留原連結;請勿用作商業或者非法用途

一、前言

上節課我們分享了一批Airtest封裝的Tidevice介面,是有關獲取裝置資訊的,還沒看到的同學可以戳這裡複習一下。那麼本週我們繼續來看一下Airtest還封裝了哪些Tidevice的介面吧~

二、Airtest封裝的Tidevice介面

2.1 list_app(udid ,app_type='user') :列出手機上安裝的應用列表

透過list_app()介面,我們可以查詢本地所連線裝置上安裝的應用列表,同時該介面支援對型別進行篩選,其中括號內的引數udid所填的是需要查詢的裝置udidapp_type的話,是可以傳入需要列出的應用程式型別,包括 user/system/all

from airtest.core.ios.ios import TIDevice

print(TIDevice.list_app(udid, "system"))

image

2.2 install_app(udid,file_or_url):安裝ipa包

透過install_app(udid,file_or_url)可以直接安裝ipa包體,支援本地路徑或URL的傳入,實現ipa包的直接安裝。

from airtest.core.ios.ios import TIDevice

TIDevice.install_app(udid,r"D:\demo.ipa")
TIDevice.install_app(udid,"https://download")

image

2.3 uninstall_app(udid,bundle_id):解除安裝 bundle_id 對應的包體

透過使用uninstall_app(udid,bundle_id)介面可以直接解除安裝掉不需要的包體,其中傳入的資料包括裝置的udid、以及需要解除安裝的應用bundle_id

from airtest.core.ios.ios import TIDevice
TIDevice.uninstall_app(udid,"com.163.itest.h12")

image

2.4 start_app(udid,bundle_id):啟動 bundle_id 對應的包體

透過使用start_app(udid,bundle_id)介面可以直接透過bundle_id開啟對應的app或遊戲,這樣就不需要遊戲或應用圖示在桌面或某個指定頁面。只需要傳入裝置的udid以及應用或遊戲的bundle_id就可以實現直接開啟應用

from airtest.core.ios.ios import TIDevice
TIDevice.start_app(udid,'com.apple.mobilecal')

2.5 stop_app(bundle_id):停止 bundle_id 對應的包體

透過使用stop_app(udid,bundle_id)介面可以直接透過bundle_id關閉當前開啟的的app或遊戲,這樣就不需要透過點選home鍵或退出鍵去實現退出應用了。

from airtest.core.ios.ios import TIDevice
TIDevice.stop_app(udid,'com.apple.mobilecal')

2.6 ps(udid):獲取當前的程序列表

透過ps(udid)可以直接查詢當前所連線裝置上正在執行的程序列表,並將程序的pidnamebundle_id等以字典的形式展現出來,可以根據自己的需求去呼叫。

from airtest.core.ios.ios import TIDevice
print(TIDevice.ps(udid))

image

三、完整演示案例

綜合上述的內容,我們用一個小小的案例來闡述一下使用的大概流程是怎麼樣的吧。可以看到,我們可以直接可以利用介面實現先裝包-測試-測試完後直接解除安裝包體這一個流程。
image

參考程式碼:

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

from airtest.core.api import *
from airtest.core.ios.ios import TIDevice
auto_setup(__file__)

from poco.drivers.ios import iosPoco
poco = iosPoco()

#獲取電腦所連線的iOS裝置udid
devices = TIDevice.devices()
udid = devices[0]

# 安裝測試包體
TIDevice.install_app(udid, r"./simpletest_resign.ipa")
sleep(3.0)

#此時查詢一遍使用者安裝應用,確保app安裝成功
print(TIDevice.list_app(udid, "user"))

#將剛下載好的應用開啟
TIDevice.start_app(udid,'com.163.itest.h12')
sleep(2.0)

#輸出當前裝置的程序應用有哪些
print("當前裝置上開啟的程序有:{}".format(TIDevice.ps(udid)))

#進行簡單測試
poco("點選測試").click()
touch(Template(r"tpl1722395968270.png", target_pos=8, record_pos=(0.0, 0.037), resolution=(750, 1334)))

#輸入內容
poco("TextField").click()
text("Airtest")

#完成測試退出應用
TIDevice.stop_app(udid,'com.163.itest.h12')
sleep(3.0)

#將測試包體解除安裝
TIDevice.uninstall_app(udid,'com.163.itest.h12')

#此時再查詢一遍使用者安裝應用,確保app解除安裝成功
print(TIDevice.list_app(udid, "user"))

四、小結

這節課我們主要是介紹了Airtest所封裝好的tidevice一些介面以及他們所展現的效果:

1、list_app :列出手機上安裝的應用列表,支援對型別進行篩選,包括 user/system/all

2、install_app :安裝ipa包,支援本地路徑或URL

3、uninstall_app:解除安裝 bundle_id 對應的包體

4、start_app :啟動 bundle_id 對應的包體

5、stop_app :停止 bundle_id 對應的包體

6、ps :獲取當前的程序列表

透過上述的封裝介面,我們可以對電腦本地連線的iOS裝置實現一整個裝包測試的流程,當然,同學們也可以根據自己的需求去封裝更多有關Airtest或者是tidevice的相關介面,我們也歡迎大家投稿一些自己封裝好的函式、介面等,大家可以一起分享學習~

同時如果大家在使用過程中有一些新的使用方式或者遇到了問題,又或者有任何想要深入瞭解的知識點,歡迎在官方交流群(526033840)裡告訴我們或者提交issue。


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

官方答疑 Q 群:526033840

相關文章