如何測試基於Unity3D引擎的游戲


版權聲明:允許轉載,但轉載必須保留原鏈接;請勿用作商業或者非法用途

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

Android 平台

  1.  poco sdk repo 將Unity3D這個文件夾克隆下來。

        

  1. 將克隆下來的Unity3D文件夾放置於你的Unity項目的Assets/Scripts文件夾下。

        

  1. Assets/Scripts/Unity3D目錄下以未用到的UI系統命名的文件夾刪除。例:假如您的項目使用的UI系統是ugui,請將fairyguingui兩個文件夾刪除,保留ugui文件夾。

         

  1. Unity3D中打開您的項目,並將Unity3D/PocoManager.cs作為一個script component添加到您的GameObject中,要求掛載在一個永不銷毀的對象下,比如通常情況下的主相機。

    舉例: 點擊demo這個場景下的Main Camera, 會在右方出現inspector界面,點擊inspector界面當中的Add Component

    在彈出的對話框中輸入poco,選擇出現的Poco Manager這個選項。

    完成后會在inspector界面出現如圖所示的component

  2. 點擊界面左上角File->Build Settings, 生成一個合適的安卓包,並安裝到您的手機上。

  1. 啟動Airtest IDE,按照上文所述將Airtest IDE與您的手機鏈接,並啟動對應的游戲。
  1. 在左下角的Poco輔助窗中選擇Unity模式,即可看到當前界面的UI樹結構:

  1. 在選擇Unity模式之后,Airtest IDE會自動插入poco的初始化代碼:

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

下面是一個簡單的測試用例。您可以從這里下載這個簡單的Unity3D小游戲。在安裝完成后,打開游戲后點擊Start再點擊drag drop會出現如下所示的界面。

每將一顆星星拖動到屏幕中心的貝殼上,將得到20分;如果將5顆星星依次拖動到貝殼上,那將獲得100分。下面的腳本就是在測試依次拖動5顆星星是否會得到100分的分數。

from airtest.core.api import *

auto_setup(__file__)

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

poco('btn_start').click()
time.sleep(1.5)


poco('drag_and_drop').click()

shell = poco('shell').focus('center')
for star in poco('plays').offspring('star'):
    star.drag_to(shell)
time.sleep(1)

assert poco('scoreVal').get_text() == "100", "score correct."
poco('btn_back', type='Button').click()

 

點擊運行腳本按鈕,就會得到如下所示的結果。

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上的游戲編寫自動化測試腳本了。


免責聲明!

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



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