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

小程序自动化测试工具之AirTest相关推荐

  1. Airtest微信小程序自动化测试

    Airtest微信小程序自动化测试有2种,一种手机连接电脑测试,另一种模拟器连接电脑测试,本文章此次是安卓模拟器连接电脑测试,然后配置好Java环境 1.去Airtest官网下载此软件 airtest ...

  2. 百度/微信小程序自动化测试

    目 录: 1. 小程序自动化方案1.1 小程序的基本构成1.2 原生组件定位之UiSelector1.2.1 原生组件定位之UiSelector1.2.2 web元素定位1.3 小程序自动化准备1.3 ...

  3. 小程序 text decode 真机无效_【移动端测试】APP自动化测试案例2:微信小程序自动化测试...

    APP自动化测试之案例:微信小程序自动化测试 1.前提 基于win10专业版64位系统+jdk1.8+python3+pycharm+android SDK+appium+unittest. 2.痛点 ...

  4. 03-13 微信小程序自动化测试

    小程序的运行环境 准备工作 设置 chromedriver 正确版本 设置 chrome option 传递给 chromedriver 使用 adb proxy 解决 fix chromedrive ...

  5. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

  6. python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...

  7. 小程序自动化测试框架原理剖析

    百度智能小程序,是 H5 和 Native 技术结合的产物,运行在百度 APP.爱奇艺等支持百度智能小程序运行的宿主 APP 上.因此,很难用既有的端自动化测试工具(如,Appium 等).或者 H5 ...

  8. 微信小程序自动化测试——录制回放

    前文 微信小程序自动化测试--智能化 Monkey 提到Monkey虽然使用简单方便,但是不支持输入文本,页面逻辑校验等操作.如果用户希望做自动化回归测试,那么必然会涉及到逻辑相关校验点,这时候可以尝 ...

  9. 微信小程序自动化测试——自定义测试(Minium)

    前文 微信小程序自动化测试--录制回放 提到录制回放 支持输入,文本查找,断言等自动化测试基础操作,无需编写代码,用例生成效率高,但是部分操作不支持,对复杂业务场景有局限性.如果用户希望适用复杂的业务 ...

最新文章

  1. 关于bcp的那些事儿
  2. centos 7使用tar包安装ansible
  3. LeetCode:Sudoku Solver Valid Sudouku
  4. python 合并word文件_python自动化办公(1)—— 批量合并word文档
  5. 安卓案例:View动画——弹球碰壁
  6. lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注
  7. Android SharedPreferences
  8. PMP考试教材是什么?有几本?
  9. ListView嵌套GridView使用解析
  10. 【抓包】Xposed+JustTrustMe关闭SSL证书验证
  11. OpenCV4学习笔记(27)——轮廓的最大内接圆
  12. hdu 6638 Snowy Smile
  13. 半加器设计(结构描述法)
  14. 鸿蒙os系统测评,鸿蒙OS 2首批评价出炉,看已升级用户都怎么说的
  15. Node.js实现支付宝H5支付
  16. 论文写作 16: 图片与图摘要
  17. 【Unity3d】 制作游戏主菜单 GUI
  18. 记一款游戏--《程序员升职记》
  19. yuv 10bit 8bit
  20. 【自动驾驶】高精地图在无人驾驶中的应用

热门文章

  1. C/C++小问题大杂烩
  2. poj—2488骑士的旅程(深搜)
  3. 10道必会jQuery面试题-蛙课网
  4. xcode编译工程时遇到 Permission denied的解决办法
  5. 计网之初识网络(理解网络传输的基本流程)
  6. 最笨的方法打印出Linux系统 可爱的企鹅图标
  7. 戴尔计算机软件的安装,DELL戴尔电脑系统怎么装
  8. 使用JS代码编写动画效果
  9. 选购会员收银系统时需要注意哪几点?
  10. Android 基于MediaCodec开发抖音短视频录制(贰)