3 | Poco的介紹和入門教學


轉載:https://airtest.doc.io.netease.com/tutorial/0_automated_testing/

3 | Poco的介紹和入門教學

3.1 前言


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



3.2 示例


3.2.1 原生應用

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

准備工作:下載AirtestIDE,解壓並運行。

(1)Android原生應用

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

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

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

  • 與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手機上進行自動化測試(下)》

(2)iOS原生應用

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

  • 連接iOS手機,啟動iOS-Tagent項目,以Test方式運行到手機上。

  • 使用iproxy命令啟動代理。
iproxy 8100 8100 

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

  • 啟動AirtestIDE,輸入proxy地址,即可連接iOS手機。

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

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

3.2.2 游戲

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

(1)Android游戲

  • 參考引擎接入指引,接入Poco-SDK。如下是Unity中接入方式:

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

  • 在選擇Unity模式之后,AirtestIDE會自動插入Poco的初始化代碼:

from poco.drivers.unity3d import UnityPoco poco = UnityPoco() 

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

(2)iOS游戲

  • 同樣的,先完成引擎SDK接入,然后通過AirtestIDE連接iOS手機。

  • 與Android不同的是,iOS Unity Poco的連接需要啟動兩個proxy,8100端口用於連接iOS手機,5001端口用於連接Poco-SDK的RPC端口。

iproxy 8100 8100 iproxy 5001 5001 

這里的iproxy相當於ADB中的forward。

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

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



3.3 Poco的平台支持情況


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

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

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


免責聲明!

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



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