自动化UI测试工具airtest 之V2.2 airtest文档学习POCO

python基础

浏览数:17

2019-10-10

图片发自简书App

一个编程大白,我在学自动化UI测试工具airtest。

自动化UI测试工具airtest学习步骤

  • 一、硬件软件的准备与连接
  • 二、学习AirtestIDE官方文档
  • 三、用Airtest对多台手机操控
  • 四、纯python代码操控手机

airtest project界面.jpg

学习AirtestIDE官方文档

AirtestIDE文档http://airtest.netease.com/docs/cn/7_settings.html#

airtestIDE文档.jpg

学习第6章:poco库

Poco是一款基于UI控件搜索的自动化框架

实际POCO实现如真人的点击操作手机,打开APP,等待界面,点击相应的图标,打开APP功能界,操作任务。

学习POCO,就相当于学习:点击,拖放APP,长按APP,网页加载时等待界面出现再点击。这些通过学习入门教学用例,就可详细了解。

** POCO API文档的入门教学用例: https://poco-chinese.readthedocs.io/zh_CN/latest/source/README.html#tutorials-and-examples

对实例,大白对以下几点来快速学习了:

一、 POCO库的安装

可以通过 pip来安装: (ps:正确的库名是:pocoui)

pip install pocoui

二、使用前的实例化:

#安卓实例
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
#poco实例化    
poco = AndroidUiautomationPoco(use_airtest_input=True,
  screenshot_each_action=False)

#unity3d实例
from poco.drivers.unity3d import UnityPoco

poco = UnityPoco()

以上是2个最常用的实例。其它的实例参考:https://poco.readthedocs.io/en/latest/source/doc/poco_drivers.html
POCO支持的应用驱动:

三、使用poco对象选择UI元素对象

大白小结了一下,poco共设置4种选择UI元素对象的方法:

  1. 元素名(name)法
  2. 元素内容(text)法
  3. UI 路径(UI path)法
  4. UI坐标法
元素名(name)法与元素内容(text)法

AirtestIDE中选中UI,则可以在LOG查看器中显示:name与text


poco对象UI选取法text与name法.jpg

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
#poco实例化    
poco = AndroidUiautomationPoco(use_airtest_input=True,
  screenshot_each_action=False)

#选取:
poco(text="看一看").click()
或:
poco(name="android:id/title").click()
UI 路径(UI path)法:

AirtestIDE中选中UI,则可以选中路径后鼠标右键,得到UI 路径:

poco("com.tencent.mm:id/bp").offspring("android:id/list").child("com.tencent.mm:id/d9u")[2].child("com.tencent.mm:id/m5").offspring("com.tencent.mm:id/l5").child("android.widget.LinearLayout").offspring("android:id/title")

poco对象UI选取法UI 路径法.jpg

UI坐标法

所说的坐标,总以左上角为(0,0),右下角为(1,1).
也就是说:在poco中,坐标始终从0到1标准化。您可以简单地将其视为百分比大小和位置。
此方法好处是:可以简单快速定位;坏处是:程序不能移植到不同屏幕大小的手机中。

引用文档中的坐标图

AirtestIDE中可以设置选项,这样在界面中可能显示详细的坐标值。


UI坐标g

代码实例:

# -*- encoding=utf8 -*-
__author__ = "Administrator"

from airtest.core.api import *

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

# script content
print("start...")

# generate html report
# from airtest.report.report import simple_report
# simple_report(__file__, logpath=True)

pp = poco(name="com.bbk.launcher2:id/item_title")
print(len(pp))
#打印出每一个UI的texts
for pname in poco(name="com.bbk.launcher2:id/item_title"):
    print(pname.get_text())

#等待理财UI出现,才执行下一句
poco(text='理财').wait_for_appearance()
poco(text="理财").long_click()
poco(text="理财").swipe('down')

作者:大白python