Poco的介绍和入门教学

Poco的介绍和入门教学

前言

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

示例

原生应用

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

准备工作:下载 Airtest IDE,解压并运行

Android 原生应用
  1. 准备一台Android手机,打开USB调试功能,然后连接电脑。正常情况下,就可以在Airtest IDE中看到手机列表:

image

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

image

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1VcVAbZ-1575428725532)(https://note.youdao.com/yws/public/resource/dfaa41006917d2065f515aa155a9a7a8/8CF2A29A0162408E829C15884B98655B?ynotemdtimestamp=1562643575542)]

  1. 与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手机上进行自动化测试(下))。

iOS 原生应用

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

  1. 连接iOS手机,启动ios-Tagent项目,以Test方式运行到手机上。
  2. 使用iproxy命令启动代理
iproxy 8100 8100

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

  1. 启动Airtest IDE, 输入proxy地址,即可连接iOS手机

image

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

image

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

游戏

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

Android 游戏
  1. 参考 引擎接入指引,接入Poco-sdk。如下是Unity中接入方式:

image

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

image

  1. 在选择Unity模式之后,Airtest IDE会自动插入poco的初始化代码:
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()

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

iOS 游戏
  1. 同样的,先完成引擎SDK接入,然后通过Airtest IDE连接iOS手机
  2. 与Android不同的是,iOS Unity Poco的连接需要启动两个proxy,8100端口用于连接iOS手机,5001端口用于连接poco-sdk的rpc端口
iproxy 8100 8100
iproxy 5001 5001

这里的iproxy相当于adb中的forward

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

image

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

Poco的平台支持情况

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

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

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

更多详细资料参考

请查看Poco官方文档获得更多教程与API信息,这里是一些关注度较高的内容:

想获取更多教程文章,欢迎关注我们的官方公众号AirtestProject,查看往期精彩教程:
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值