目录
1.什么是Airtest?
2.AirtestIDE下载安装
3.如何开始使用
4.Airtest入门特例教程
5.总结
1.什么是Airtest?
Airtest是一款基于 Python 的、跨平台的UI自动化测试框架。因为它基于 图像识别 的原理,所以适用于所有 Android、 iOS和 Windows 应用。因此,不论是手机上的app还是游戏,或者是Windows电脑上面的应用或者游戏等等,都可以用Airtest框架。
学习成本低,上手编写脚本快,入门使用无需编程代码知识,即可快速完成大量测试脚本编写。此外当常规UI自动化无法或者很难识别定位元素时,也可利用Airtest图像识别的特性,来解决自动化测试难题。最后Airtest基于Python,写出来的所有脚本都是Python代码,除了入门级使用之外,也可以进一步使用python做扩展和二次开发,对测试开发同学非常友好。
官网地址:Airtest Project (netease.com)
官方文档:Home - 欢迎使用 - 《Airtest v1.2 中文文档》 - 书栈网 · BookStack
- 跨平台: Airtest可以在几乎所有平台上执行游戏和App的自动化。
- 一次编写,随处运行: Airtest提供了跨平台的API,囊括了应用安装、模拟输入以及断言等。由于使用图像识别技术来定位UI元素,因此无需嵌入任何代码即可对游戏和应用进行自动化操作。
- 可扩展性: 通过使用Airtest提供的命令行与python API接口,可以很轻松地在大规模设备集群上运行脚本。提供的HTML报告包含了详细操作步骤和截屏,能够迅速定位到失败点。同时,网易也提供了 Airlab 云测试平台服务。
- AirtestIDE: AirtestIDE是一个强大的GUI工具,可以帮助你录制和调试测试脚本。 AirtestIDE提供了完整的自动化工作流程支持:
录制脚本->真机回放->生成报告
。
2.AirtestIDE下载安装
进入官网,Windows 64位系统直接点击下载按钮下载WINDOWS(64BIT)版本即可:
如果是Mac,可以点击“其他平台版本”,下载Mac版本:
下载后纯绿色版,无需安装,直接解压文件,在解压的文件夹中找到AirtestIDE.exe, 运行即可:
注册登录账号那一步可以点击“Skip”跳过,不登录同样可以正常使用。进入后页面如下:
3.如何开始使用
对于刚入门,建议使用 AirtestIDE 来帮助编写自动化测试脚本。熟练上手 Airtest 和 poco 以后,如果有需要的话,则可以尝试脱离IDE来跑测试脚本,比如在本地命令行上运行,比如在其他Python编辑器,比如pycharm上运行等等。
在上述步骤我们已经下载了对应的 AirtestIDE
借助IDE界面左侧的Airtest辅助窗,我们可以对连接上的设备进行一些模拟操作,比如点击、滑动、截图、长按、输入文本等等。
而借助poco辅助窗,我们则可以看到设备的UI树,然后我们选中某个UI控件,就可以对这个选中的控件进行各种操作。
特别注意:因为 Airtest 和 poco 都是基于 python 语法的,所以我们编写的测试脚本都应该符合 python 语法。
4.Airtest入门特例教程
4.1 连接设备:
比如测试需求是:搜索指定歌曲:悬溺,进行播放。我们先来看一下最终用airtest实现的效果:
airtest自动化测试脚本实例-CSDN直播
1、我们以自动化测试QQ音乐为例,先启动QQ音乐。然后回到Airtest IDE,新建点击“窗口”菜单,勾选上“Devices”, 点击“Windows窗口连接”的连接桌面图标,如下图:
2、连接成功后,会发现左侧“Airtest辅助窗”下方的按钮都变为了可点击状态。鼠标悬停在对应的按钮上,会显示按钮的参数使用说明,如下图:
3、然后点击菜单栏的“+”号,新建“.air Airtest项目”,输入项目名称,IDE会自动导包初始化脚本,如下图:
4、这个时候切换到QQ音乐窗口,然后缩小Airtest IDE窗口的大小,目的是让你可以使用“Airtest”辅助窗下面的各个功能按钮截取到QQ音乐上对应操作的图片:
5、接下来就非常简单了,使用“Airtest”辅助窗下面的各个功能即可快速实现你要测试的场景。Airtest常用按钮说明:
touch:点击操作 text: 输入文本操作 sleep:睡眠操作,单位是秒 exists: 是否存在,返回true or false,用于编写逻辑判断代码时使用 assert_exists: 断言是否存在,用于测试断言使用 snapshot:截屏并保存为文件
4.2 具体测试场景案例:
比如测试需求是:搜索指定歌曲 悬溺 ,进行播放。
1、第一步是:点击搜索框。在Airtest IDE中点击touch按钮,框选上QQ音乐搜索框图片,选完图片后可以看到IDE中脚本已经生成:
2、第二步:输入歌曲名字“悬溺”并执行搜索操作。这一步直接点击Airtest IDE中“text”按钮,在弹窗中输入文字“悬溺”,脚本就生成了:
输完文字后,点击搜索图标执行搜索操作:
3、第三步:点击悬溺,进行播放。touch框选上图片:
但是touch只是鼠标单击,如何实现双击效果呢?鼠标移动touch上,可以看到它有times函数,默认是点击1次,我们将times设置为2:
另一种解决方案是:使用另外一个函数double_click,则会触发双击效果:
注意:由于搜索出来有很多版本的“悬溺”歌曲,因此有很多其他版本的“悬溺”歌曲图片和我们截取的图片相似。而airtest图片识别默认的阈值是0.7,即70%匹配就认为匹配上了。
因此如果出现偶尔会点击到其他版本的“悬溺”歌曲的情况,可以在Airtest IDE中双击该图片,设置该图片的识别匹配阈值为0.9,提高为90%匹配才算匹配上,就可以解决这个问题:
5.总结
至此,脚本就编写完成了。总结一下测试步骤:
1、点击QQ音乐搜索框
2、输入歌曲名称:悬溺
3、点击搜索按钮
4、双击播放音乐
对应Airtest脚本如下:
结论:所见即所得,只需要按照你的测试步骤,鼠标框选对应的图片去录制一遍,即可实现自动化测试效果。整个过程很好理解,也不需要有什么编程知识,很快就可以上手自动化测试。赶紧去试试吧!
当然,实际工作中的自动化测试场景,会比上面的这个场景复杂得多,那么作为一款优秀的自动化测试软件,自然也是要具备应对更复杂场景的能力。本文只是作为入门篇,后面会再出进阶篇,介绍airtest的更多高级用法,解决可能会碰到的各类难题