赞
踩
01、背景
之前一直做 WEB UI与接口,最近有个自动化测试项目,是小程序,本来打算采用 Appium来做,但是经过实践我放弃了,Appium用于 App 测试比较多,对于小程序,好多人建议用 AirTest,由于不了解 AirTest,对于新工具,我们如何何用呢?
02、什么是 AirTest
Airtest是由网易游戏推出的一个跨平台的,基于图像识别的 UI 自动化测试框架,它适用于游戏和应用程序,支持的平台有 Windows、 Android 和 iOS。
Airtest提供了丰富的API,包括安装应用、模拟输入、断言等。可结合python脚本进行自动化。测试脚本运行后可以自动生成详细的HTML测试报告,遗憾的是不支持 Java,如果你需要使用 AirTest,那么建议你最好去学习下 Python 基础知识。
03、Airtest 与 Poco
Airtest:基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。优点:
简单直接
兼容各种环境
无需嵌入代码
Poco:基于UI控件搜索的自动化测试框架,其核心优势是除了对Android、IOS之外,对游戏也是支持的,同时也支持微信小程序、微信小游戏和H5应用。优点:
控件识别更加准确
界面迭代影响小
04、Airtest下载与安装
官网地址:
http://airtest.netease.com/changelog.html
Windows直接下载压缩文件后解压即可使用
Mac下载 dmg 文件安装后即可使用
安装 Python 环境,建议安装 Python3
说明
在测试 App 或小程序时,需要手机连接到电脑,所以会用到 adb,AirTest有自带 adb,所以无需额外安装,adb 所在目录:
D:\ProgramFiles\AirtestIDE-win-1.2.8\AirtestIDE\airtest\core\android\static\adb\windows
05、Airtest 界面介绍
打开 Airtest 后可以不注册,直接点击 skip,当然你也可以用 github 账号登录
点击菜单栏选项,可更改语言为中文
手机用 USB 连接到电脑后,会在右侧设备窗显示,点击 connect,即可连接
Airtest 辅助窗显示相关 airtest Api
Poco 辅助窗显示UI树(点击三角符号选择 Android)
注
软件部署成功之后,连接设备之后,设备端会生成两个插件,Yosemite和PocoService。
点击 connect,如果界面一闪而过,可以点击三角符号,选择某一种连接方式后再点击 connect
06、Airtest 项目实战
1.打开 app
start_app('com.tencent.mm')
2.等待
# 方式一
- sleep(3)
- # 方式二
- # 在给定时间内等待一个UI出现并返回这个UI,如果已经存在画面中了那就直接返回这个UI。
- # 如果超时了还没有出现,同样也会返回,但是调用这个UI的操作时会报错,返回True 或 False
- poco(text='通讯录').wait(5).exists()
3.断言
- flag0 = poco(text='通讯录').wait(5).exists()
- assert_equal(flag0,True,'校验微信是否启动成功')
4.滑动
- # 前两个参数为滑动的前后两个坐标,duration为滑动的时间,坐标为百分比
- poco.swipe((0.1,0.1),(0.1,0.5),duration=0.1)
5.点击
- # 表示点击控件name名称为“android.widget.EditText”的控件;
- poco('android.widget.EditText').click()
- # 表示点击控件text名称为“美团外卖”的控件;
- poco(text='美团外卖').click()
- # 按坐标点击
- touch([985,278])
- # 表示双击x为200,y为500的位置点,默认双击事件为0.01秒;
- touch([985,278],times=2)
6.文本输入
- # 表示在name名称为“android.widget.EditText”的控件处输入文字:烧烤
- poco ('android.widget.EditText').set_text('烧烤')
- # 用 text
- text("烧烤")
- # 点击软键盘上面的search按钮则为 True
- # 输入后不需要回车则 enter 为 False
- text("烧烤",enter=False,search=True)
7.获取控件文件
- # 获取控件name为com.tencent.mm:id/bqq控件的文本
- poco('com.tencent.mm:id/bqq').get_text()
8.退出应用
- # 退出应用
- stop_app('com.tencent.mm')
9.清空应用数据
- # 清空应用数据(慎用)
- stop_clear('com.tencent.mm')
07、官方参考文档
https://poco.readthedocs.io/zh_CN/latest/index.html
https://airtest.doc.io.netease.com/
https://juejin.cn/user/1275089221067928
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。