GAutomator是一个针对Unity手游的UI自动化测试框架。设计理念与使用方式,类似于Android的UIAutomator。GAutomator以Unity中的GameObject为操作对象,通过操作GameObject实现UI自动化测试。基于GameObject的方式,不存在手机分辨率适配的问题,一份脚本能够运行在不同手机之上,基于GameObject的另外一个优点为鲁棒性较强,游戏的UI界面经常发生变化,GameObject变化频率相对较低。
一 运行环境要求
window平台下运行,linux可运行脚本(GAutomator)。
python 2.7版本
环境变量中包含有adb
工程中已包含所有的库,打开即可编写测试用例,写完即可运行(考虑到国内公司网络限制较多,python库的安装非常麻烦)。
GAutomator被测试的游戏需要集成 SDK ,WeTest SDK及打包方式。GAutomator中在Sample目录下自带了一个集成有WeTest SDK的demo游戏,可以使用该游戏进行自动化的练习。GAutomator使用说明文档,在doc下面也有详细的接入文档与使用说明文档。GAutomator与UIAutomator类似,提供了一个UI控件信息查看器GAutomatorView,可以查看UI对于的GameObject及相关信息,GAutomatorView使用说明文档。
强烈建议使用pycharm编写python代码
import wpyscripts.manager as managerfrom testcase.tools import *def test(): engine=manager.get_engine() logger=manager.get_logger() version=engine.get_sdk_version() logger.debug("Version Information : {0}".format(version)) scene=engine.get_scene() logger.debug("Scene : {0}".format(scene)) sample_button=engine.find_element("/Canvas/Panel/Sample") logger.debug("Button : {0}".format(sample_button)) #engine.click(sample_button) screen_shot_click(sample_button) test()
step 1:代码保存为sample.py,位置与main.py同级目录,这样能够查找到GAutomator的相关库;
step 2:拉起游戏,然后运行上面的代码;
step 3:点击sample,跳出一个气球
三 GAutomator结构
GAutomator目前仅支持Unity。GAutomator是非跨进程的,所以需要在游戏中集成SDK。集成SDK之后会在游戏中启动一个socket服务,GAutomator Python端通过adb与wetest sdk建立端口映射。GAutomator通过socket向WeTest SDK发送请求,包括查询GameObject、获取UI的位置信息、执行点击操作等。手游自动化测试过程中,还需要操作Android标准控件,如QQ登录等。GAutomator使用xiaocong uiautomator作为pc端调用uiautomator的解决方案。
严格意义上来说,GAutomator并不算一个库,算是一个工程。GAutomator并没有采用setup.py安装的方式。主要在公司网络环境下,安装Python库可能并不是一件容易的事情。我们想提供一种方式,编写完拷贝到任何一台安装有python环境的电脑上都能运行,免去打包和安装库的烦恼。