小程序自动化测试工具之AirTest

 

图片

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下载与安装

 

  1. 官网地址:

    http://airtest.netease.com/changelog.html

  2. Windows直接下载压缩文件后解压即可使用

  3. Mac下载 dmg 文件安装后即可使用

  4. 安装 Python 环境,建议安装 Python3

 说明

在测试 App 或小程序时,需要手机连接到电脑,所以会用到 adb,AirTest有自带 adb,所以无需额外安装,adb 所在目录:

D:\ProgramFiles\AirtestIDE-win-1.2.8\AirtestIDE\airtest\core\android\static\adb\windows

05、Airtest 界面介绍

图片

图片

  1. 打开 Airtest 后可以不注册,直接点击 skip,当然你也可以用 github 账号登录

  2. 点击菜单栏选项,可更改语言为中文

  3. 手机用 USB 连接到电脑后,会在右侧设备窗显示,点击 connect,即可连接

  4. Airtest 辅助窗显示相关 airtest Api

  5. Poco 辅助窗显示UI树(点击三角符号选择 Android)

 注

  1. 软件部署成功之后,连接设备之后,设备端会生成两个插件,Yosemite和PocoService。

  2. 点击 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、官方参考文档

  1. https://poco.readthedocs.io/zh_CN/latest/index.html

  2. https://airtest.doc.io.netease.com/

  3. https://juejin.cn/user/1275089221067928

 

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值