• 3 | Poco的介绍和入门教学


    转载:https://airtest.doc.io.netease.com/tutorial/0_automated_testing/

    3 | Poco的介绍和入门教学

    3.1 前言


    前面我们已经介绍了基于图像识别的测试框架Airtest,通过图像识别,已经可以编写大部分的测试脚本。但是在某些特殊情况下,例如对于游戏或App里的动态元素,通过图像识别定位较为困难。所以,我们的Airtest Project解决方案也提供了另外一种基于UI控件搜索的自动化框架Poco,下面我们来通过一个示例来看看Poco如何使用。



    3.2 示例


    3.2.1 原生应用

    对于Android和iOS平台上的原生应用(包括系统界面),可以直接使用Poco。

    准备工作:下载AirtestIDE,解压并运行。

    (1)Android原生应用

    • 准备一台Android手机,打开USB调试功能,然后连接电脑。正常情况下,就可以在AirtestIDE中看到手机列表:

    • 点击connect,即可在AirtestIDE中看到设备屏幕。现在进入Android主界面,点击左侧的Poco辅助窗,选择Android模式,即可看到当前界面的UI树结构:

    • 选择Poco辅助窗口中的Poco Inspector按钮,即可对页面上的UI控件进行定位:

    • 与Airtest的使用方式类似,我们可以使用Poco提供的方法对界面上的元素进行操作:

    # Airtest IDE自动插入的初始化语句
    
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    
    # 点击设置图标
    poco(desc="设置").click()
    

    如上所示代码,即可通过UI属性进行元素定位,并进行操作。

    关于使用Poco测试Android原生应用的更多细节,可以参考教程《如何在Android手机上进行自动化测试(下)》

    (2)iOS原生应用

    对于iOS原生应用,Poco同样可以获取到UI层级结构。除了下载运行AirtestIDE之外,我们还需要运行iOS-Tagent项目,才可以获取到iOS界面的UI信息。具体步骤如下:

    • 连接iOS手机,启动iOS-Tagent项目,以Test方式运行到手机上。

    • 使用iproxy命令启动代理。
    iproxy 8100 8100
    

    如果希望在另外一台电脑连接iOS手机,可以安装wdaproxy

    • 启动AirtestIDE,输入proxy地址,即可连接iOS手机。

    • 选择Poco辅助窗中的iOS模式,即可看到当前界面的UI树结构:

    • 获取到界面UI层级关系之后,我们就可以用Poco提供的API来编写自动化脚本了。

    3.2.2 游戏

    由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没有系统原生的控件信息,所以对于游戏,我们需要接入Poco-SDK才能获取到游戏界面中的控件信息。下面以Unity开发的手游为例,介绍如何在Android和iOS平台进行连接。

    (1)Android游戏

    • 参考引擎接入指引,接入Poco-SDK。如下是Unity中接入方式:

    • 启动AirtestIDE,并启动对应的游戏,选择Poco辅助窗中的Unity模式,即可看到当前界面的UI树结构:

    • 在选择Unity模式之后,AirtestIDE会自动插入Poco的初始化代码:

    from poco.drivers.unity3d import UnityPoco
    poco = UnityPoco()
    

    之后的脚本编写,就可以利用Poco提供的API对游戏界面上的元素进行操作了。

    (2)iOS游戏

    • 同样的,先完成引擎SDK接入,然后通过AirtestIDE连接iOS手机。

    • 与Android不同的是,iOS Unity Poco的连接需要启动两个proxy,8100端口用于连接iOS手机,5001端口用于连接Poco-SDK的RPC端口。

    iproxy 8100 8100
    iproxy 5001 5001
    

    这里的iproxy相当于ADB中的forward。

    • 连接好iOS手机之后,选择Poco辅助窗中的Unity模式,即可看到当前界面的UI树结构:

    • 之后即可通过Poco提供的API,对iOS上的游戏编写自动化测试脚本了。



    3.3 Poco的平台支持情况


    Poco在大多数平台中,需要事先接入Poco-SDK才可正常使用,在少数平台(如Android与iOS原生APP)可直接使用Poco,目前支持平台如下:

    Cocos2dx-js,Cocos2dx-lua---------接入文档
    Unity3D-------------------------接入文档
    Android原生APP-------------------直接使用
    iOS-----------------------------帮助文档
    Egret---------------------------接入文档
    Other engines---------------------可自行接入
    WeChat Applet&webview------------参考文档(随着微信更新可能会失效)
    Windows, MacOS------------------敬请期待
    Netease-------------------------网易内部引擎帮助文档

    在文档Poco支持平台中,可以获得最新更新的平台支持情况。

  • 相关阅读:
    看完这篇文章,对采用.Net做网站的信心大增
    sqlserver 使用游标存储过程分页
    ViewState慎用
    [zz] C++智能指针循环引用解决
    cello 有关trigger
    cello 把事件全部统一起来,Event,StateEvent,ActionEvent
    libvirt 错误FAQ
    cello collector中为什么要设置frame_work_in_machine
    比较好的一些句型
    一些疑问
  • 原文地址:https://www.cnblogs.com/ShineLeem/p/11326174.html
Copyright © 2020-2023  润新知