三、详解Poco辅助窗功能

1. 查看不同项目的UI树

Poco 是一种 基于UI识别 的测试框架。AirtestIDE对Poco框架进行了使用支持,提供了UI查看、脚本自动录制等辅助功能。

Poco对不同类型的应用支持情况:

平台AirtestPoco
Android 原生APP直接使用
iOS 原生APP直接使用
Unity3DPoco-SDK接入文档
Cocos2dx-luaPoco-SDK接入文档
Cocos2dx-jsPoco-SDK接入文档
cocos-creatorPoco-SDK接入文档
EgretPoco-SDK接入文档
UE4Poco-SDK接入文档
Other engines可自行接入
WeChat Applet&webview参考文档 随着微信更新可能会失效
Windows, MacOS努力开发中,敬请期待
Netease网易内部引擎帮助文档

在IDE中,我们在设备窗口打开待测应用之后,就可以到Poco辅助窗中下拉选择对应的poco模式,来查看应用的UI树了(选择模式时,脚本编辑窗口顶部会让我们选择是否插入对应的初始化代码,我们选择Yes即可):

image-20210930164537436

注意

除了Android和iOS原生应用,无需接入pocosdk,在辅助窗内选择对应的模式即可查看应用的UI树;其他引擎渲染的游戏应用,都需要 事先在游戏应用的项目源码中接入pocosdk ,之后再打包出来安装到待测设备上,这样才能使用poco辅助窗的对应模式来查看该应用的UI树。

2. 冻结模式查看控件

待辅助窗的UI树成功刷出来之后,我们可以利用冻结模式来查看控件的详细属性:

freeze

1)主要用途

查看当前画面中各位置的UI呈现范围。

2)进入方式

点击冻结按钮 / 或者 单击UI渲染树上任意条目

3)具体表现

  • 屏幕画面会冻结(设备操作失效),UI渲染树的数据也会停止刷新。
  • 伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。
  • 鼠标左键点击,可以在log输出窗中查看对应控件的详细属性。

4)层叠UI

可以通过右键菜单,对不同层叠顺序的UI进行选择。

5)退出方式

再次点击冻结按钮 / 或者 右键菜单-"Poco Mode"-"Normal"

freeze-2

3. 检视模式查看控件

或者我们可以使用监视器模式来查看应用的控件详情,与刚才的冻结模式最大的区别是,此时查看控件,如我们对控件进行操作,设备画面也会跟着变化:

check

1)主要用途

​ 伴随设备操作,查看不同页面UI的渲染情况。

2)进入方式

​ 点击检视器按钮。

3)具体表现

  • 设备画面可以正常交互,UI渲染树的数据正常刷新。
  • 伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。
  • 鼠标左键点击,可以在log输出窗中查看对应控件的详细属性。

4)层叠UI

可以通过右键菜单,对不同层叠顺序的UI进行选择。

5)退出方式

再次点击检视器按钮 / 或者 右键菜单-"Poco Mode"-"Normal"

4. 节点自助搜索

点击UI树的控件,Ctrl+F 可以 隐藏/显示 搜索框 (支持拼音模糊搜索):

search

5. poco脚本录制功能

合理借助脚本录制辅助功能,可以大大提高poco脚本的书写效率。当前AirtestIDE提供的Poco录制功能分为两种:单步录制、伴随操作自动录制。

1)单步录制Poco脚本

单步录制Poco脚本包含以下2种方式:

  • 生成UI节点的poco代码:
    双击UI树中的目标条目,即可插入对应UI节点的poco代码。
  • 生成UI节点的x-path代码:
    UI树中的目标条目上,点击右键菜单-'UI path-code',即可生成完整父子链的poco代码。

record01

注意

单步录制的代码中的操作代码(如 :".click()" 等)需要手动添加。

2)自动录制Poco脚本

record02

① 进入方式

点击Poco自动录制按钮。

② 具体表现
  • 设备画面可以正常交互,UI渲染树的数据正常刷新。

  • 伴随鼠标在画面中的移动,对应位置的UI元素会被标记框标出。

  • 伴随设备操作(点击、滑动),即可插入对应UI节点的poco代码。

③ 退出方式

再次点击自动录制按钮 / 或者 :右键菜单-"Poco Mode"-"Normal"

6. windows-app的poco辅助功能

有一些Windows-app已经接入了 pocosdk(例如Unity游戏窗口),我们同样能够使用AirtestIDE来方便地查看和选中UI节点。但是在使用这个功能前,需要事先告诉AirtestIDE这个Windows窗口所在位置以及窗口大小。

在“选项”-“设置”-“Poco”,选择“Windows Content Area Rect”,框选窗口主画面后双击确认(右键/esc可取消),随后即可开始使用Poco相关功能了,如图所示:

image

注意

目前Poco仅支持少量接入了pocosdk的Windows-app,更多Windows-app的支持可以期待我们后续版本的功能更新!

7. poco辅助窗使用常见问题

1)不清楚自己的应用该选择何种Poco模式

  • Android原生应用选择Android模式
  • iOS原生应用选择iOS模式
  • 游戏应用最好向开发咨询是何种引擎渲染,之后接入pocosdk再来选择对应的模式,比如unity游戏则选择unity模式

2)辅助窗刷不出UI树

① 原生应用

目前Android和iOS原生应用无需接入poco-SDK即可直接使用,在Poco初始化时,会向手机中安装相关的apk,请务必保证手机允许了相关apk的安装。部分型号的手机需要在设置中开启 允许通过ADB安装应用 等相应选项才能进行安装。

部分厂商的手机需要额外的设置,例如需要手工在输入法选项中,将Yosemite输入法设置为默认,详情请参考 部分厂商设备特殊问题

② 游戏应用

游戏应用都是由各种引擎渲染的,都需要事先 接入poco-SDK 才能获取到UI结构信息(游戏没有事先接入SDK是无法直接看到UI树的),请务必仔细阅读 接入文档 ,进行SDK接入后再进行使用。

3)录制的脚本无法回放

录制的Poco脚本并不一定是正确/最优的脚本,如果录制的Poco脚本无法达到我们的预期效果,我们可以查看UI树然后自己重新编写正确的Poco脚本。这部分内容可以参考我们的 Poco脚本编写 章节。

4)一段时间后UI树没有正确刷新

可以尝试先将Poco模式选项的下拉菜单改为 Stop,再重新选择你所需要的模式,例如 Android, IDE将重新建立与手机的Poco通信连接。

有时候也可能因为手机内存不足,手机自动将后台的pocoservice进程关闭了,导致连接断开,这种情况建议尝试换一台配置更好的手机重试。