一、airtestpoco框架概述
airtestpoco是由airtest团队开发的Python自动化测试框架,主要面向移动设备的自动化测试。它不仅支持Android、iOS的UI自动化测试,同时支持Windows、macOS和Linux的GUI自动化测试。
airtestpoco框架依赖于多个开源项目,包括airtest、poco、opencv、numpy等。其中airtest是主要的底层基础,poco则提供了更简单的API接口,opencv和numpy则支持图像识别和图像处理操作。
二、airtestpoco的安装
1、安装Python3:
sudo apt-get update
sudo apt-get install python3
2、安装pip3:
sudo apt-get install python3-pip
3、安装airtestpoco:
pip3 install airtest
pip3 install pocoui
三、airtestpoco的基础使用
1、打开应用:
from airtest.core.api import *
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
#打开应用
start_app("com.example.app")
sleep(2)
2、点击控件:
poco(text="按钮").click()
3、输入文本:
poco("input-field").set_text("test")
4、滑动操作:
poco.scroll(direction="up")
5、断言操作:
assert poco(text="文本").exists()
四、airtestpoco的高级使用
1、多设备测试:
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
#初始化连接
dev1 = connect_device("Android:///")
dev2 = connect_device("Android:///")
#使用airtestpoco
poco1 = AndroidUiautomationPoco(dev1)
poco2 = AndroidUiautomationPoco(dev2)
2、多应用测试:
from airtest.core.api import *
from poco.drivers.unity3d import UnityPoco
#初始化连接
start_app("com.example.app1")
sleep(2)
poco1 = UnityPoco()
start_app("com.example.app2")
sleep(2)
poco2 = UnityPoco()
3、图像识别:
from airtest.core.api import *
#截图
snapshot("screen.png")
#使用opencv识别
import cv2
import numpy as np
img_screen = cv2.imread("screen.png")
template = cv2.imread("template.png")
result = cv2.matchTemplate(img_screen, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8
position = np.where(result >= threshold)
if len(position[0]) > 0:
print("找到模板")
五、airtestpoco的优缺点
1、优点:
①简单易用,提供了友好的API接口,降低了自动化测试的门槛;
②支持多平台,兼容性强;
③支持图像识别和图像处理操作,能够更准确地定位控件。
2、缺点:
①对于比较复杂的UI场景,定位控件可能会出现误差;
②对于非标准的UI元素,可能需要额外的处理操作。
综上所述,airtestpoco是一款功能强大、简单易用的自动化测试框架,适用于移动设备和GUI界面的自动化测试。在实际测试过程中,需要根据不同的场景进行精细化的调整和处理,以尽可能提高测试效率和准确性。