08编写并运行你的第一个Poco脚本

4周前 (01-10 02:31)阅读1回复0
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值165935
  • 级别管理员
  • 主题33187
  • 回复0
楼主

同窗们好,我是网易AirtestProject的团队成员晓娟,欢送各人来到我们的教程专栏《14天Airtest主动化测试小白课程》。

上节课我们一路进修了若何编写Airtest脚本,Airtest框架的核心就是截图脚本。而我们的另一个测试框架Poco,跟Airtest的不同十分大,它的核心是元素定位。

那么今天我们就来进修下:poco脚本的编写和运行。

poco辅助窗功用

与编写Airtest脚本的步调类似,我们起首需要在IDE中毗连上1台待测设备,那里以雷电模仿器为例,毗连好设备之后,我们来看看poco辅助窗:

① 选择对应的poco形式

点击stop的下拉按钮,能够显示目前所撑持的平台,好比unity、UE4、Android和iOS等,测试哪个平台,我们就需要把那里的poco形式选到对应的平台。好比我们那里想要测安卓模仿器的原生应用,就需要鄙人拉菜单中选择安卓形式:

选择了Android形式之后,期待几秒,窗口就会刷出当前设备的UI树,而且在脚本编纂窗中,会弹出1个能否插入poco初始化代码的提醒,选择yes之后,脚本编纂窗就会被主动插入当前形式的初始化脚本:

当然,若是我们想要测试unity游戏,就需要在poco形式中选择unity,而不是Android。当UI树一般显示之后,我们就能够利用poco辅助窗的锁定UI控件或者录造poco脚本的功用了。

不外需要留意的是,除了安卓原生和iOS原生不需要接入pocosdk就能够间接显示UI树之外,其余引擎的游戏,好比unity、UE4、Cocos creator等,都需要事先按官网教程接入pocosdk后,才气够获取到poco的UI树。

各类平台接入SDK的教程汇总

1) unity3d接入教程 :https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#unity3d

2)cocos2dx-lua接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-lua

3) cocos2dx-js接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-js-beta

4) cocos-creator接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos-creator

5)Egret接入教程:https://github.com/AirtestProject/Poco-SDK/tree/master/Egret

6) UE4接入教程:https://mp.weixin.电话.com/s?__biz=MzUxMDc4NTkwMA==&mid=2247484258&idx=1&sn=0fec4461bc870077af4e096b494d646a&chksm=f97ce361ce0b6a77c885193a900d2be08d22c3cf86a0e90a5fb0e83758aaffc65a9d00ec3927&token=1860040772&lang=zh_CN#rd

7)自行接入其它引擎的教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/implementation_guide.html

8)WebView检视:https://airtest.doc.io.netease.com/IDEdocs/poco_framework/poco_webview/

9)无需接入pocoSDK的平台:Android原生、iOS原生

10)暂不撑持的平台:Windows、MacOS等

② poco检索功用

先来看下锁定查看UI控件的功用,单击像一把小锁一样的按钮,此时整个设备画面会被锁定;之后再把鼠标挪动到设备画面上,能够看到鼠标可以检索出画面内包罗的控件,而且会用1个半通明的框框住了那个控件,单击该控件,log查看窗就会显示出该控件的属性信息,那个功用能够帮忙我们快速查看控件的所有属性:

小锁右边的检索按钮,跟适才介绍的又有点差别,它能够检索当前页面的控件,但是不会锁定设备的当前页面,也就是说,跟着鼠标的点击动做,画面会跟着做出对应的响应:

③ 录造poco脚本

接下来我们看看录造按钮,跟着鼠标在设备上对各个控件停止点击或者滑动的操做,脚本编纂窗会主动生成一系列的poco脚本:

关于录造好的poco脚本,我们也能够在IDE中右键零丁运行,或者一键回放。

api介绍和定位选择器

当然,除了接纳录造的办法生成poco脚本之外,更重要的是,学会本身编写poco脚本,实现更多更复杂的需求。次要有2个问题:1个是元素的定位语句是怎么写的;第2个是poco常见的api操做有哪些。

① 定位选择器

我们先来看看第1个问题,编写元素定位语句,poco给我们供给了3种定位选择器:

一是根本选择器,即操纵元素的一些根本属性来停止定位,好比name、text等等。举个例子,poco(name="网易云音乐"),那个定位语句就是利用根本选择器停止定位的。当然我们能够不行利用1个属性来定位,括号里面能够用多个属性来定位控件。适才我们进修了若何检索控件,查看元素属性,就能够用那些属性写定位语句了。

二是相对选择器,即操纵控件之间的父子关系、爷孙关系和兄弟关系等来定位控件。例如parent()、child()、offspring()等。举个例子:poco("androidx.appcompat.widget.LinearLayoutCompat").child("搜刮"),就是典型的操纵父子关系来定位元素的,那个需要借助poco辅助窗的那棵UI树,察看目的节点附近的控件,然后操纵相对关系停止定位。有些比力难定位的节点,可能需要编写几层关系才能够定位到,好比适才我们录造的时候,就很容易呈现很长的定位语句。

三是控件挨次选择器,常用于UI树中多个不异名称的节点定位。好比,poco("com.netease.cloudmusic:id/mainActivityTab").offspring("androidx.appcompat.app.ActionBar$Tab")[0],定位的就是那4个不异名字节点的第1个,坐标是从0起头递增的。

② poco常用的api

领会完那3种定位体例之后,我们再来看看poco都有哪些常见的控件操做,那里以我们官网上供给的1个unity游戏(https://poco.readthedocs.io/en/latest/source/doc/poco-example/index.html)为例,那个demo已经事先接入了pocosdk,所以在设备上安拆好那个demo,翻开游戏,在poco辅助窗内选择unity形式,期待几秒即可刷出那个游戏的UI树了:

然后看一下,我们常见的poco功用有以下几点:

1)点击操做

poco("star_single").click()

poco(star_single).long_click()

2)读取和设置控件的属性

poco("star_single").get_name()

poco("star_single").attr(name)

poco("star_single").get_text()

poco("pos_input").set_text("123")

poco("pos_input").setattr(text,"456")

3)判断元素能否存在

poco(XXX).exists()

4)拖动与滑动

poco("star").drag_to(poco("shell"))

5)内部偏移和外部偏移(focus)

poco("pearl").focus([0.1,0.1]).long_click()

poco("pearl").focus([0.9,0.9]).long_click()

poco("pearl").focus([0.5,-3]).long_click()

6)遍历元素

for star in poco("playDragAndDrop").child("star"):

star.drag_to(poco("shell"))

7)期待事务

poco("bomb").wait_for_appearance()

poco("bomb").wait_for_disappearance()

yellow = poco("yellow")

blue = poco("blue")

black = poco("black")

poco.wait_for_all([yellow,blue,black])

poco.wait_for_any([bomb,yellow,blue])

③ 官网的unity游戏demo

那个demo能够帮忙我们很好地去操练那些常见的poco api,课前我们也筹办了1个测试那个demo的脚本,里面根本包罗了poco所有常见的api:

老样子,我们先讲解下那个脚本里面的一些常识点,课后同窗们再本身测验考试写一个如许的脚本出来,稳固常识点。

别的需要那个示例脚原来进修的同窗,能够到我们的官方公家号回复“A08”即可获取。

生成和导出陈述

上面我们已经给各人演示过那个脚本的运行了,如上节课讲的那样,我们间接点击顶部菜单栏的查看陈述按钮,即可生成那份poco脚本的运行陈述,并用你电脑的默认阅读器翻开(建议利用谷歌阅读器,对陈述的兼容性更好)。别的那份陈述仅限于在当地查看。

如需发给他人查看,我们需要导出脚本:右键单击脚本名称,选择导出陈述,在选择导出的途径,比及陈述导出即可。

小结

好了,那节课的内容就到此为行啦,今天我们次要进修了poco脚本的录造、定位脚本的编写以及常见的poco api等等,内容仍是比力多的,希望同窗们课后能够好好操练,先把课上讲的示例本身编写一遍之后,就能够测验考试写一写此外应用的poco测试脚本了。

下节课我们将进修一个新的库:airtest-selenium,用于网页的主动化测试,下期我们不见不散~

0
回帖

08编写并运行你的第一个Poco脚本 期待您的回复!

取消