11如何在你的unity項目中接入pocoSDK
Hi同學(xué)們好,我是網(wǎng)易AirtestProject的團(tuán)隊成員飯團(tuán),歡迎大家來到我們的視頻教程專欄《14天Airtest自動化測試小白課程》。
今天我們要進(jìn)行一個新章節(jié)的內(nèi)容學(xué)習(xí)--Poco-SDK的接入學(xué)習(xí)。以unity項目為例,我會這節(jié)課里介紹如何在你的unity項目中接入Poco-SDK,然后在IDE中查看這個unity項目的UI樹。
為什么要接入Poco-SDK
先來聊一聊我們?yōu)槭裁匆尤隤oco-SDK。目前我們的Poco框架支持Android和iOS的原生應(yīng)用,并且無需嵌入任何代碼,只要在IDE中連接了Android或是iOS設(shè)備,然后直接在poco輔助窗選擇對應(yīng)的Android或者是iOS模式,等待幾秒即可刷出當(dāng)前頁面的原生控件樹信息:

除了支持原生APP之外,Poco框架還支持大部分主流游戲引擎開發(fā)的游戲應(yīng)用,但是與原生應(yīng)用不一樣,poco獲取游戲項目的UI樹,需要事先在游戲項目源碼中,接入Poco-SDK,開啟1個poco服務(wù),這樣我們在啟動游戲項目的時候,才能夠獲取到游戲應(yīng)用的控件信息,并利用這些控件進(jìn)行自動化測試工作。


所以有使用Poco框架測試游戲應(yīng)用需求的同學(xué),可以先跟開發(fā)了解下自己的游戲項目是什么引擎的,然后再在我們官網(wǎng)上找到對應(yīng)的poco-sdk接入到項目中,最后打包出來測試。
目前我們提供了下述引擎的poco-SDK和接入教程:
1. unity3d接入教程 :https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#unity3d
2. cocos2dx-lua接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-lua
3. cocos2dx-js接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-js-beta
4. cocos-creator接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos-creator
5. Egret接入教程:https://github.com/AirtestProject/Poco-SDK/tree/master/Egret
6. UE4接入教程:https://mp.weixin.qq.com/s?__biz=MzUxMDc4NTkwMA==&mid=2247484258&idx=1&sn=0fec4461bc870077af4e096b494d646a&chksm=f97ce361ce0b6a77c885193a900d2be08d22c3cf86a0e90a5fb0e83758aaffc65a9d00ec3927&token=1860040772&lang=zh_CN#rd
7. 自行接入其它引擎的教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/implementation_guide.html
8. WebView檢視:https://airtest.doc.io.netease.com/IDEdocs/poco_framework/poco_webview/
9.無需接入pocoSDK的平臺:Android原生、iOS原生
10.暫不支持的平臺:Windows、MacOS等
在unity項目接入Poco-SDK
了解完P(guān)oco框架目前支持哪些類型的應(yīng)用,并且知道哪些應(yīng)用需要接入poco-SDK之后,我們來具體實操一下,以unity項目為例,如何接入poco-SDK,然后在IDE中檢索unity項目的控件:
1. unity項目接入poco-SDK的步驟
1)下載Poco-SDK包
這個直接到我們的GitHub上面clone下來即可:https://github.com/AirtestProject/Poco-SDK?。
2)把Unity3D文件夾放到項目腳本中
把剛才clone下來的壓縮包 Poco-SDK-master.zip 解壓,然后將其中的Unity3D文件夾放到你Unity項目的Scripts的任意位置中:

注意:注意,這里所說的Scripts指的就是unity游戲項目的源碼。
3)根據(jù)UI類型選擇
詢問程序使用的是哪種UI方式,SDK中有三個文件夾 ugui 、 ngui 、 fairygui ,保留其中一種刪除另外兩種,比如上圖選擇的就是 ugui 。其余兩種請務(wù)必刪除,不然unity會報錯。

4)在unity載入腳本
創(chuàng)建一個空的 GameObject (右鍵-Create Empty),添加腳本(Add Component):

其他參數(shù)默認(rèn)即可,GameObject 名字隨意。或者,同學(xué)們也可以在 root 或者 主camera 這些 GameObject 上添加腳本(Add Component) Unity3D/PocoManager.cs 。
有同學(xué)可能會問,為什么要新建空的 GameObject 或者是選擇 root 、 主camera 這些 GameObject來添加腳本呢?其實這都是為了將腳本掛載到1個 不會在游戲的生命周期中被銷毀的節(jié)點 上去,并且在游戲開始時,盡快開啟poco服務(wù)。
2. IDE連接game窗口查看控件樹
在unity編輯器中,單獨拖出來game窗口,然后IDE連接上這個game窗口,選擇unity模式,可以查看該項目的poco控件樹:

3. 打包成Android包在IDE進(jìn)行測試
1)文件-BuildSettings-平臺選擇Android-切換平臺

2)成功切換成Android平臺之后,打開玩家設(shè)置

3)選擇Player,設(shè)置包名

4)設(shè)置完成后,點擊生成,等待打包完成

打包成功之后,在待測設(shè)備安裝上,然后打開unity項目,在poco輔助窗選擇unity模式,可以查看、檢索控件樹。

之后,我們就可以在這個測試包上編寫Poco自動化腳本了。
接入Poco-SDK的常見問題
了解完如何在項目中接入Poco-SDK并打出Android測試包之后,接下來我們來看下接入Poco-SDK的常見問題:
1. 如何知道自己的項目是否需要接入Poco-SDK?
就像我們剛才所說的那樣,除了Android和iOS的原生應(yīng)用,其余由各種引擎開發(fā)的游戲項目,是需要提前接入Poco-SDK,才能夠使用我們的poco框架來進(jìn)行自動化測試的。
2. 接入Poco-SDK的前提條件是什么?
需要有該游戲的項目源碼。非公司內(nèi)部的游戲我們是不能獲取源碼并接入sdk的哈。另外我們要詢問公司的開發(fā)人員,目前需要測試的這款游戲是由什么引擎開發(fā)的;然后到我們Airtest官方文檔上查詢這個引擎游戲的poco-SDK教程,根據(jù)教程步驟完成接入工作,再來查看游戲項目的UI樹。如條件允許,可以讓開發(fā)幫忙接入并且打包之后給我們測試。
3. 為什么選擇根節(jié)點或者主camera來添加腳本?
其實這都是為了將腳本掛載到1個 不會在游戲的生命周期中被銷毀的節(jié)點 上去,并且在游戲開始時,盡快開啟poco服務(wù)。這樣游戲切換任意場景時,此節(jié)點都會常駐,并且永不銷毀。能保證poco服務(wù)也能在啟動游戲之后一直開啟著。
4. 自研引擎可不可以接入poco-SDK?
自研引擎也可以自行接入Poco-SDK,可以參考我們的官方文檔:https://poco.readthedocs.io/zh_CN/latest/source/doc/implementation_guide.html

5. 其他接入問題
如有其它關(guān)于poco-SDK的接入問題,可以到我們的github項目(https://github.com/AirtestProject/Poco-SDK/issues)上提給我們提issue,也歡迎到我們的官方答疑Q群(654700783)反饋相關(guān)問題。
課程小結(jié)
那么今天接入poco-sdk的實操課程到這里就差不多結(jié)束啦,總結(jié)一下,我們主要給大家講解了哪些項目需要接入Poco-SDK,在unity項目中接入Poco-SDK的實操以及接入Poco-SDK的常見問題。

那么下節(jié)課呢,我們將進(jìn)入自動化測試的拓展章節(jié),在拓展章節(jié)中,我們會進(jìn)行一個自動化測試的實操項目,還會了解企業(yè)級的自動化測試解決方案,那么下期我們就不見不散啦~