一、背景
很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别。也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选择的做测试。亦或者由于从其他行业转行过来的,隔行如隔山,编程太痛苦。
那么今天杨叔就给大家介绍一款无需编程知识也可以轻松编写自动化测试脚本的工具:Airtest,带各位早日脱离苦海!喜欢的宝子们不要忘了随手关注、点赞!
二、什么是Airtest
Airtest是一个跨平台的、 基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Mac、Android和iOS。
官网地址:http://airtest.netease.com/ 官方文档:https://airtest.doc.io.netease.com/
除了Airtest图像识别框架之外,还支持Poco框架,Poco 是一款 基于UI控件识别 的自动化测试框架,也就是常规的通过元素定位识别来完成自动化。目前支持Android原生、iOS原生、Unity3D、cocos2dx、UE4和Egret等平台,也可以在其他引擎中自行接入poco-sdk来使用。
虽然提供了这样的能力,但元素定位方式存在的两个通用缺点:元素位置识别&维护成本高、代码编写效率不高。而如果确实需要使用UI控件识别方案来做自动化的话,web端有Selenium,移动端有Appium,PC桌面端有Pywinauto, 都足够强大且网上各类文档更加丰富,更适合针对性的学习和使用。
因此本文的主角还是Airtest,学习成本低,上手编写脚本快,入门使用无需编程代码知识,即可快速完成大量测试脚本编写。此外当常规UI自动化无法或者很难识别定位元素时,也可利用Airtest图像识别的特性,来解决自动化测试难题。
最后Airtest基于Python,写出来的所有脚本都是Python代码,除了入门级使用之外,也可以进一步使用python做扩展和二次开发,对测试开发同学非常友好。
三、Airtest下载安装
进入官网,Windows 64位系统直接点击下载按钮下载WINDOWS(64BIT)版本即可:
如果是Mac,可以点击“其他平台版本”,下载Mac版本:
下载后纯绿色版,无需安装,直接解压文件,在解压的文件夹中找到AirtestIDE.exe, 运行即可:
注册登录账号那一步可以点击“Skip”跳过,不登录同样可以正常使用。进入后页面如下:
四、Airtest入门使用教程
4.1 连接设备:
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 具体测试场景案例:
比如测试需求是:搜索指定歌曲:孤勇者,并选择陈奕迅版本,进行播放。我们先来看一下最终用airtest实现的效果:
airtest
下面我们来看详细实现步骤:
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%匹配才算匹配上,就可以解决这个问题:
五、总结
至此,脚本就编写完成了。总结一下测试步骤:
1、点击QQ音乐搜索框
2、输入歌曲名称:孤勇者
3、点击搜索按钮
4、双击陈奕迅版本的孤勇者播放音乐
对应Airtest脚本如下:
结论:所见即所得,只需要按照你的测试步骤,鼠标框选对应的图片去录制一遍,即可实现自动化测试效果。整个过程很好理解,也不需要有什么编程知识,妈妈再也不用担心我不会编程,就无法做自动化测试了。赶紧去试试吧!
当然,实际工作中的自动化测试场景,有的会比上面的这个场景复杂得多,那么作为一款优秀的自动化测试软件,自然也是要具备应对更复杂场景的能力。本文只是作为入门篇,让没有用过的同学先入门,后面杨叔会再出进阶篇,介绍airtest的更多高级用法,解决实际工作中可能会碰到的各类难题,