AirtestIDE實踐二:Poco框架試用


上一篇用airtest框架做了一個夢幻西游手游的DEMO,這次看看poco的強大之處。
首先安裝poco:
pip install pocoui

其次,把SDK集成到你家游戲中,我這直接用官網提供的一個Unity引擎做的游戲demo,demo下載地址&用法示例:https://poco.readthedocs.io/zh_CN/latest/source/doc/poco-example/index.html

打開AirtestIDE,新建一個項目,連接手機或模擬器,打開游戲。在IDE左下的Poco輔助窗下拉列表選擇Unity,此時在代碼編輯區上方會有提示,是否自動插入相關代碼,點Yes。
此時Poco輔助窗下面已經顯示UI樹了,相信以前搞過uiautomator、Robotium、Appium等的朋友會非常熟悉。選中一個元素,在Log區會顯示該元素的屬性。

現在可以寫腳本了,手寫的話,在UI樹上雙擊一個元素可以自動插入該元素的對象語句,如上圖,雙擊btn_back,會自動插入poco("btn_back")。也可以錄制,點擊Poco輔助窗下面的錄制按鈕(錄像機圖標),然后點擊游戲界面上的返回按鈕,會自動生成poco("btn_back").click()。

如果游戲界面一直在刷新,UI樹一直在變,點擊錄制按鈕前面的鎖,可以鎖定界面,方便查看元素。

點擊錄制按鈕前面的圓圈按鈕(inspector),之后在Device Screen上左擊或右擊元素,也可以很方便的查看元素,效果和在UI樹看是一樣的。

另外poco提供了一套單元測試框架pocounit,用法和unittest一樣(應該就是基於unittest寫的),更重要的是——使用pocounit編寫的用例將可以通過其提供的回放工具對測試過程進行完整的回放,不會漏掉任何細節。視頻如下:
http://top.gdl.netease.com/poco-res/video/result_player_demo.mp4

好了,看一下針對游戲demo寫的幾行代碼:
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()

poco("btn_start").click() # 點擊start按鈕
poco("basic").click() # 點擊basic按鈕
poco("star_single").long_click(duration=3) # 長按五角星
poco("pos_input").set_text('測試輸入文字') # 輸入文字
sleep(3)
poco("btn_back").click() # 點擊back按鈕
sleep(1.0)

poco("drag_and_drop").click() # 點擊drag drop按鈕
shell = poco("shell").focus('center') # 定義貝殼對象
for star in poco("star"):
star.drag_to(shell) # 循環將五角星拖到貝殼
poco("btn_back").click() # 點擊back按鈕

poco("list_view").click() # 點擊list view按鈕
poco("Scroll View").swipe([0, -1]) # 將列表向上滑動
sleep(2.0)
poco("Text (12)").click() # 選中列表最后一項
poco("btn_back").click() # 點擊back按鈕

poco("wait_ui").click() # 點擊Wait UI按鈕
count = 0
while True:
yellow_fish = poco("yellow") # 定義黃魚
blue_fish = poco("blue") # 定義藍魚
fish = poco.wait_for_any([yellow_fish, blue_fish]) # 等待魚出現
fish.click() # 點擊魚對象
sleep(1.0)


放上回放腳本時的錄制視頻,大家可以感受一下,為了看的更明了一點,我在手機開發者選項中打開了‘顯示點按操作反饋’、‘指針位置’:
https://v.qq.com/x/page/l08360w6o1u.html

可以看到,腳本最后一塊,等待魚出現,然后點擊魚,代碼有運算時間,發送的adb命令有執行時間,但是游戲的魚很快飛過,導致點擊時,魚其實已經飛過去了,不知道換模擬器會不會好一點。

腳本源碼:
https://github.com/songzhenhua/airtest

最后再次附上Poco文檔地址和demo示例地址:
https://poco.readthedocs.io/zh_CN/latest/index.html#
https://poco.readthedocs.io/zh_CN/latest/source/doc/poco-example/index.html

 

 

---------------------------------------------------------------------------------

 

關注微信公眾號即可在手機上查閱,並可接收更多測試分享~

 

 


免責聲明!

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



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