3、结合接口实现实时性要求比较低的游戏的UI自动化
  对于一些卡牌类游戏或者实时性要求不高的游戏,由于UI比较简单,战斗交互不复杂,实时性要求并不高。结合开发人员或者测试人员实现的一些接口,再加上基于引擎的UI驱动能力可以实现功能测试的UI自动化。
  如果有了关卡数据获取接口,通过该接口在进入战斗前获取到关卡数据,再结合战斗过程中的UI表现,通过一定的逻辑判断可以实现战斗过程的UI自动化。
  如果有了结算数据获取接口,通过该接口在战斗结束后获取该局的结算数据,再获取结算UI显示数据即可以验证结算结果UI显示是否正确。
  这种方式只需要游戏提供接口,可能会需要改动游戏代码,如果通过协议截获的方式对游戏程序影响小,那么对UI的驱动基本不需要改动游戏代码,只在引擎一级简单修改即可实现。
  4、结合AI实现实时性要求很高的游戏的UI自动化
  对于一些复杂的,对实时性要求很高的动作类游戏,比如格斗、射击类游戏,则建议结合AI来实现UI自动化测试。AI实现对实时性要求很高的战斗过程的自动化,并对外提供接口用以获取战斗数据。
  利用基于引擎的UI驱动能力实现其他模块的自动化,结合AI实现战斗模块的自动化,从而实现整个游戏的UI自动化测试。
  可能会有人认为:既然有了AI,可以完全用AI实现自动化测试。
  但是UI自动化测试不仅仅需要UI驱动能力,还需要自动化测试框架提供调度、执行、统计、展示等功能,这些功能显然不适合让AI来实现。AI适合实现战斗的驱动及对外提供游戏数据获取接口。AI一般集成在游戏内部,显然不适合用来完成整个游戏的自动化测试功能。
  结合AI实现的UI自动化成本是高的,需要开发AI代码,好在一般具有一定规模的游戏开发团队也都会自己开发AI来做一些开发自测或者作为内挂提供游戏托管功能,所以只需要在这些已有的AI上扩展一些功能即可,成本也是可控的。
  以上是我对游戏UI自动化测试的一些想法,各个游戏可以根据各自项目的情况有选择性的实施投入产出比可控的UI自动化测试。