一、基本思路

熟悉Unity3D开发后就会发现,游戏的每个场景都有一个UI树,而通过这个UI树的根节点可以遍历整个UI树的所有UI对象。而Unity3D是通过挂载脚本的方式来控制游戏逻辑的,因此我们可以在场景的UI树的跟对象上挂载脚本来获取整个UI树的所有UI对象。再通过GameObject的GetComponent方法来获取我们需要的组件,利用组件属性的Get、Set方法来操控游戏UI对象,而不需要修改游戏代码。

然后我们再通过Socket接口来连接自动化测试框架和挂载在游戏上的脚本,使自动化框架可以操控游戏对象。对于一些Unity3D组件较难模拟的事件,例如touch事件、重力感应事件等,我们可以通过编写一个Android插件的形式来模拟Android事件,然后在Unity3D脚本中调用Android插件即可。

二、意义及优势

1、Unity3D引擎日渐成为主流,对基于Unity3D引擎的游戏的自动化非常有必要

2、基于引擎的自动化测试不需要修改游戏代码,不会带入第三方bug

3、基于引擎自动化东距可以跨平台(Android插件这部分不能跨平台)

4、SDK和自动化框架基于Socket传送数据,对自动化框架没有平台要求

5、可以兼容其他的自动化测试框架。

三、具体方案

1、基于Unity3D引擎的游戏结构

首先一个游戏可以有多个场景,但是每次Application只载入一个场景。

场景中可以挂载多层Gameobject树形结构,每个游戏UI对象都是一个GameObject对象。

对于不同UI对象,GameObject添加不同的组件来体现不同的特性。

游戏逻辑是通过脚本来实现的,而脚本直接挂载到对应的GameObject上&#x

android自动化测试unity,基于Unity3D引擎的UI自动化测试方案相关推荐

  1. 干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用

    作者简介 Leo Li,携程高级软件工程师,负责度假 BDD-Test UI 自动化测试框架的研发.维护和迭代等工作. 如今无论大公司还是小公司都越来越重视测试质量.并且前端领域越来越繁荣,前端工程也 ...

  2. 基于 KIF 的 iOS UI 自动化测试和持续集成

    客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...

  3. 基于图片识别的 UI 自动化测试工具 SikuliX

    简介 SikuliX 是一款开源的 GUI自动化测试工具,它的前身是 Sikuli(上帝之眼).SikuliX 在设计上使用到了图片识别技术,会通过不停的对桌面进行截图,然后与预期图片进行比较来判断交 ...

  4. python通信自动化测试_基于Python的无线通信设备自动化测试软件的研制

    基于Python的无线通信设备自动化测试软件的研制 中国电子科技集团公司第十研究所 冯启俊 [期刊名称]<电子世界> [年(卷),期]2019(000)015 [总页数]2 无线通信设备的 ...

  5. 基于Unity3d 引擎的Android游戏优化 1

    最近项目进入收尾阶段,之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是Android上,试过几款手机,从低端到高端,发 ...

  6. 基于Unity3d 引擎的Android游戏优化

    更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式, 对于透明贴图,我们只能选择RGBA 16bit 或者 ...

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

    版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 此文章来源于项目官方公众号:"AirtestProject" 由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没 ...

  8. 基于Unity3D引擎制作大地图

    2.制做一张灰度图: 需求:Photoshop            GIMP 先Google 搜 WorldMap-A_non-Frame.png  这个地图下载一张到你pc 然后gimp打开它,  ...

  9. 基于AI的网易UI自动化测试方案与实践

    参考:https://time.geekbang.org/dailylesson/detail/100016410

最新文章

  1. 牛客16502 螺旋矩阵
  2. mysqlmodify_modify与change的区别
  3. Leetcode-整数反转 C++
  4. 7月-伟大的事业,一般都是在下半年完成的
  5. hdu4727搜索+stl。轻微剪枝
  6. 微信小程序安卓和ios时间格式问题
  7. MICROSOFT REPORTVIEWER(微软报表)项目中的应用
  8. MDK5 代码折叠功能
  9. xampp运行不成功或者安装过程中提示找不到文件“-n”,没有安装vcredist_x86的解决方法
  10. 数据库ALTER语句使用
  11. 朗逸保险丝安培数及保险丝配置说明
  12. 吃鸡是python写的吗_用Python来P图,分析怎么吃鸡?只有想不到,没有做不到
  13. 用python做系统的感悟_python感悟
  14. 电脑连接电视html,电脑HDMI连接电视无信号的解决方法
  15. Sort sort =new Sort(Sort.Direction.ASC,“id“)
  16. 2021SC@SDUSC 开源项目GFPGAN -7-experiments
  17. 使IT慢如蜗牛的十二个不良习惯
  18. v-for 和 v-show 的区别
  19. 使用 docker 进行iost 测试链节点搭建
  20. H.264/AVC 中的宏块、片、帧

热门文章

  1. 二元函数凹凸性判定及最值定理
  2. CMS系统的页面静态化流程
  3. 有限状态自动机(FSM)的一些逻辑
  4. iOS面试攻略,你必须拥有
  5. win系统加入方舟服务器秒退,win10方舟生存进化进服务器闪退解决方法
  6. 孙子兵法 三十六计(猫鼠版)
  7. Win7安装CAD出现错误1606 最简单的解决方法
  8. python爬虫之创建表格
  9. Axure 如何在页面加载时,设置文本框的内容为当前日期
  10. 马云推出的“天猫精灵”到底有多牛? 细思极恐怖