首页 > 编程语言 >不用编程超简单的自动化测试工具:Airtest入门篇教程

不用编程超简单的自动化测试工具:Airtest入门篇教程

时间:2023-11-23 21:24:01浏览次数:33  
标签:Airtest 勇者 入门篇 点击 按钮 测试 自动化 测试工具

一、背景

很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别。也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选择的做测试。亦或者由于从其他行业转行过来的,隔行如隔山,编程太痛苦。

那么今天就给大家介绍一款无需编程知识也可以轻松编写自动化测试脚本的工具: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脚本如下:

​结论:所见即所得,只需要按照你的测试步骤,鼠标框选对应的图片去录制一遍,即可实现自动化测试效果。整个过程很好理解,也不需要有什么编程知识,妈妈再也不用担心我不会编程,就无法做自动化测试了。赶紧去试试吧!

当然,实际工作中的自动化测试场景,有的会比上面的这个场景复杂得多,那么作为一款优秀的自动化测试软件,自然也是要具备应对更复杂场景的能力。本文只是作为入门篇,让没有用过的同学先入门

最后如果你想学习软件测试和需要软件测试资料,欢迎加入笔者的交流群:320231853,里面可以免费领取软件测试+自动化测试资料+软件测试面试宝典+简历模版+实战项目+面试刷题工具和大佬答疑解惑,我们一起交流一起学习!

搜索

复制

标签:Airtest,勇者,入门篇,点击,按钮,测试,自动化,测试工具
From: https://www.cnblogs.com/nhb1234/p/17852529.html

相关文章

  • Airtest结合Poco对控件实施精准截图,学起来!
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言最近在Q群内发现有个小伙伴提出了一个很有趣的脚本需求,想要实现“通过选择器获取到了控件,然后截图这个控件范围”,根据我们的Airtest的局部截图接口以及poco......
  • 神经网络入门篇:直观理解反向传播(Backpropagation intuition)
    详细推导反向传播下图是逻辑回归的推导:回想一下逻辑回归的公式(参考公式1.2、公式1.5、公式1.6、公式1.15)公式1.38:\[\left. \begin{array}{l} {x}\\ {w}\\ {b} \end{array} \right\} \implies{z={w}^Tx+b} \implies{\alpha=\sigma(z)} \implies{{L}\left(a,y......
  • Redis入门篇(一)
    初学Redis简介以及入门一.Redis的介绍1.什么是redis?Redis(RemoteDictionaryServer)是一个开源的内存数据结构存储系统。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。与传统的关系型数据库相比,Redis是一种更加快速高效的数据存储方式。Redis在内存中存......
  • 神经网络入门篇:神经网络的梯度下降(Gradient descent for neural networks)
    神经网络的梯度下降在这篇博客中,讲的是实现反向传播或者说梯度下降算法的方程组单隐层神经网络会有\(W^{[1]}\),\(b^{[1]}\),\(W^{[2]}\),\(b^{[2]}\)这些参数,还有个\(n_x\)表示输入特征的个数,\(n^{[1]}\)表示隐藏单元个数,\(n^{[2]}\)表示输出单元个数。在这个例子中,只介绍过的......
  • Airtest:各平台的剪切板功能汇总
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言一直以来,大家都还挺关注Airtest是否有剪切板功能的。从Airtest1.3.1版本起,我们新增了Android、iOS设备的剪切板功能,自此,3大平台的剪切板功能就齐全啦。......
  • FIO测试工具
    一、fio简介FIO是测试磁盘性能的一个非常好的工具,用来对硬件进行压力测试和验证。支持几平所有的存储描述参数,大量对CPU、内存、进程/线程、文件、I0特性的配置。1、fio安装yuminstallgcclibaiolibaio-devel2、测试使用 ......
  • AirTest的Keyevent()
    keyevent简单来说就是关键词操作,它是在设备上执行keyevent按键事件,它包含2个参数:keyname –平台相关的按键名称**kwargs–平台相关的参数kwargs它支持Android、iOS、Windows三平台。我们可以参考Airtest官方文档中关于keyevent的介绍 演示实例#-*-encodi......
  • 神经网络入门篇:详解向量化实现的解释(Justification for vectorized implementation)
    向量化实现的解释先对几个样本计算一下前向传播,看看有什么规律:公式1.16:\(z^{[1](1)}=W^{[1]}x^{(1)}+b^{[1]}\)\(z^{[1](2)}=W^{[1]}x^{(2)}+b^{[1]}\)\(z^{[1](3)}=W^{[1]}x^{(3)}+b^{[1]}\)这里,为了描述的简便,先忽略掉\(b^{[1]}\)后面将会看到利用Python的......
  • 神经网络入门篇:详解多样本向量化(Vectorizing across multiple examples)
    多样本向量化与上篇博客相联系的来理解逻辑回归是将各个训练样本组合成矩阵,对矩阵的各列进行计算。神经网络是通过对逻辑回归中的等式简单的变形,让神经网络计算出输出值。这种计算是所有的训练样本同时进行的,以下是实现它具体的步骤:图1.4.1上篇博客中得到的四个等式。它们......
  • 一篇文章带你了解Python基础测试工具——UnitTest
    一篇文章带你了解Python基础测试工具——UnitTest测试人员一般使用Python作为主语言脚本来进行自动化开发,而Python自带的UnitTest脚本通常就是测试人员首先掌握的那么本篇文章我们将来介绍Python的最基本自动化工具UnitTest来开始我们自动化的第一步我们这篇文章将从以下角度进......