都跟简单,只要认真钻研。

AirtestIDE 教程 — 5分钟上手自动化测试::http://airtest.netease.com/tutorial/Tutorial.html

AirtestIDE 官方文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html

简介

AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。

  • 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程
  • 支持基于图像识别的 Airtest 框架,适用于所有Android和Windows游戏
  • 支持基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android App
  • 能够运行在Windows和MacOS上
  • 网易内部已成功应用在数十个项目上,利用 手机集群 进行大规模自动化测试

访问 官网 通过视频查看更多特性。

通过本教程,你将学会如何上手自动化测试(或者写点脚本来自动玩游戏)。相信我,这个过程会非常愉快~

安装

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

连接设备

AirtestIDE目前支持测试Android,Windows和iOS上的应用。

连接Android手机

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

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

1.打开手机 设置-开发者选项-USB调试开关,同时需要打开 “USB安装” 和 “USB调试(安全设置)”。 参考 安卓官方文档

2.在AirtestIDE设备面板中点击 Refresh ADB 按钮,查看连接上的设备

3.如果没有显示出设备,试试 Restart ADB,如果还不行,参考 FAQ

4.点击对应设备的 Connect 按钮,进行初始化

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

如果手机连接失败,请将手机型号和AirtestIDE后台报错提交到 Github Issues。 开发人员会尽快修复。 由于Android手机的碎片化问题严重,我们非常感谢您的反馈可以帮助这个项目做的更好。

连接Windows窗口

对于Windows桌面程序的测试,我们通常是测试一个窗口。AirtestIDE可以将被测窗口嵌入,方便脚本录制和调试。

  • 在AirtestIDE设备面板中点击 Windows-框选游戏窗口 按钮
  • 将鼠标移动到被测程序的窗口上,会显示绿色边框框出对应的窗口
  • 点击左键即可将对应的窗口嵌入到AirtestIDE中

如果上述方法不能正确找到被测程序的窗口,你还可以 使用备用嵌入方法。

连接ios手机

目前我们已经支持了iOS的连接,可以查看 文档 获取更多信息。

录制自动化脚本

现在我们可以开始录制自动化测试脚本了。

模拟输入

先从最常用的模拟点击开始。

基于图像识别

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

马上来验证一下,点击 运行 按钮运行你的第一个自动化脚本吧!

如果你觉得自动录制的图标不够精确,还可以点击Airtest辅助窗上的 touch 按钮,然后在设备窗口上框选精确的图标, 也可以自动生成 touch 语句。

类似的模拟输入操作还有滑动:点击 swipe 按钮,在设备窗口上框选精确的图标作为滑动起点, 然后点击滑动终点位置,即会自动生成一个 swipe 语句。

其他模拟输入的API包括:

  • text: 文字输入
  • keyevent: 按键输入,包括(HOME/BACK/MENU等)
  • sleep: 等待
  • snapshot: 截屏

基于UI控件

如果你发现图像识别不够精确,可以使用基于UI控件搜索的方式进行自动化测试。

目前AirtestIDE直接支持Unity3d、Cocos2d两种游戏引擎和Android源生App。 由于游戏引擎使用OpenGL等图形接口直接渲染,而没有使用Android源生的UI系统, 我们需要与游戏的Runtime进行通信获取整个UI结构。 Unity3d和Cocos2d-js我们提供了非常方便的SDK接入方 法 点这里。

其他游戏引擎和UI系统我们提供了SDK可自行扩展。

实际上在网易游戏内部我们就是用这种方式支持了Messiah/NeoX/梦幻等多个自研引擎。

  • nity3d和Cocos2d游戏: 接入SDK
  • Android源生App:直接开始!
  • 其他游戏引擎和UI系统: 扩展SDK

接入完成后我们即可开始。手机启动游戏,在Poco辅助窗中切换模式至对应引擎类型,即可看到整个UI结构。

点击录制按钮,然后随着你的操作,会自动生成Poco语句。

同样,你也可以通过UI树形结构更精确的检视UI控件, 双击自动生成Poco语句, 或者自行选择更好的写法。更好的属性选择,通常会增强整个自动化脚本的健壮性和可读性, 这是门 学问 。

录制完脚本后记得运行试试效果。

由于Android源生App应用的UI结构可以通过 Accessibility 获取,我们直接开始使用。 将Poco辅助窗的模式切换至 Android 能看到整个UI树形结构。

实际上,上述两种方式分别是基于两个框架:

  • 基于图像识别的 Airtest 框架,适用于所有Android和Windows游戏
  • 基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android App

这两个框架都是由我们团队开发,在实际项目使用经验中,我们发现两者互相配合会得到最好的效果。

使用Python语法

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

对于新手,Python上手非常容易,学会基本语法即可写出自动化脚本中所需的逻辑语句。

touch("开卡包.png")
if exists("奖励面板.png"):
for i in range(5):Poco("奖励-%s" % i).click()

对于老手,你可以在AirtestIDE中使用各种第三方库来使你的自动化脚本更加强大, 添加PYTHONPATH。

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

到这里,我们已经有各种模拟输入方法,配合逻辑控制语句让手机动起来。自动化测试中还有很重要的一个步骤:结果验证,那么我们来看看怎样声明断言。

验证UI界面

录制方法与模拟输入类似

  • assert_exists:断言图片存在
  • assert_not_exists:断言图片不存在

验证数值

通过Poco获取属性值,手写代码进行断言

  • assert_equal:断言相等
  • assert_not_equal:断言不等

例如

# ... 模拟输入并获得20分之后
value = Poco("分数按钮").attr("num")
assert_equal(value, 20, "获到20分")

查看测试报告

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

命令行接口

现在,你已经学会自动化测试了。 接下来呢,你可以使用命令行接口将自动化测试与持续集成结合起来。 持续集成是什么?

在AirtestIDE运行脚本时,LOG窗口中会打印运行命令。

你可以在不开启IDE的情况下,在命令行中使用那条命令来启动测试脚本,例如:

"D:\AirtestIDE\AirtestIDE" runner "D:\AirtestIDE_2018-01-24_83\untitled.air"  --device Android://127.0.0.1:5037/F8UDU16409004135 --log "C:\Users\gzliuxin\AppData\Local\Temp\AirtestIDE\scripts\cdfc40e8c297b6ad88e09de64d8bafa3"

使用AirtestIDE你可以轻松的录制出测试脚本,保存为 .air 脚本。 请注意一个 .air 脚本中不要包含太多内容,用良好的脚本命名和目录结构来组织你的脚本,覆盖所有测试点。

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

在网易游戏内部,我们的大型游戏通常会有数百个测试脚本,覆盖常用的玩法测试。 每周,这数百个脚本会分别运行在200台手机上进行兼容性测试。 演示

更多扩展特性

编辑器设置

引入第三方Python库

自定义启动器

搭建云测试平台

与Google Firebase结合

AirtestIDE 教程 : 5分钟上手自动化测试相关推荐

  1. AirtestIDE 教程 — 5分钟上手自动化测试

    AirtestIDE 教程 - 5分钟上手自动化测试::http://airtest.netease.com/tutorial/Tutorial.html AirtestIDE 官方文档:http:/ ...

  2. 1-5分钟上手自动化测试——Airtest+Poco快速上手

    1 | 5分钟上手自动化测试--Airtest+Poco快速上手 1.1 前言 本文档将演示如何使用Airtest Project专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚 ...

  3. js 加入debug后可以进入controller_写给前端的 Nest.js 教程——10分钟上手后端接口开发

    前言 沉默了很久,一直都没发文章,有些惭愧. 最近实习结束之后回了学校,提前开始做毕业设计了.对,就是毕业设计. 近两个月把 React Native.Vue 3.0 和 Nest.js 都摸了一下, ...

  4. python搞笑教程_Python10分钟入门教程,Python入门神图一张

    这篇文章主要介绍了Python 10分钟入门教程,分享一张Python入门神图一张,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 | 初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个 ...

  5. access 提供程序无法确定object 值_Python | 加一行注释,让你的程序提速10+倍!numba库十分钟上手指南...

    如果你在使用Python进行高性能计算,Numba提供的加速效果可以比肩原生的C/C++程序,只需要在函数上添加一行@jit的装饰.它支持CPU和GPU,是数据科学家必不可少的编程利器. 之前的文章 ...

  6. 自动调试自动编译五分钟上手

    Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试. ...

  7. 符号说明表怎么做_电气新手搞不定电气识图怎么办?别慌!8套电气识图教程,秒上手...

    一个电气新手来说第一次看电气图,普遍会存在看不懂,搞不清设计图怎么看这样的一个问题!那么要怎么进行解决呢?第一次看图电气图需要做哪些准备工作呢? 要做到会看图和看懂图,首先应掌握识图的基本知识,即应当 ...

  8. vuex commit 模块_一分钟上手Vuex

    Vuex介绍 Vuex是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官 ...

  9. 零基础 5 分钟上手,程序员喜提 AIoT 新利器!

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 近几年来,物联网发展迅速,2017 年,物联网设备数量首次超过全球人口.据预测,到 2025 年,物联网设备将超过 215 亿. 可与日 ...

最新文章

  1. 《Java程序书面采访猿收藏》之 instanceof的作用是什么
  2. 如何将图片中的一个任意四边形区域的图像转化为矩形【附源码】
  3. 词云_jieba分词
  4. 763. 划分字母区间009(贪心算法+思路+详解+图示)
  5. LAMP环境安装与apache配置
  6. sql三表查询_SQL第五关:多表查询
  7. 回溯法 —— 判断子集和问题是否存在解
  8. Mysql优化(出自官方文档) - 第三篇
  9. 又一场“人机大战”?来自AI open无情碾压!
  10. Android 颜色金属效果,金属质感+流线型机身_手机Android频道-中关村在线
  11. 大三下了,一点感概,仅作共勉
  12. 为什么NFT的头像卖这么贵?这与IPFS/FIL有什么联系
  13. 微信浏览器 rem 不适配的解决方案
  14. 【财经期刊FM-Radio|2021年03月04日】
  15. python列表是什么数据结构_Python之数据结构:列表
  16. unity hub 免费版实现
  17. android开发 Activity包含Fragment切换背景黑色闪屏解决方案
  18. 微信小程序之间的参数传递、获取
  19. 计算机网络流量监控设计方案,计算机网络流量监控的设计与实现
  20. 单片机入门(Proteus仿真)-----8x8LED点阵屏基础操作

热门文章

  1. 检测RS232通讯线线序的方法
  2. 7款减肥食谱 润肺排毒抗雾霾
  3. room girls游戏解决方法
  4. Einstein's Riddle 爱因斯坦出的智力题?
  5. python 程序计时
  6. CodeForces - 1000D D. Yet Another Problem On a Subsequence 好题
  7. 使用itextpdf在pdf模板中插入对应数据
  8. win10输入法没有选字框
  9. collect_set函数
  10. lasso.m matlab,lasso算法matlab代码