Airtest-一个更小巧的自动化测试工具
一,关于Airtest
笔者最近在公司做APP的自动化测试,关于移动端的自动化测试的工具目前最常用的应该就是Appium了,但是Appium的安装配置环境略微复杂,脚本的编写也需要一定的代码基础,而想要让没有接触过APP自动化的同学更加快速的了解和认识自动化测试,Airtest是一个更好的选择,下面我就和大家聊一下这个小巧的自动化测试工具——Airtest。
Airtest是网易自研的一款基于图像识别和poco控件识别的UI自动化测试工具,Airtest的整体封装的框架由两个部分组成airtest工具包是一个跨平台的UI自动化测试框架,这个框架的原理是利用截图的方式,在已展示出的手机界面中寻找所匹配的图片,所以这个基于图像识别的框架是非常的适合非原生的安卓应用和游戏,而poco工具包的原理,其实使用过appium的同学应该非常的熟悉,是基于UI控件搜索的自动化测试框架,定位目标控件,然后调用函数方法对目标控件进行操作。
二,关于自动化测试
自动化测试,就是把重复性高的测试用例编写成测试脚本,利用自动化测试工具执行代码,让计算机代替人工进行测试的过程,本质上就是把以人工为驱动的测试工作转化为以计算机驱动的测试工作。
自动化测试的意义在于节省人力,物力,提升测试效率和提高测试覆盖率,通常在项目的稳定阶段介入,以回归测试为主。
三,上手Airtest
说了那么多,现在我们就来实际的操作一下Airtest,让大家更直观的了解到Airtest这款自动化测试工具的特性。
1.环境搭建
首先我们到Airtest的官网,下载Airtest,在下载之前我们要安装好AndroidSDK,并配置好ADB环境。
下载安装后,我们打开AirtestIDE,不同于Appium,AirtestIDE已经帮我们集成好所需要的所有环境,脚本录制界面,模拟器界面,代码编辑界面,所以只要一个AirtestIDE就可以轻松的录制脚本,让我们实现APP的UI自动化测试
2.AirtestIDE
在安装成功并连接手机后,我们就要进行实际操作了,以淘宝App为例,我们要在手机中启动淘宝,并进入‘我的’界面,我们先来看一下操作步骤
1.点击录制按钮
2.点击淘宝App
3.点击‘我的’
4.完成录制
5.自动生成脚本
我们来看一下自动生成的代码,很简单,首先是导入了airtest和poco的工具包,然后是两行代码,都是touch语句,这个动作是触摸,我们来回放一遍,发现Airtest是通过截取当前界面,然后我所截取的界面中找到我们截图的那个部分,然后进行touch点击操作,从而实现图像识别的自动化测试,但是在回放的过程中,我发现它的操作是比较慢的,也就是图像识别所需要的处理时间是比较长的。
3.airtest工具包
接下来我们来说一下airtest工具包的常用方法
touch —— 点击屏幕
wait —— 等待
swipe —— 拖动操作
text —— 输入文字
keyevent —— 安卓键盘操作
snapshot —— 截图
sleep —— 延迟时间
assert —— 断言
这些方法的使用也是非常简单的,选中方法后在右侧的模拟器内执行相应的操作就可以自动生成代码,值得一提的是,text方法中附加了一个回车动作,也就是说在输入文字后会自动执行回车
4.poco工具包
在我们的实际工作中,APP的图像是会经常变化的,那么我们的基于图像识别的脚本就会失效,而安卓控件是比较稳定的,poco方法就是安卓控件的识别,我更提倡在测试安卓应用时使用poco方法,而图像识别作为辅助,两者配合可以发挥出更好的效果。
我们来看一下poco方法是怎么使用的。
在左侧的poco辅助窗中选中Android,IED会提示你是否导入poco包,选择是,我们选择相应的UI控件,双击自动生成代码,但是这个自动生成的代码只是UI控件的识别代码,并不是操作代码,所以我们要在UI控件识别代码后增加动作。
Poco的这段代码和录制生成的代码效果是一样的,只不过一个是UI控件识别,一个是图像识别,但是poco代码的执行效率更高,在APP的版本迭代中也更为稳定。
总结
总的来说,Airtest的操作是比较简单的,基本上不用自己编写代码,所以很适合没有自动化测试经验的同学用这个工具来进行自动化测试工作,同时Airtest也提供了开源的API,可以在Pychram里配合使用其他的python工具包来实现更复杂的代码逻辑。
同样的这个工具也会有不足的地方,其中poco的方法封装的过于彻底,比如Appium中elements方法就无法实现,IDE中只能运行单个的脚本,无法批量的运行测试脚本和管理测试脚本。在我的下篇文章中,我会教大家如何使用第三方单元测试框架集成AirtestAPI,来实现批量运行测试脚本和管理测试脚本。