• Airtest介绍与快速上手


    AirtestProject项目简介

    Airtest Project是一款由网易研发并开源的自动化测试框架,相比于其他的自动化测试框架,主要有如下两个优势

    • 大幅度降低自动化脚本的编写和维护成本        

    Airtest Project希望能够通过一种所见即所得的方式完成脚本的录制,即使测试人员不会编程不懂脚本,也可以通过正常用户的点击拖拽等操作,自动完成脚本的录制,从而大幅度降低企业和项目的自动化维护成本。

    • 解决游戏测试的痛点        

     Airtest Project希望能够通过对游戏的不同引擎做支持,成为一个真正意义上的跨引擎跨平台的自动化测试平台。

    AirtestProject是由网易游戏推出的一款自动化测试框架,项目构成如下:

    Airtest:是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS,开码和有API文档。

    Poco:是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用,开码和有API文档。

    AirtestIDE:跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写Airtest和Poco代码。

    AirLab:真机自动化云测试平台,目前提供了TOP100手机兼容性测试、海外云真机兼容性测试等服务,请访问官网以了解更多。 私有化手机集群技术方案:从硬件到软件,提供了企业内部私有化手机集群的解决方案,欢迎了解。

    可以看到,底层的主要测试框架主要是Airtest和Poco,二者的区别在于:

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

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

    支持平台

    • Android
    • iOS
    • Windows
    • Unity
    • Cocos2dx
    • 白鹭引擎
    • 微信小程序

    快速上手

    对于新手,我们非常建议使用 AirtestIDE 来帮助你编写自动化测试脚本。熟练上手 Airtest 和 poco 以后,如果有需要的话,则可以尝试脱离IDE来跑测试脚本,比如在本地命令行上运行,比如在pycharm上运行等等。            

     Airtest官方文档:https://airtest.doc.io.netease.com/

    AirtestIDE

    AirtestIDE 是一个跨平台的UI自动化测试编辑器,它是专为以上两个自动化测试框架量身打造的。所以我们非常建议新手可以从 AirtestIDE 开始学习 Airtest 和 poco 。

    AirtestIDE 安装

    目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从官网下载,解压即用。        

    官网下载地址:http://airtest.netease.com/

    系统要求

    • 操作系统
    1. Windows
    2. MacOS X
    3. Linux
    • Python2.7 & Python3.3+

    连接设备

    无论是Android/iOS手机,还是Windows窗口,在Airtest中都将它视为一个设备,接下来我们将演示如何连接一个设备。

    连接Android手机 通过ADB连接你的电脑和Android手机,即可开始调试Android应用。ADB是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。

    打开AirtestIDE,按照以下步骤进行连接:

    1. 打开手机设置-开发者选项-USB调试开关,参考安卓官方文档
    2. 在AirtestIDE设备面板中点击refresh ADB按钮,查看连接上的设备
    3. 如果没有显示出设备,试试restart ADB,如果还不行,参考FAQ文档进行问题排查
    4. 能够成功看到设备后,点击对应设备的Connect按钮,进行初始化

    手机连接成功后,即可在AirtestIDE中看到手机屏幕的镜像显示,并进行实时操作。

    录制自动化脚本

    一、基于图像识别      

     点击AirtestIDE左侧的Airtest辅助窗上的录制按钮,然后随着你在设备窗口上操作手机,代码会自动生成在代码窗口中。

    支持以下常用API:

    touch:点击输入

    text: 文字输入

    keyevent: 按键输入,包括(HOME/BACK/MENU等)

    sleep: 等待

    snapshot: 截屏

    二、基于UI控件

    如果你发现图像识别不够精确,还可以使用基于UI控件搜索的方式进行自动化测试,与刚才的Airtest不同,这是Poco这个框架实现的功能。        

    目前Poco直接支持Unity3d、Cocos2d、白鹭引擎等多种游戏引擎,以及Android/iOS原生App。        

    如果是Android/iOS原生应用,是即插即用的,无需接入SDK。但由于游戏引擎使用OpenGL等图形接口直接渲染,而没有使用Android原生的UI系统,我们需要与游戏的Runtime进行通信获取整个UI结构。

    点击录制按钮,然后随着你的鼠标操作,会自动生成Poco语句到脚本编辑框中

    对于Android/iOS的原生应用来说,不需要接入SDK即可使用,例如在连上Android手机后,将Poco辅助窗的模式切换至Android,能可以看到整个UI树形结构。

    自动录制出的语句不一定能够适应所有场景,采用更合理的选择器编写代码,通常会增强整个自动化脚本的健壮性和可读性,这是门学问。

    使用Python语法

    整个AirtestIDE中录制和运行的代码都是基于Python语言。Python语法简洁而强大,第三库和工具也非常多。        

     对于老手,你可以在AirtestIDE中使用各种第三方库来使你的自动化脚本更加强大,通过添加PYTHONPATH设置,可以使用本地的python.exe来运行你的脚本。        

     除了辅助窗口里面提供的语句,更多的API文档,可以查看Airtest和Poco的仓库。

    例子:使用这些API来编写一个自动化脚本,步骤如下:

    1. 通过ADB连接一台安卓手机
    2. 安装应用APK
    3. 运行应用并截图
    4. 模拟用户输入(点击、滑动、按键)
    5. 卸载应用

    模拟输入,支持以下常用API:

    • touch:点击
    • swipe:滑动
    • text:文本输入
    • keyevent:按键输入,包括(HOME/BACK/MENU等)
    • snapshot:截图
    • wait:等待

    声明断言,Airtest提供了以下断言方法:

    • assert_exists:断言图片存在
    • assert_not_exists:断言图片不存在
    • assert_equal:断言相等
    • assert_not_equa:断言不等

    命令行接口

    可以使用命令行接口将自动化测试与持续集成结合起来。

    你可以在不开启IDE的情况下,在命令行中使用那条命令来启动测试脚本,例如: "D:迅雷下载AirtestIDEAirtestIDE" runner "D:AirtestIDE_2018-01-24_83untitled.air"  --device Android://127.0.0.1:5037/F8UDU16409004135 --log "C:UsersgzliuxinAppDataLocalTempAirtestIDEscriptscdfc40e8c297b6ad88e09de64d8bafa3"

    你还可以在不同电脑上针对不同设备运行测试, 这时候你就需要用命令行运行 .air 脚本 。 对于多平台发布的产品,灵活使用跨平台API和命令行,还可以让同一套测试脚本运行在Android和Windows上进行测试。

    查看测试报告

    脚本运行完毕后,点击查看报告按钮(快捷键Ctrl+L),会使用默认浏览器打开结果报告页面。报告中将展示出每一个步骤的内容和实际执行过程的截图、运行结果,方便查看步骤是否执行成功。

    案例实操

    完成过程请观看演示视频:

    视频演示

    总结

    Airtest特性回顾

    跨平台: Airtest可以在几乎所有平台上执行游戏和App的自动化。

    一次编写,随处运行: Airtest提供了跨平台的API,囊括了应用安装、模拟输入以及断言等。由于使用图像识别技术来定位UI元素,因此无需嵌入任何代码即可对游戏和应用进行自动化操作。

    可扩展性: 通过使用Airtest提供的命令行与python API接口,可以很轻松地在大规模设备集群上运行脚本。提供的HTML报告包含了详细操作步骤和截屏,能够迅速定位到失败点。同时,网易也提供了 Airlab 云测试平台服务。

    AirtestIDE: AirtestIDE是一个强大的GUI工具,可以帮助你录制和调试测试脚本。 AirtestIDE提供了完整的自动化工作流程支持:录制脚本->真机回放->生成报告。

    Airtest VS Appium

    跨平台开源测试框架PK

    参考文章

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

    https://testerhome.com/articles/23287

  • 相关阅读:
    2021-04-14:判断二叉树是否是满二叉树?
    2021-04-13:判断二叉树是否是平衡二叉树?
    2021-04-12:判断二叉树是否是搜索二叉树?
    2021-04-11:判断二叉树是否是完全二叉树?
    2021-04-10:给定两个可能有环也可能无环的单链表,头节点head1和head2。请实现一个函数,如果两个链表相交,请返回相交的 第一个节点。如果不相交,返回null。【要求】如果两个链表长度之和为N,时间复杂度请达到O(N),额外空间复杂度 请达到O(1)。
    2021-04-09:rand指针是单链表节点结构中新增的指针,rand可能指向链表中的任意一个节点,也可能指向null。给定一个由Node节点类型组成的无环单链表的头节点 head,请实现一个函数完成这个链表的复制,并返回复制的新链表的头节点。 【要求】时间复杂度O(N),额外空间复杂度O(1) 。
    2021-04-08:给定一个单链表的头节点head,请判断该链表是否为回文结构。
    影响成败的小细节
    一个完整IC项目需要走过的流程
    linux 下shell中if的“-e,-d,-f”是什么意思 ------ 转载
  • 原文地址:https://www.cnblogs.com/haixianglan/p/13942908.html
Copyright © 2020-2023  润新知