如何测试基于Unity3D引擎的游戏
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
此文章来源于项目官方公众号:“AirtestProject”
由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没有系统原生的控件信息,所以对于游戏,我们需要接入 poco-sdk 才能获取到游戏界面中的控件信息。下面以Unity开发的手游为例,介绍如何在Android和iOS平台进行连接。
Android 平台
- 从 poco sdk repo 将
Unity3D
这个文件夹克隆下来。
- 将克隆下来的
Unity3D
文件夹放置于你的Unity项目的Assets/Scripts
文件夹下。
- 将
Assets/Scripts/Unity3D
目录下以未用到的UI系统命名的文件夹删除。例:假如您的项目使用的UI系统是ugui
,请将fairygui
和ngui
两个文件夹删除,保留ugui
文件夹。
-
在
Unity3D
中打开您的项目,并将Unity3D/PocoManager.cs
作为一个script component
添加到您的GameObject
中,要求挂载在一个永不销毁的对象下,比如通常情况下的主相机。举例:
点击demo
这个场景下的Main Camera
, 会在右方出现inspector
界面,点击inspector
界面当中的Add Component
。在弹出的对话框中输入
poco
,选择出现的Poco Manager
这个选项。完成后会在
inspector
界面出现如图所示的component
。 -
点击界面左上角
File->Build Settings
, 生成一个合适的安卓包,并安装到您的手机上。 -
启动
Airtest IDE
,按照上文所述将Airtest IDE
与您的手机链接,并启动对应的游戏。 -
在左下角的
Poco辅助窗
中选择Unity
模式,即可看到当前界面的UI树结构:
- 在选择
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平台
- 同样的,先完成引擎SDK接入,然后通过Airtest IDE连接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上的游戏编写自动化测试脚本了。
推荐阅读
-
如何测试基于Unity3D引擎的游戏
-
基于在生产环境中使用php性能测试工具xhprof的详解 游戏性能测试工具 web性能测试工具 网络性能测试工
-
如何才能电脑打开基于微信浏览器开发的小游戏呢
-
Unity3D游戏引擎实现在Android中打开WebView的实例
-
Babylon.js 初级教程---微软的基于webgl的H5 3D游戏引擎
-
PC平台游戏的优化如何?年度最佳FPS《战地1》显卡测试
-
RPGMAKER游戏引擎基于JavaScript的插件制作(六)——重写方法(三):在场景(scenes)中创建精灵(Sprite)——复制式重写的实例教学
-
BabylonJS文件格式---基于WebGL的H5 3D游戏引擎
-
如何利用基于PXI的下一代ATE系统测试平台进行军事/航天/卫星电子设备测试
-
SAP CDS view自学教程之一:如何测试基于SAP CDS view自动生成的OData服务 ABAPCloudCDS viewCloudFoundrySAP云平台