如何测试基于Unity3D引擎的游戏

摘要:
以Unity开发的手机游戏为例,介绍如何连接Android和iOS平台。将克隆的Unity3D文件夹放在Unity项目的Assets/Scripts文件夹中。删除Assets/Scripts/Unity3D目录中以未使用的UI系统命名的文件夹。在Unity3D中打开您的项目并设置Unity3D/PocoManager Cs。它作为脚本组件添加到您的GameObject中,并且需要安装在永远不会被破坏的对象上,例如在正常情况下的主相机。你可以从这里下载这个简单的Unity3D游戏。

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没有系统原生的控件信息,所以对于游戏,我们需要接入 poco-sdk 才能获取到游戏界面中的控件信息。下面以Unity开发的手游为例,介绍如何在Android和iOS平台进行连接。

Android 平台

  1. poco sdk repoUnity3D这个文件夹克隆下来。

如何测试基于Unity3D引擎的游戏第1张

  1. 将克隆下来的Unity3D文件夹放置于你的Unity项目的Assets/Scripts文件夹下。

如何测试基于Unity3D引擎的游戏第2张

  1. Assets/Scripts/Unity3D目录下以未用到的UI系统命名的文件夹删除。例:假如您的项目使用的UI系统是ugui,请将fairyguingui两个文件夹删除,保留ugui文件夹。

如何测试基于Unity3D引擎的游戏第3张

  1. Unity3D中打开您的项目,并将Unity3D/PocoManager.cs作为一个script component添加到您的GameObject中,要求挂载在一个永不销毁的对象下,比如通常情况下的主相机。

    举例: 点击demo这个场景下的Main Camera, 会在右方出现inspector界面,点击inspector界面当中的Add Component

    如何测试基于Unity3D引擎的游戏第4张

    如何测试基于Unity3D引擎的游戏第5张

    在弹出的对话框中输入poco,选择出现的Poco Manager这个选项。

    如何测试基于Unity3D引擎的游戏第6张

    完成后会在inspector界面出现如图所示的component

    如何测试基于Unity3D引擎的游戏第7张

  2. 点击界面左上角File->Build Settings, 生成一个合适的安卓包,并安装到您的手机上。

  1. 启动Airtest IDE,按照上文所述将Airtest IDE与您的手机链接,并启动对应的游戏。
  1. 在左下角的Poco辅助窗中选择Unity模式,即可看到当前界面的UI树结构:

如何测试基于Unity3D引擎的游戏第8张

  1. 在选择Unity模式之后,Airtest IDE会自动插入poco的初始化代码:

如何测试基于Unity3D引擎的游戏第9张

之后的脚本编写,就可以利用Poco提供的API对游戏界面上的元素进行操作了。

下面是一个简单的测试用例。您可以从这里下载这个简单的Unity3D小游戏。在安装完成后,打开游戏后点击Start再点击drag drop会出现如下所示的界面。

如何测试基于Unity3D引擎的游戏第10张

每将一颗星星拖动到屏幕中心的贝壳上,将得到20分;如果将5颗星星依次拖动到贝壳上,那将获得100分。下面的脚本就是在测试依次拖动5颗星星是否会得到100分的分数。

from airtest.core.api import *
auto_setup(__file__)

from poco.drivers.unity3d importUnityPoco
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()

点击运行脚本按钮,就会得到如下所示的结果。

如何测试基于Unity3D引擎的游戏第11张

iOS平台

  1. 同样的,先完成引擎SDK接入,然后通过Airtest IDE连接iOS手机
  2. 与Android不同的是,iOS Unity Poco的连接需要启动两个proxy,8100端口用于连接iOS手机,5001端口用于连接poco-sdk的rpc端口
iproxy 8100 8100iproxy 5001 5001

这里的iproxy相当于adb中的forward

  1. 连接好iOS手机之后,选择Poco辅助窗中的Unity模式,即可看到当前界面的UI树结构:

如何测试基于Unity3D引擎的游戏第12张

  1. 之后即可通过Poco提供的API,对iOS上的游戏编写自动化测试脚本了。

免责声明:文章转载自《如何测试基于Unity3D引擎的游戏》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unity里面的自动寻路(二)GRUB4DOS加载ISO启动光盘完美解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS 部分机制

1. IOS应用或者说移动设备上的应用的最大的特征是:Fast Launch, Short Use。移动用户路上、机场候机中、地铁中等场合使用,每次用户使用移动设备的时间大多是非常短,需要应用能够快速启动。在IOS 4多任务的环境下,用户在同一时间只和当前的应用交互,其他应用被运行在系统的后端环境亦即内存中,直到用户切换环境唤起或者用户/系统将其从内存中彻...

iOS中集成ijkplayer视频直播框架

ijkplayer 是一款做视频直播的框架,基于ffmpeg,支持 Android 和 iOS,网上也有很多集成说明,但是个人觉得还是不够详细,在这里详细的讲一下在 iOS 中如何集成ijkplayer,即便以前从没有接触过,按着下面做也可以集成成功! 一、下载ijkplayer ijkplayer下载地址:https://github.com/Bili...

Android中app卡顿原因分析示例

在知乎回答了一个“为什么微博的app在iPhone比Android上流畅”的问题。后面部分是一个典型的动画卡顿的性能分析过程,因此帖在这里。有编程问题可以在这里交流。知乎链接。 ========================================================= 我来说下我所知道的事情。我不知道iOS为什么流畅,但我知道一些A...

unity3D游戏开发十四之NGUI一

转:http://blog.csdn.net/kuloveyouwei/article/details/23676039 在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建。但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感。NGUI是一个功能强大的UI...

Unity学习——粒子系统(Particle System)

内置粒子系统(Bulit-in Particle System) Unity内置粒子系统允许你在Unity支持的平台中产生特效。 可以使用 C#脚本来与系统和脚本中的粒子个体交互。 粒子系统能使用Unity的底层物理系统,故可以和场景中的 Colliders交互。 使用内置粒子系统 内置粒子系统使用组件,所以在场景中放置一个粒子系统就是添加一个预先制作...

unity客户端与c++服务器之间的简单通讯_1

// 服务器 # pragma once using namespace std; # include <iostream> # include <string> # include <stdio.h> # include <winsock2.h> # pragma comment(lib,...