测试工具GAutomator的研究(一)——如何使用GAutomator

GAutomator简介

GAutomator是腾讯wetest测试平台下的一个针对手游的开源的自动化测试框架。源码在GitHub上有:GAutomator。GAutomator将sdk嵌入到游戏中,然后通过adb连接客户端和服务器端(手游端),最后通过在客户端写测试脚本来对游戏进行自动化测试。

使用

1.下载源码

github上下载源码。

2.将sdk嵌入到Unity工程

sdk支持两种游戏开发平台:Unity和Unreal。支持两种游戏运行平台:Android和IOS。在Unity中又支持两种UI种类:NGUI和Unity自带的UGUI。本文只记录Unity+Android+UGUI的使用。其余平台的使用可以参考源码中的各个使用文档。

  1. 打开Unity工程。
  2. 拷贝SDK。
  1. 将源码中的GAutomator/UnitySDK/compiled/UGUI/U3DAutomation.dll拷贝到Unity工程Assets目录下的任意合法位置。
  2. GAutomator/UnitySDK/compiled/u3dautomation.jar拷贝到Unity工程Assets/Plugins/Android目录下。
  1. 挂载sdk脚本。为了能让sdk在游戏运行时也运作起来,需要像普通C#脚本一样挂载在一个激活的游戏物体上。为此:
  1. 新建一个空的游戏物体,在上面挂上U3DAutomationBehaviour脚本。

这个脚本是在U3DAutomation.dll里面定义的一个类。对应的源码在工程源码下可以找到。后面讲。不过,官方的文档推荐用宏判定的方式动态挂载这个脚本,使得游戏在非测试的环境下不会运行这个测试SDK。具体看官方文档。

  1. 至此,嵌入服务器端SDK的游戏工程就完成了。将其打包成APK文件,找个安卓机器安装就行了。本文将使用网易的MUMU模拟器。
3.使用adb连接安装了游戏的安卓设备

adb即Android Debug Bridge,是一个非常常用安卓调试工具。可以单独安装adb,也可以跟某些IDE一起安装。我是直接装了android studio,这样adb和android sdk也都免了。具体安装adb的方式询问度娘或google,具体的使用方式也参考度娘或Google。

  1. 如果你使用的是网易的MUMU模拟器,那么打开模拟器之后,一般需要手动连接adb
adb connnect 127.0.0.1:7555
  1. 个人认为最好用的是雷电模拟器(记得给我打广告费),雷电模拟器会自动帮你连接adb。所以你登上雷电模拟器之后,用以下命令就可以查询到对应的设备号:
adb devices -l
  1. 你也可以选择用真机调试,用USB连接手机至电脑
  1. 打开机器的开发者模式
  2. 打开机器的USB调试选项
  3. 有些手机还需要将USB连接功能选至“传输文件”,adb调试才会生效

此时,你用上一条的命令应该就可以查询到真机的设备号。

4.运行游戏

在安卓平台上运行安装好的游戏,我们需要让sdk在测试脚本启动前运行。如果sdk成功运行,那么在开启游戏的最开始的几秒钟,游戏画面的左上角会显示红红的“GAutomator”字样。

5.打开测试脚本工程开始测试

用任何一款IDE或编辑器打开GAutomatorAndroid目录。这是针对Android平台的自动化测试脚本工程根目录。在这个根目录创建一个my_test.py脚本,写入以下代码:

from wpyscripts.tools.basic_operator import * # 导入必要的模块

def test():
	# 获得引擎管理模块实例和日志模块实例
    engine=manager.get_engine()
    logger=manager.get_logger()
	# 获取sdk版本信息
    version=engine.get_sdk_version()
    logger.debug("Version Information : {0}".format(version))
	# 获取当前游戏场景
    scene=engine.get_scene()
    logger.debug("Scene :   {0}".format(scene))
	# 查找一个名为Sample的按钮
    sample_button=engine.find_element("/Canvas/Panel/Sample")
    logger.debug("Button : {0}".format(sample_button))
	# 点击该按钮
    screen_shot_click(sample_button)

if __name__=="__main__":
    test()

然后运行该脚本。

python my_test.py

如果游戏中存在一个/Canvas/Panel/Sample按钮,则该按钮会被点击。

6.用start.py启动脚本

GAutomator提供了一个start.py脚本来启动你的代码。在此之前,他会做一些准备工作。比如读取命令行参数,一些初始化的工作。如果你想让脚本跑在多个机器上,那么你就需要为每台机器指定adb forward的端口,为每个脚本指定对应机器的设备号。比如用如下方式启动:

python start.py --serial=emulator-5554 --uiport=5520
python start.py --serial=emulator-5556 --uiport=5530

具体的操作请阅读源码。

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值