游戏自动化测试-局内战斗

本文详细介绍了游戏局内战斗的自动化测试流程,包括利用poco的unitysdk进行UI自动化,与AI决策服务交互,执行决策并进行多轮重开检测。通过获取UI数据,提取关键信息,结合AI接口返回的决策执行游戏操作,如刷棋盘、买棋子等。同时,文中探讨了优化问题,如黑名单机制、减少UI获取时间,并提出了注意事项,以应对自动化过程中的挑战。
摘要由CSDN通过智能技术生成

一场竞技游戏,我们在这里稍微划分一下,将其分为局外界面和局内战斗。举个例子,比如LOL,在大厅、组队、选英雄界面这些都是局外界面。当我们等待读完长长的进度条,进入到游戏,听到"咚咚咚咚咚"的声音后英雄出现到我们眼前,这个时候,你就已经到了局内战斗的部分里了,也就是我们今天要讨论的内容。

1. 概述

本文主要对局内战斗的自动化测试进行讲解。包含如何实现战斗自动化的流程和脚本运行本身框架进行介绍,读者应具备一些python的编程经验和UI自动化的开发经验。

对于游戏的UI自动化这里采用poco的unitysdk形式进行实现。稍微介绍一下poco。这是一个类似appium的客户端UI自动化框架,利用界面元素来进行UI自动化操作。

官方文档:
https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html

元素来源于UITree,UITree源于接入unitysdk的游戏客户端。通过与外部挂载agent进行socket通信,从而将使用unity引擎游戏的UITree返回给外部供自动化相关。

UITree里面包含对应Tree中元素的所有属性信息,其中包含元素的position属性(位置信息),这也是我们得以锁定对应元素进行操作的核心依据。

通过pocosdk获取游戏客户端UI层信息,对UI信息中的具体内容做对应处理。

最后反馈对应数据给AI,由AI进行对应决策,将决策信息返回给本地后执行对应的UI自动化操作代码,从而完成决策,通过大量决策的实施,完成整局的实时操作。

再引入多轮重开检测机制,进而完成局内战斗的自动化对战。

一些简单的演示:

在unity项目中,需要在unity中安装Poco的SDK

Poco调用方法


import time
from poco.drivers.unity3d import  UnityPoco

poco = UnityPoco()

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

shell = poco('shell').focus('center')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值