首先申明:

©著作权归作者所有:来自51CTO博客作者小强测试的原创作品,如需转载,请注明出处,否则将追究法律责任 

原文链接:https://blog.51cto.com/xqtesting/2420165

 

资源

由于博客不允许放外链(不理解为什么这样,越做越封闭),所以没法直接写URL,大家可以百度搜索关键字“airtest”即可看到官网

以下的内容中有一部分是来自官网的说明

airtest介绍

Airtest是一个跨平台的UI自动化测试框架,适用于游戏、App。支持Windows、Android、IOS(测试阶段会有未知错误)平台。

Airtest提供了跨平台的API,包括安装应用、模拟输入、断言等。 基于图像识别技术定位UI元素,你无需嵌入任何代码即可进行自动化测试。 测试脚本运行后可以自动生成详细的HTML测试报告。

Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。

Poco是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序。(暂时不支持微信小程序了)

AirtestIDE 是一个跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写脚本。

 

PS:个人使用之后感觉确实强大,但准确性还有待提高,稍复杂的场景录制完之后仍需要手工改动调试脚本。想要玩的更好还的手写代码。。。。。

AirtestIDE

安装

下载对应的版本,解压后双击AirtestIDE.exe即可运行

运行开始需要注册一个帐号,注册并验证完毕之后即可进入ide,如下图

左侧是辅助窗口,说白了就是图像和元素的识别以及录制在这里,中间是脚本区域,右侧是设备区,也就是链接的手机或模拟器

链接Android手机

打开手机>设置>开发者选项>USB调试开关

在AirtestIDE设备面板中点击 Refresh ADB 按钮,查看连接上的设备

如果没有显示出设备,试试 Restart ADB

点击对应设备的 Connect 按钮,进行初始化(如果使用的是模拟器,先选择use javacap以获得高清晰度画面)

如果出现类似如下错误:

adb server version (40) doesn't match this client (39); killing... * daemon started successfully *

解决方法:

将android-sdk-windowsplatform-tools下的adb.exe覆盖到airtest/core/android/static/adb/windows下

连接iOS手机

参考:http://airtest.netease.com/docs/cn/2_device_connection/4_ios_connection.html

其他使用方法在后续的脚本中会逐步讲解到

airtest脚本

基于图像识别。这里特别注意,图像识别不是万能的!!! 它是有 成功率 的,假设一个脚本里有10张图片,每张图片的识别成功率都能达到95%之高,10张图片全部都正确识别的概率也不过60%而已。所以你懂的~~

 

基本步骤:

app启动好

点击airtest面板內的按钮之后在去选择对应app內的元素,可以单步录制,自动帮你生成代码

点击airtest面板內的录制按钮可以实时录制,并生成脚本。也就是说你在ide右侧的设备面板內操作app,会自动生成代码,是不是感觉很爽?但其实从体验下来看,稍微复杂点的场景生成出来的代码一般没法直接使用,需要做一定的修改

来看个录制出来的代码(以小米商城APP为例)

简单来说就是分别点击app图标启动,点击搜索框,输入空气净化器,点击搜索按钮。其中的输入内容需要点击左侧airtest面板內的text组件来输入

 

PS:看上面的代码,其中有一个touch注释掉了,这里在选择元素范围的时候要特别注意,一定选择准确度高的,注释掉的这个就是因为选择的不太好,元素內的文字会变从而导致有时候成功有时候失败。换成上面那个基本是100%成功了

 

运行脚本并查看报告

运行就是点击顶部的三角箭头,你找不到?那就找不到吧,不要问我~运行期间会在下方log区域显示log,同时右侧设备区域显示回放

查看报告就是点击顶部的最后一个按钮,出来的结果类似这样

poco脚本

基于UI识别,说白了就类似webdriver和appium那种树型结构的。作为airtest脚本的辅助进行。

 

基本步骤:

启动好app

poco面板內选择对应的类型,比如Android,即刻在下方看到ui树

单步录制:双击UI树中的目标条目,即可插入对应UI节点的poco代码,但是单步录制的代码中的操作代码(如 ".click()" )需要手动添加

PS:点击 右键菜单-'UI path-code'可以生成xpath代码

自动录制:点击poco面板內的录制按钮,随着你的操作会自动生成代码,要停止就再次点录制按钮即可

PS:录制出来的代码一般都无法正确运行,需要进行修改才可以

看下录制出来的代码,已经经过了一些修改

稍微有点自动化测试基础的同学应该秒懂~其中对于输入空气净化器那部是录制完成手工修改的

PS:如果发现无法正确使用,那就是需要事先接入Poco-SDK才行,步骤较为繁琐,具体见官网,一般让开发完成

至于运行和报告和之前的一样,这里就不多描述了

web自动化测试

本来airtest是为了游戏测试而诞生的,后来扩展到app和web。体验下来佩服网易这些大神,个人感觉对于小白来说录制是个好事情,但脚本维护来说难度不小。个人觉得如果对于python熟悉的话还是直接写代码更好一点。其实airtest高级的用法也是自己写代码。。。所以。。。你懂的~

 

 

airtest-selenium是在selenium webdriver上再次封装了一层,我们可以使用AirtestIDE进行web自动化脚本录制、脚本运行和报告生成

录制

需要本地安装airtestide和chrome浏览器

窗口>selenium window,开启se面板

设置Chrome本地路径:“选项”-“设置”-“Selenium”-“设置Chrome路径”

点击开启浏览器并生成初始化代码

开启浏览器-点击编辑框中弹出的提示,生成初始化代码

浏览器中进入待测试的网页之后点击辅助窗的start_web,生成访问待测试网址的代码:

driver.get("http://www.xqtesting.com/")

 

点击录制

在浏览器进行操作,这时候会自动生成代码,类似下面的

 

再次点击运行脚本按钮即可回放,和se的差不多

运行结束后,点击报告按钮,查看报告