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

 

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

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

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

Poco (ポコ) UI自动化框架 官方文档:https://poco.readthedocs.io/zh_CN/latest/index.html
Poco Examples and Tutorials:https://poco.readthedocs.io/zh_CN/latest/source/doc/poco-example/index.html#tutorial

 

 

简介

 

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

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

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

Image of IDE Overview

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

 

 

安装

 

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

Image of Download

 

 

连接设备

 

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中

è¿æ¥Windowsçªå£

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

 

连接ios手机

 

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

 

 

录制自动化脚本

 

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

 

模拟输入

 

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

 

基于图像识别

 

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

å½å¶GIF

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

 

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

æ¡éå½å¶GIF

类似的模拟输入操作还有滑动:点击 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模å¼.GIF

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

POCOèªå¨å½å¶.GIF

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

POCOèªè¡éæ©.GIF

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

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

Android Poco.GIF

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

  • 基于图像识别的 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:断言图片不存在

assert.GIF

 

验证数值

 

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

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

例如

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

 

 

查看测试报告

 

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

report.gif

 

 

命令行接口

 

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

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

RunCMD.png

你可以在不开启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结合

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全面超越 Appium,使用 Airtest 超快速开发 App 爬虫

From:https://segmentfault.com/a/1190000017982620 https://www.kingname.info/2019/01/19/use-airtest 在 Airtest 中如何正确使用无线模式控制手机:https://juejin.im/post/5c4f12b0e51d453f45614bbb 使用 python poco 夜神模拟器 进行 自动化测…

Nature:“解构”母爱

来源:生物360一篇论文报告称,小鼠下丘脑视前区相当于一个集成中心,汇集育儿行为相关的大量信息。具体而言,研究人员发现视前区表达甘丙肽的神经元会协调育儿行为的运动、动机、激素和社会因素。相关成果近日 发表 于《自然》。育儿…

重磅!不止是芯片!半导体全产业链分析

来源:杨明辉电子(ID:gh_e6a65dbbbff9)作者:光大电子团队周期性波动向上,市场规模超4000亿美元半导体是电子产品的核心,信息产业的基石。半导体行业因具有下游应用广泛、生产技术工序多、产品种类…

adb(Android debug bridge)命令

From:https://www.cnblogs.com/huanyou/p/5133737.html ADB 用法大全: github 地址:https://github.com/mzlogin/awesome-adb adb 官网链接( 国内想访问,你懂得!!! )&am…

预计2024年全球医疗AI市场超100亿美元

来源:新浪医药摘要:随着人们对这些技术所带来的好处日益了解,AI在医疗领域的应用正越来越广泛,例如药物研发和医学影像学等方面。高昂的初始资本需求和维护维修费用以及AI可能扰乱行业并导致大规模失业的担忧,阻碍了AI…

分享自己写的一个贪吃蛇的游戏(Linux)

作者: dave_cn 发表于 2010-07-18 21:20 原文链接 阅读: 148 评论: 2转载请注明出处。http://www.cnblogs.com/dave_cn/本程序需要ncurses库,ubuntu下安装ncurses可以执行下面命令:sudo apt-get install libncurses5-dev 关于ncurses的用法,读…

Linux 的 diff 命令

读懂 diff:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html 菜鸟教程:https://www.runoob.com/linux/linux-comm-diff.html diff 命令详解:https://www.cnblogs.com/wf-linux/p/9488257.htmlhttp://man.linuxde.net/diffhttp…

机器人大潮中暗藏多少伪命题

来源:中国青年报摘要:伴随着巨大的产业浪潮,一种担忧在人群中弥漫,即机器人的“步伐”如此之快,未来究竟会否抢走人类的饭碗,和人类之间爆发一场就业战争,进而夺走人类的一切?2018 R…

哈佛医学院解析:触发医学深度学习系统受到「对抗攻击」的诱因有哪些?

原文来源:arXiv作者:Samuel G. Finlayson、Isaac S. Kohane、Andrew L. Beam「雷克世界」编译:EVA对抗样本的发现引起了人们对深度学习系统的实际部署的关注。在本文中,我们认为,就货币激励和技术脆弱性(mo…

Git 详解 和 廖雪峰 Git 教程

转载:廖雪峰 git 教程:https://www.liaoxuefeng.com/wiki/896043488029600 GitHub 秘籍:https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.zh-cn.md Git Community Book 中文版:http://gitbook.liuhui998.c…

ASP.NET MVC: 构建不带 Web 窗体的 Web 应用程序(转载)

我 从事专业开发迄今为止已有 15 年,在此之前,我利用业余时间从事开发至少也有 10 年了。与我这一代的大多数人一样,我是从 8 位计算机起步,然后转用 PC 平台的。随着计算机的复杂性日益增加,我编写的应用程序涵盖了从…

2018人工智能前沿报告:深度学习的应用和价值

来源: 199IT互联网数据中心摘要:报告重点强调了前沿AI技术的应用范围之广,以及经济潜力之盛,也提到了发展中的一些局限和挑战。报告包含400个应用案例,横跨19个行业的9种业务功能。报告重点强调了前沿AI技术的应用范围…

跟我学Telerik公司的RadControls控件(四)

朋友们、同行们通过前面《跟我学Telerik公司的RadControls控件》系列三篇的学习,你一定会内心有一种涌动,有种相见(RadControls)恨晚的感觉。那就和晓军一起加入学习RadControls控件的行列,为IT的朋友提供更加明了化的…

puppeteer( Nodejs 版 selenium )快速入门

From:https://www.cnblogs.com/CyLee/p/9310839.html puppeteer 官网:https://pptr.dev/ Puppeteer 中文文档 (与官方同步更新):https://segmentfault.com/a/1190000015913821 Puppeteer 中文文档 :https…

硅谷人眼中的2018年十大前沿科技预测

来源: 和米资本近日,由斯坦福大学的顶级学术研究团队、美国国防部高级研究计划局、硅谷最具创新力和影响力的创业公司以及和米资本一起精心策划,共同探讨技术将如何重新塑造行业和社会等问题,分析预测了2018年全球十大前沿科技的未…

麦肯锡AI应用报告:深度学习是蓝海还是深坑?

来源:网络大数据AI的价值并不在模型自身,而在于公司怎样用好它们。麦肯锡出品,一份深度学习领域的分析报告,包含400个应用案例,横跨19个行业的9种业务功能。报告重点强调了前沿AI技术的应用范围之广,以及经…

pyppeteer:比 selenium 更高效的爬虫利器

API 接口文档:API Reference:https://miyakogi.github.io/pyppeteer/reference.html pyppeteer github 地址:https://github.com/miyakogi/pyppeteer pyppeteer 英文文档地址:https://miyakogi.github.io/pyppeteer/ pyppeteer…

全球机器学习领域顶尖的16家公司

来源:网络大数据 作者:Andy Patrizio摘要:机器学习是众多公司颇感兴趣的一个新兴领域。本文介绍了几大领先的机器学习公司,包括老牌技术厂商和后起之秀。机器学习是与人工智能一同急剧发展的领域。IDC预测,人工智能和…

突破淘宝对于 selenium 检测

From:https://blog.csdn.net/qq_42196922/article/details/89400988 多加一行代码,突破淘宝模拟登录滑块:http://www.imooc.com/article/285729 爬虫自动化:https://www.jianshu.com/p/b3b92f327374 selenium 跳过 webdriver 检…

18年你需要了解的15个人工智能统计数据

来源:网络大数据人工智能(AI)每天都在以惊人的速度增长,并且与此同时,围绕着各行业的统计数据也在发生变化。该技术在简化医疗保健行业工作流程方面取得了巨大成功,减少了教育部门行政任务的工时,同时也降低了制造业的…