Airtest UI 自动化测试项目 [Airtest Project] 资源汇总

zhangqi · 2018年03月23日 · 最后由 吴秋楠 回复于 2020年11月09日 · 793 次阅读
本帖已被设为精华帖!

大家好,Airtest Project是网易游戏团队新开源出来的一款用于UI 自动化测试的项目,项目还处在公开测试阶段,最近也收到了不少非常有用的 bug 反馈和建议,非常感谢大家对我们的支持!

为了方便大家更好地了解 Airtest 项目,特此整理了一波相关资料和链接汇总放在这里,欢迎大家围观交流~

简介

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

  • 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程

  • 支持基于图像识别的Airtest框架,适用于所有 Android 和 Windows 游戏

  • 支持基于 UI 控件搜索的Poco框架,适用于 Unity3d,Cocos2d 与 Android App

一句话总结:我们推出了两款基于 Python 的 UI 自动化测试框架Airtest(用截图写脚本)和Poco(用界面 UI 元素来写脚本),可以用我们提供的AirtestIDE来快速编写你的自动化测试脚本~

教程和链接汇总

快速上手

初次上手,请戳以下链接到官网下载 AirtestIDE,以及查看官网演示视频
【主页和 IDE 下载】http://airtest.netease.com/

史上最良心的 5 分钟上手图文教程,开发组小哥哥手把手教你学会怎么用:
【入门教程】http://airtest.netease.com/tutorial/Tutorial.html

基于图像识别的 Airtest

Airtest 是一个跨平台的 UI 自动化测试框架,适用于游戏和 App。目前支持 Windows 和 Android 平台,iOS 支持正在开发中。
【文档】http://airtest.readthedocs.io/zh_CN/latest/
【源码】https://github.com/AirtestProject/Airtest
(求路过顺手点点 star 哦!)

基于控件识别的 Poco

Poco 是一款基于 UI 控件识别的自动化测试框架,目前支持 Unity3D/cocos2dx-*/Android 原生 app,也可以在其他引擎中自行接入 poco-sdk 来使用。
【上手文档】http://poco-chinese.readthedocs.io/zh_CN/latest/source/README.html
【使用 demo 文档】http://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/poco-example/index.html
(可以下载里面提供的 demo 进行试玩)

【源码】https://github.com/AirtestProject/Poco
(听说点 star 的人能看到福利

【进阶工具 HierarchyViewer】http://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/about-standalone-inspector.html

各个引擎如何接入 poco

Android 原生 APP

【SDK】无需接入
【测试框架】http://poco.readthedocs.io/en/latest/source/poco.drivers.android.uiautomation.html
官网首页可以看到一个使用 poco 来测试网易云音乐 app 的例子~

Unity3D

【SDK】http://poco.readthedocs.io/en/latest/source/doc/integration.html#unity3d
【测试框架】http://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/poco_drivers.html

Cocos2dx-lua/Cocos2dx-js

【SDK】http://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-lua

####H5/Unreal
sdk 代码还在整理中,敬请期待

iOS

【环境搭建指引】http://airtest.netease.com/docs/cn/2_device_connection/4_ios_connection.html

问题反馈、自查与 FAQ

遇到问题怎么办,不要惊慌,我们非常乐意接收各位的问题反馈与建议:

AirtestIDE 闪退

点击文档AirtestIDE 闪退问题,根据其中的指引将发生闪退时的步骤重现一遍后,把后台 log 窗口的截图发送到AirtestIDE Issues,或加入我们的 QQ 群(437119175)将 log 反馈给群内管理员们。

Android 手机无法连接

请根据文档Android 连接 FAQ进行问题自查,根据其中的操作步骤进行问题排查后,再将问题反馈到AirtestIDE Issues,或加入我们的 QQ 群(437119175)反馈给群内管理员们。

联系我们

QQ 群: 437119175
邮箱:airtest@service.netease.com
BUG 反馈专用:https://github.com/AirtestProject/AirtestIDE/issues

其余问题与开发建议

对 AirtestIDE 的开发建议,请访问 AirtestIDE issues
对 Airtest 测试框架的开发建议,请访问 Airtest issues
对 Poco 测试框架的开发建议,请访问 Poco issues

最后,感谢各位的支持,我们的项目还有很多不完善的地方,我们会继续努力~!

共收到 51 条回复 时间 点赞

支持了,刚好再学习这个东西

很给力的工具~谢谢 网易大神的分享

辛苦了,棒棒的

思寒_seveniruby 将本帖设为了精华贴 03月23日 11:37
从头条慕名而来。。

今年的第四届移动互联网测试开发大会,也提交个 topic 来吧

真牛逼,以前听说过不少各厂自己做各种千奇百怪的解决方案,第一次看到这么成熟的方案,绝了

http://top.gdl.netease.com/AirtestIDE_2018-03-16_8.zip

至今未能下载成功,麻烦检查一下官网上 Windows 版本的AirtestIDE下载链接是否有问题?

叫我字母 回复

请问下你的网络是什么网络呢?另外,可以试试用迅雷之类的软件再下载看看

zhangqi 回复

现在可以下载了,之前一直提示文件无效,用迅雷也是。
不知道是不是刚刚卸载了迅雷就好了。。。

11楼 已删除

学习了,厉害了

13楼 已删除

在 Windows 上试用了下,跟 sikulix 好像好像哦

lin 回复

对的,sikuli 是个非常伟大的产品,我们的前期设计思路也是参考了它的~

下载后解压一直报错。。。文件损坏

连上模拟器后,显示的是黑屏。但实际点击黑屏,能点到相应的按钮

xiaoqi 回复

暂时不支持模拟器的哈


这是为什么呢?

啵板 回复

好的,谢谢

YiZer 回复

IDE 需要显卡支持 Opengl,这种情况的话可以尝试下给显卡更新一下驱动就可以了

安卓端,手机浏览器的游戏,以及嵌入在 APP 中的页面游戏可以支持吗

仅楼主可见
zhanglimin 回复

试试将 IDE 放在非中文路径下再重新打开看看。 H5 游戏的 SDK 暂时还没有弄好,未来会逐步开放的

移动端的 sikuli?

怪盗魔理沙 Airtest 已经支持 iOS 真机测试! 中提及了此贴 05月04日 09:18

Poco 能不能接到 cocos creator?

祝啸风 AirtestIDE 支持 Web 测试! 中提及了此贴 05月11日 09:05

操作元素的方法好像只有,click() 像 clear(),sendkeys() 等好像都没有

请问文本输入框的内容支持动态变量么?
例如:text(“test”)中的 test 能否替换为其他动态变量?比如:随机数字串

阿禾 回复

你说的 clear 和 sendkeys 相当于都是键盘操作,我们有一个接口 keyevent(),可以通过输入 keyevent("删除键") 等按键响应来完成删除和发送按键操作,具体的按键码可以查询 adb 的 keyevent

TE5T001 回复

支持的

我 15 年的时候也写过一个录制回访的工具,其实就是在 uiautomatorviewer 的基础上做了一些修改,封装了一些命令,当时是走坐标转换的方式实现点击,滑动等等相关操作的,然后通过 python 的形式把录制好的脚本回放出去。由于当时的工具截取手机屏幕的速度当时很慢最终也没有被用起来,airtest 使用 mimicap 实现快速传屛确实带来了很棒的使用体验。
使用 aritest 时我有以下两个点还没有想明白,希望大拿帮忙解惑:
1、录制脚本时如何应对不确定性 UI(比如 需要判断是否弹窗升级窗口,如果有弹窗则执行动作 a,否则执行动作 b),现在怎么实现类似于这样的脚本;
2、如何把录制好的若干个脚本以 suite 的方式去挨个执行?

通过命令行运行一个调用其它公共模块脚本的脚本文件,如何使用?

啄木鸟 回复

抱歉,很久没上论坛一直没看到回帖,现在才回复。

最初我们的截图也是直接用的 android adb 截图,速度非常慢,中途花了很多时间去优化后效果也不太理想,后来发现了 minicap 才让这个工具彻底能真的跑起来。。。

你提的两个问题都比较有代表性,弹窗问题的话我们有尝试过另外开个线程,不断监控当前屏幕,发现有弹窗就去点掉它。

第二个问题的话可以上我们的 github 了解一下 my-testflow 和 pocounit 两个库 https://github.com/AirtestProject

很强,上手试了一下速度很快的。安卓和 web 端都尝试了。web 录制后出现了几次崩溃,应该是与我的操作有关😀 有空再看看别的功能,感谢分享

收藏先,有空试试,谢谢楼主分享

仅楼主可见

现在 IOS 能够支持了吗?我试了一下 IOS 的发现录制都没有什么反应

YiZer 回复

https://www.jianshu.com/p/2731fe699d5d 修改网卡就可以解决这个问题

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 06:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 04:08

你好,如果我想用这个工具写的脚本在别的机子上跑起来的话,要如何部署呢?是否每台机子都需要安装 airtest 环境才能跑的起来?入

什么时候支持通过 WIFI 连接被测设备

远程设备一直都支持的,只是可能效率不高,因为网速问题

Bigfishisbig 回复

理论上来说,是需要装了环境才能跑的

感谢网易粑粑的工具共享,我已经爱上节款工具😻

为什么文档全部 404 了

Milukun 回复

抱歉,我们之前对文档地址进行了一些修改,导致旧的文档 URL 失效了,现在已经修复了部分 404 链接,可以访问了。
访问我们的官网也可以直接找到文档入口:http://airtest.netease.com/

wolfgao 移动客户端 /UI 开源测试框架梳理和大比拼 中提及了此贴 02月27日 13:03
YiZer 回复

找到解决方案了吗~

请问对于其他引擎接入 SDK 的帮助文档有吗

请教一下,对于截图比较的,在不同分辨率的设备上,都要截图么?若不用,怎么解决这个问题的

部分 app 一打开就会断掉画面,把 connect 里面的选项怎么改都不行,退出那个 app 回到桌面再 connect 就没问题,请问这个应该是哪里设置不对?偶尔进去了之后点 connect 又可以

请问 linux 系统 python 版本 2.7,64 位的,先是安装 airtest 时安装 opencv_contrib_python 失败,然后在单独安装 opencv_contrib_python 这一步,先后安装 opencv_contrib_python-4.2.0.32-cp27-cp27mu* 的 whl 文件都安装失败,报错信息:
ERROR: opencv_contrib_python-4.2.0.32-cp27-cp27m* is not a supported wheel on this platform.
然后又默默把这个版本所有 cp27 的都试了一遍,全报这个错。随后用版本 opencv_contrib_python-3.2.0.7 也是这个报错。请问这个要怎么解决呢?

请问使用 assert_exists 这个函数,怎么修改 threshold,尝试直接传参和修改 ST.THRESHOLD_STRICT 以及 ST.THRESHOLD,但运行的时候 threshold 还是默认 0.7

zhangqi 回复

你好,想问下多开线程的话,用的是原来的 UnityPoco 对象,还是新的 UnityPoco 对象?
我项目这边由于有比较多的不同类型弹窗,开了四五个线程,用重新生成的 UnityPoco 对象的话,游戏性能会下降的很厉害;用单例去获取 UnityPoco 对象的话,又会报错,想问下有什么思路吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册