此文章來源於專案官方公眾號:“AirtestProject”
版權宣告:允許轉載,但轉載必須保留原連結;請勿用作商業或者非法用途
一、前言
上節課我們分享了一批Airtest封裝的Tidevice介面,是有關獲取裝置資訊的,還沒看到的同學可以戳這裡複習一下。那麼本週我們繼續來看一下Airtest還封裝了哪些Tidevice的介面吧~
二、Airtest封裝的Tidevice介面
2.1 list_app(udid ,app_type='user')
:列出手機上安裝的應用列表
透過list_app()
介面,我們可以查詢本地所連線裝置上安裝的應用列表,同時該介面支援對型別進行篩選,其中括號內的引數udid
所填的是需要查詢的裝置udid
,app_type
的話,是可以傳入需要列出的應用程式型別,包括 user/system/all
。
from airtest.core.ios.ios import TIDevice
print(TIDevice.list_app(udid, "system"))
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")
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")
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)
可以直接查詢當前所連線裝置上正在執行的程序列表,並將程序的pid
、name
、bundle_id
等以字典的形式展現出來,可以根據自己的需求去呼叫。
from airtest.core.ios.ios import TIDevice
print(TIDevice.ps(udid))
三、完整演示案例
綜合上述的內容,我們用一個小小的案例來闡述一下使用的大概流程是怎麼樣的吧。可以看到,我們可以直接可以利用介面實現先裝包-測試-測試完後直接解除安裝包體這一個流程。
參考程式碼:
# -*- 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