airtest自动化测试_AirtestUI 自动化集大成者

d4d5872857bed8d6f359f1815f359c3d.png

软件测试大师 0  前言

Airtest 是由网易研发的一款基于 Python 的、跨平台的 UI 自动化测试框架,基于图像识别原理,适用于游戏和 App。

该项目目前已在 GitHub 上面开源:
https://github.com/AirtestProject/Airtest
官网地址:
http://airtest.netease.com/

官方文档手册非常详细,建议大家入门可以先去看下相关的文档说明。

1  为什么需要 Airtest?

众所周知,UI层测试按照平台种类划分有 Windows、Linux、Android、Web、小程序等针对于移动端 Android & iOS 平台。

有最火的 Appium 测试框架

http://appium.io/Web 端有 selenium 测试框架 http://seleniumhq.org/windows

应用平台有 AutoIT、Pywinauto 而业界针对游戏类的应用并没有比较好的解决方案,而 Airtest 测试框架应运而生,基于底层的 Airtest 和 poco:

1.Airtest:基于 Python 的、跨平台的 UI 自动化测试框架,基于图像识别原理,适用于游戏和 App。

2.Poco:基于 UI 控件搜索的自动化测试框架,其核心优势是除了对 Android、iOS 之外,对游戏也是支持的,同时也支持微信小程序、微信小游戏和 H5 应用。

Airtest 还非常贴心的配备了 Airtest IDE,不需要写一行脚本,即可完成脚本的录制。

2  Airtest IDE 录制
录制 Android 平台自动化脚本
1.检测设备链接状态

本地安装的雷电模拟器

C:\Users\Administrator>adb devices
List of devices attached
emulator-5554   device

2.Airtest IDE 连接设备

d717c51031ac4355c9b90cd027224f8b.png

1965530aa872763ad6b924fa2f402b39.png

可以看到 Airtest 可以直接将设备画面进行映射,同 Appium 的 inspector 或者 UIAutomatorViewer.bat 工具不一样

3. 录制脚本

点击录制即可开启录制功能,并且提供了很多不同的元素操作,如:点击、等待、滑动、断言等等。e5d41d7adbaae822b6aff1242975c80e.png

这里以柠檬班 App 为例,录制登录测试用例

c414af93df9e5b579a3b5792863614dc.png

录制回放

640?wx_fmt=gif

Airtest 采取图像识别方式,这种方式比较适合游戏自动化
但是在脚本的兼容性方面存在一些问题(屏幕的分辨率、图标大小等)。官方也给了几个小的技巧:

1.提升截图技巧-尽量截图完整图片

2.调整图像识别阈值

3.利用灰度图像识别

这些方式只能尽量优化,并不能根本上解决,所以官方最终建议是尽量使用 poco:通过 UI 元素属性信息定位。

3  poco

Airtest 提供另外一种更加稳健的元素操作方式-基于 UI 控件搜索框架 poco。

bc846be6aca2d8db092fc1f4ad3b2273.png

# -*- encoding=utf8 -*-

__author__ = "Administrator"
frompoco.drivers.android.uiautomationimportAndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
poco("柠檬班").click()
poco("com.lemon.lemonban:id/navigation_my").click()
poco("com.lemon.lemonban:id/fragment_my_lemon_avatar_title").click()
poco("com.lemon.lemonban:id/et_mobile").set_text(18588220152)
poco("com.lemon.lemonban:id/et_password").set_text(123456)
poco("com.lemon.lemonban:id/btn_login").click()

可以看到 poco 这种模式更加适合公司项目,如果你自己会 Python,还可以在脚本的基础上继续拓展,比如:应用 PO 设计模式 分层设计 等等。

当你打算放弃梦想时,告诉自己再多撑一天,一个星期,一个月,再多撑一年,你会发现,拒绝退场的结果令人惊讶

这里是软件技术大师专门分享

软件工程师成长方向和各种 tips

面试技巧、职场知识以及其他有趣的内容...

END

018797ed9ab3b782d8600875e8cbeeec.png

a5f95fdfc54cc2e28595cebf139c1c6f.png

2eaa83bfb8796d75a75870c6b26db160.png

19f7f4ae7c11ebc8142381f08f7033ab.png

60a5d46a7020d80679445f4287b2e79e.png

098011520a02a59ea999b4b3a1d84041.png  我就知道你“在看”↓ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值