Airtest是由网易研发的一款基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。该项目目前已在Github上面开源: https://github.com/AirtestProject/Airtest
官网地址:
http://airtest.netease.com/
官方文档手册很是详细,建议你们入门能够先去看下相关的文档说明。python
众所周知,UI层测试按照平台种类划分有Windows、Linux、Android、Web、小程序等
针对于移动端Android & IOS平台,有最火的Appium测试框架 http://appium.io/
Web端有selenium测试框架 http://seleniumhq.org/
windows应用平台有AutoIT、Pywinauto
而业界针对游戏类的应用并无比较好的解决方案,而Airtest测试框架应运而生,基于底层的Airtest和poco:android
Airtest还很是贴心的配备了Airtest IDE,不须要写一行脚本,便可完成脚本的录制。git
本地安装的雷电模拟器github
C:\Users\Administrator>adb devices List of devices attached emulator-5554 device
能够看到Airtest能够直接将设备画面进行映射,同Appium的inspector或者UIAutomatorViewer.bat工具不同shell
点击录制便可开启录制功能,而且提供了不少不一样的元素操做,如:点击、等待、滑动、断言等等 小程序
这里以柠檬班App为例,录制登陆测试用例 windows
录制回放 微信小程序
Airtest采起图像识别方式,这种方式比较适合游戏自动化 可是在脚本的兼容性方面存在一些问题(屏幕的分辨率、图标大小等)。官方也给了几个小的技巧:设计模式
这些方式只能尽可能优化,并不能根本上解决,因此官方最终建议是尽可能使用poco:经过UI元素属性信息定位微信
Airtest提供另一种更加稳健的元素操做方式-基于UI控件搜索框架poco
# -*- encoding=utf8 -*- __author__ = "Administrator" from poco.drivers.android.uiautomation import AndroidUiautomationPoco 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设计模式 分层设计 等等。