Poco的介紹和入門教學


版權聲明:該文章為AirtestProject原創文章;允許轉載,但轉載必須注明“轉載”並保留原鏈接

前言

前面我們已經介紹了基於圖像識別的測試框架Airtest,通過圖像識別,已經可以編寫大部分的測試腳本。但是在某些特殊情況下,例如對於游戲或App里的動態元素,通過圖像識別定位較為困難。所以,我們的Airtest Project解決方案也提供了另外一種基於UI控件搜索的自動化框架 Poco,下面我們來通過一個示例來看看Poco如何使用。

示例

原生應用

對於Android和iOS平台上的原生應用(包括系統界面),可以直接使用Poco

准備工作:下載 Airtest IDE,解壓並運行

Android 原生應用

  1. 准備一台Android手機,打開USB調試功能,然后連接電腦。正常情況下,就可以在Airtest IDE中看到手機列表:

  1. 點擊connect,即可在Airtest IDE 中看到設備屏幕。現在進入Android主界面,點擊左側的Poco輔助窗,選擇Android模式,即可看到當前界面的UI樹結構:

  1. 選擇Poco輔助窗口中的Poco Inspector按鈕,即可對頁面上的UI控件進行定位:

  1. 與Airtest的使用方式類似,我們可以使用Poco提供的方法對界面上的元素進行操作:
# Airtest IDE自動插入的初始化語句

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

# 點擊設置圖標
poco(desc="設置").click()

如上所示代碼,即可通過UI屬性進行元素定位,並進行操作。

關於使用Poco測試Android原生應用的更多細節,可以參考教程(五、如何在Android手機上進行自動化測試(下))。

iOS 原生應用

對於iOS原生應用,Poco同樣可以獲取到UI層級結構。除了下載運行Airtest IDE之外,我們還需要運行ios-Tagent項目,才可以獲取到iOS界面的UI信息。具體步驟如下

  1. 連接iOS手機,啟動ios-Tagent項目,以Test方式運行到手機上。
  2. 使用iproxy命令啟動代理
iproxy 8100 8100

如果希望在另外一台電腦連接iOS手機,可以安裝wdaproxy

  1. 啟動Airtest IDE, 輸入proxy地址,即可連接iOS手機

  1. 選擇Poco輔助窗中的iOS模式,即可看到當前界面的UI樹結構:

  1. 獲取到界面UI層級關系之后,我們就可以用Poco提供的API來編寫自動化腳本了~

游戲

由於游戲的界面是通過游戲引擎渲染出來的,游戲界面沒有系統原生的控件信息,所以對於游戲,我們需要接入 poco-sdk 才能獲取到游戲界面中的控件信息。下面以Unity開發的手游為例,介紹如何在Android和iOS平台進行連接。

Android 游戲

  1. 參考 引擎接入指引,接入Poco-sdk。如下是Unity中接入方式:

  1. 啟動Airtest IDE,並啟動對應的游戲,選擇Poco輔助窗中的Unity模式,即可看到當前界面的UI樹結構:

  1. 在選擇Unity模式之后,Airtest IDE會自動插入poco的初始化代碼:
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()

之后的腳本編寫,就可以利用Poco提供的API對游戲界面上的元素進行操作了

iOS 游戲

  1. 同樣的,先完成引擎SDK接入,然后通過Airtest IDE連接iOS手機
  2. 與Android不同的是,iOS Unity Poco的連接需要啟動兩個proxy,8100端口用於連接iOS手機,5001端口用於連接poco-sdk的rpc端口
iproxy 8100 8100
iproxy 5001 5001

這里的iproxy相當於adb中的forward

  1. 連接好iOS手機之后,選擇Poco輔助窗中的Unity模式,即可看到當前界面的UI樹結構:

  1. 之后即可通過Poco提供的API,對iOS上的游戲編寫自動化測試腳本了。

Poco的平台支持情況

Poco在大多數平台中,需要事先接入Poco-SDK才可正常使用 ,在少數平台(如Android與iOS原生APP)可直接使用Poco,目前支持平台如下:

平台 Airtest Poco
Cocos2dx-js, Cocos2dx-lua 接入文檔
Unity3D 接入文檔
Android 原生APP 直接使用
iOS 幫助文檔
Egret 接入文檔
Other engines 可自行接入
WeChat Applet&webview 參考文檔 隨着微信更新可能會失效
Windows, MacOS 敬請期待
Netease 網易內部引擎幫助文檔

在文檔Poco支持平台中,可以獲得最新更新的平台支持情況。

更多詳細資料參考

請查看Poco官方文檔獲得更多教程與API信息,這里是一些關注度較高的內容:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM