Poco的介绍和入门教学
Poco的介绍和入门教学
前言
前面我们已经介绍了基于图像识别的测试框架Airtest,通过图像识别,已经可以编写大部分的测试脚本。但是在某些特殊情况下,例如对于游戏或App里的动态元素,通过图像识别定位较为困难。所以,我们的Airtest Project解决方案也提供了另外一种基于UI控件搜索的自动化框架 Poco,下面我们来通过一个示例来看看Poco如何使用。
示例
原生应用
对于Android和iOS平台上的原生应用(包括系统界面),可以直接使用Poco
准备工作:下载 Airtest IDE,解压并运行
Android 原生应用
- 准备一台Android手机,打开USB调试功能,然后连接电脑。正常情况下,就可以在Airtest IDE中看到手机列表:
- 点击
connect
,即可在Airtest IDE 中看到设备屏幕。现在进入Android主界面,点击左侧的Poco辅助窗,选择Android
模式,即可看到当前界面的UI树结构:
- 选择Poco辅助窗口中的
Poco Inspector
按钮,即可对页面上的UI控件进行定位:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1VcVAbZ-1575428725532)(https://note.youdao.com/yws/public/resource/dfaa41006917d2065f515aa155a9a7a8/8CF2A29A0162408E829C15884B98655B?ynotemdtimestamp=1562643575542)]
- 与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信息。具体步骤如下
- 连接iOS手机,启动ios-Tagent项目,以Test方式运行到手机上。
- 使用
iproxy
命令启动代理
iproxy 8100 8100
如果希望在另外一台电脑连接iOS手机,可以安装wdaproxy
- 启动Airtest IDE, 输入proxy地址,即可连接iOS手机
- 选择Poco辅助窗中的
iOS
模式,即可看到当前界面的UI树结构:
- 获取到界面UI层级关系之后,我们就可以用Poco提供的API来编写自动化脚本了~
游戏
由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没有系统原生的控件信息,所以对于游戏,我们需要接入 poco-sdk 才能获取到游戏界面中的控件信息。下面以Unity开发的手游为例,介绍如何在Android和iOS平台进行连接。
Android 游戏
- 参考 引擎接入指引,接入Poco-sdk。如下是Unity中接入方式:
- 启动Airtest IDE,并启动对应的游戏,选择Poco辅助窗中的
Unity
模式,即可看到当前界面的UI树结构:
- 在选择Unity模式之后,Airtest IDE会自动插入poco的初始化代码:
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
之后的脚本编写,就可以利用Poco提供的API对游戏界面上的元素进行操作了
iOS 游戏
- 同样的,先完成引擎SDK接入,然后通过Airtest IDE连接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上的游戏编写自动化测试脚本了。
Poco的平台支持情况
Poco在大多数平台中,需要事先接入Poco-SDK才可正常使用 ,在少数平台(如Android与iOS原生APP)可直接使用Poco,目前支持平台如下:
平台 | Airtest | Poco |
---|---|---|
Cocos2dx-js, Cocos2dx-lua | √ | 接入文档 |
Unity3D | √ | 接入文档 |
Android 原生APP | √ | 直接使用 |
iOS | √ | 帮助文档 |
Egret | √ | 接入文档 |
Other engines | √ | 可自行接入 |
WeChat Applet&webview | √ | 参考文档 随着微信更新可能会失效 |
Windows, MacOS | √ | 敬请期待 |
Netease | √ | 网易内部引擎帮助文档 |
在文档Poco支持平台中,可以获得最新更新的平台支持情况。
更多详细资料参考
请查看Poco官方文档获得更多教程与API信息,这里是一些关注度较高的内容:
- 入门教学用例
- 如何使用Poco选择UI对象?
- API文档参考:Poco instance API,UI proxy object API
- 各类引擎如何接入Poco SDK?
- 如何为自定义引擎编写Poco SDK?
想获取更多教程文章,欢迎关注我们的官方公众号AirtestProject,查看往期精彩教程:
Poco的介绍和入门教学相关推荐
- Windows Azure Marketplace入门教学-利用TabLeau Public构建可视化DataMarket应用
公告 :本博客为微软云计算中文博客 的镜像博客. 部分文章因为博客兼容性问题 ,会影响阅读体验 .如遇此情况,请访问 原博客 . 在上一篇教学Windows Azure Mar ...
- 计算机word入门教学ppt,word2003入门教学课件
word2003入门教学课件 学习内容分析 Word 2003文字处理工具软件是中学信息技术课的基础知识,文字处理是安排在七年级进行.这节课的教学内容是初识Word 2003,之前学生已经掌握了写字板 ...
- CANoe 11.xx 快速入门教学
CANoe 11.xx 快速入门教学 本教程主要使用1630A为例并且笔者目前也只使用过1630A.本教程主要目的是让读者可以从零开始学会CANoe最基本的使用,并且笔者也是刚刚入门,通过浏览文献.博 ...
- Visual SourceSafe 入门教学(转)
http://blog.csdn.net/gooddasenlin/archive/2007/11/13/1881304.aspx Visual SourceSafe 入门教学 作者:蔡焕麟 日期:S ...
- MySQL 入门教学,真的已经很简洁了
MySQL 阅读本文前必看:本文是 MySQL 入门教学,从简介 -> 建立数据库 -> 理解数据类型和字段约束 -> 建立数据表 -> DML(增删改,查单独在我的另一篇博客 ...
- 1.偏头痛杨的Java入门教学系列之认识Java篇
转载自:偏头痛杨的Java入门教学系列 地址:https://blog.csdn.net/piantoutongyang/article/details/70138697 前戏 今天我们主要来介绍一下 ...
- Taro 框架入门教学视频
Taro 框架入门教学视频 千锋教育出品这个教程 https://www.bilibili.com/video/BV1W7411v7LU ,比系统学习文档更快捷(文档可能很多用不上)2020 年初,以 ...
- Springboot 整合 ElasticSearch 入门教学必看
ElasticSearch 相比搜到这篇文章的人,都已经有过对它的了解, 一种流行的企业级搜索引擎,是一个分布式,高性能.高可用.可伸缩的搜索和分析系统. 那么用我粗俗的言语来说,它就是提供一个存储数 ...
- 视频教程-一夫C4D教程Cinema4D R20零基础建模渲染动画入门教学课程-Cinema 4D
一夫C4D教程Cinema4D R20零基础建模渲染动画入门教学课程 中国电商服务联盟品牌讲师.中国国际互联网节品牌顾问. 12年视觉设计经验,5年视觉讲师经验.电商品牌视觉策划讲师 .曾任知名电商企 ...
最新文章
- 【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化
- 飞花的糖果_JAVA
- BitmapUtil【缩放bitmap以及将bitmap保存成图片到SD卡中】
- 10.类的构造(1)
- Docker Compose 项目
- amd平台linux驱动安装失败,ati闭源驱动安装失败,问题解觉不了。
- Spring : ImportBeanDefinitionRegistrar源码分析
- 天大 ACM 1090. City hall
- 计算机二级考试基础知识文档,计算机二级公共基础知识(考试必考)
- 中原工学院计算机网络,计算机网络 考试重点 中原工学院.doc
- VB通用对话框commom dialog中关于filterindex的设置
- 就叫2021年度总结吧
- 广东省2021年夏季新冠疫情期间中医治未病指引
- 神经网络可以解决的问题,人工神经网络通过调整
- 定义一个长方形类,定义 求周长和面积的方法,然后定义一个测试了Test2,进行测试
- 【Leetcode】1905. Count Sub Islands
- 机器学习入门课程笔记(一)——deeplearning.ai: Neural Networks and Deep Learning
- c语言从键盘输入一个百分制成绩score,C语言 基础练习40题
- 原生js之运动函数的封装
- php 银行支付通道_PHP银联在线支付接口的开发实例