Airtest+Poco游戏自动化测试

  1. 框架工具选取

    Airtest + Poco

    Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。

    Poco是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用。

    Poco插件可以准确地定位到当前游戏画面上的元素在实际UI结构树中的位置,还能够获取到这个按钮的名字、坐标等详细信息,并且我们还能通过编写一定的筛选语句来获取到这个按钮,并对它进行相应操作。

    例如:poco(“Go”).click() #"Go"是按钮的名字

    这是一个简化的原理图,对比了Airtest和Poco的操作原理:

    可以看到,Poco最大的区别就是多了一个Poco-SDK模块,我们需要将Poco-SDK嵌入到被测游戏中,才能够顺利地获取到UI结构树,从而进行接下来的解析和处理操作。

  2. 如何接入Poco

    zmg课件使用cocos 2dx-js引擎,接入细节请参考官方文档https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-js-beta

3.自动化demo代码地址

  https://gitlab.zmaxis.com/zm_test/zmg_ui_auto

如何编写自动化脚本
UI测试框架结构

1.课件自动化框架与UI自动化框架结构相同采用PageObject设计模式,将用例,操作,元素解耦。

整体框架分为3层

2.元素层

元素层负责管理页面元素属性,所有页面控件元素在zmg_ui_auto\view\ZMG.xml中添加(以便后期维护,页面元素定位属性变化,只需在ZMG.xml文件做相应的改变)

添加方法

例如: 下方代码中activity name代表对应课件 elementname 代表控件名称 pathtype代表通过什么方法搜索元素 pathvalue代表改控件对应属性的值

ddx button NAME ddx 3.controller层

页面操作方法在controller中添加

将所有zmg课件公用的操作方法(如翻页)添加到ZMG_common_controller文件中

将zmg课件独有的操作方法添加到ZMG_课件名_controller(如 “掌门玩具展 ” 课件独有的操作添加到ZMG_掌门玩具展_controller中)

4.case层

case层负责调用controller层的方法 记录结果

在zmg_ui_auto\tests中加新用例,每个课件对应一个测试文件

编写用例需在用例中添加Assert断言,确保用例执行与预期结果一致

程序流程

1.在cmd窗口执行"python -m poco.utils.net.stdbroker ws://:5003 tcp://:15004"(开启Poco代理)(后期需要调研是否能通过程序实现)

2.使用Selenium Webdriver启动浏览器并且打开对应课件,Poco根据窗口Title用正则匹配连接(后期可优化)

3.因为课件特殊性操作分为2部分

      课件换页操作由于("上一页"和"下一页")按钮为web元素,需用Selenium driver定位操作

      游戏界面控件元素用Airtest+Poco定位操作

Airtest+Poco游戏自动化测试_第1张图片

你可能感兴趣的:(测试)