【airtest】airtest学习汇总--入门篇

一、介绍

1、是什么?为什么?怎么用?

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。 Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。 Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。
Airtest也基于poco这个UI控件搜索框架,这个框架也是网易自家的跨平台UI测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件, 然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。
 

2、优缺点

优点
1、有个IDE,大大地减少了写自动化脚本的难度,搭建环境、写脚本,运行脚本,查看报告都一站式解决了
2、图像识别,对不能用ui控件定位的地方的,使用图像识别来定位,对一些自定义控件、H5、小程序、游戏,都可以支持
3、支持多个终端,使用图像识别的话可以一套代码兼容android和ios哦,用ui控件定位的话需要兼容一下。
4、对移动端友好
 
缺点:
1、图像变更后,会找不到控件。跟selenium类似
 

二、如何使用

2.1、下载airtestIDE

直接官网下载对应平台的包:http://airtest.netease.com/

2.2、连接手机

2.2.1、android连接

4种连接方式:真机usb连接、远程连接、无线连接、代码连接
以上连接方式都要开启USB调试。一般都在开发者选项---》usb调试
有的手机没有开发者选项,需要打开隐藏开关。如华为,连点8次关于手机,就会出来开发者选项
 

真机usb连接:

  • 手机跟电脑用线连接起来
  • 手机开启开发者选项--->USB调试
  • 点击连接面板中的 refresh ADB 按钮,设备列表将会刷新,
  • 点击列表内对应设备的 Connect 完成连接,

远程连接:

  • 已知IP和端口的远程设备 ip:port,AirtestIDE可以直接连接,
  • 点开设备窗内的 远程设备连接 按钮
  • 将 adb connect ip:port 字段填入填充框内,点击 连接 按钮,
  • 远程设备将出现在设备列表中,点击 connect按钮。

无线连接:

  • 确保手机开启了USB调试选项,并先用USB线将手机和电脑连接起来
  • 在电脑端执行命令 adb tcpip 5555 ,其中 5555 是端口号,可以根据自己的需求来指定,5555是默认值
  • 获取手机的IP地址,可以在 手机设置-关于手机-状态信息-IP地址 里找到,也可以执行 adb ifconfig来查看
  • 随后可以拔掉USB线,在AirtestIDE的 远程设备连接 处输入 adb connect 手机ip:刚才填入的端口号5555 ,点击连接,刷新ADB后就能在设备列表中看到连上的设备了
  • 如果因为网络波动、重启ADB等原因导致连接断开,重新执行一次 adb connect ip:port 即可。

  注意:

    1更换一个网络环境需要使用新IP重新connect即可。
    2但是如果手机重启了,就需要重新连接数据线再次开启端口。
    3开启端口可以通过adb,也可以直接在手机上打开,但一般需要root权限和特殊软件。

在代码中连接:

如果在代码中/脚本运行时,需要填写Android:/// 字符串,又不清楚远程连接的手机应该如何填写的话,可以直接用AirtestIDE运行一次脚本,然后将IDE生成的 Android:/// 字符串复制使用。
字符串需要填写的内容为 Android://adbhost:adbport/serialno ,其中,adbhost和adbport一般来说默认都是本机adb,即 127.0.0.1:5037 ,在远程连接手机时,与本地手机不同的是设备号serialno

2.2.2、ios连接

后期再补充
 

2.3、编写脚本

很简单的操作,不再详细介绍了具体看官网文档
 

2.4、运行脚本&查看报告

2.4.1、使用ide运行、查看报告

直接点击ide上的运行按钮,即可运行,log里面会显示当前执行的设备(这里的string串就可以放在代码里面连接)
运行完成后,点击操作区域的报告按钮,即可查看报告

2.4.2、使用命令行运行、查看报告(本地python环境)

ide中也可以执行命令行,就是把用点击按钮运行时的log打印的启动命令重新输一下。这里不再讲(ps,这样还不如用ide的按钮运行。干嘛多次一举呢~~)
我们讲如何用本地python环境运行
 

准备环境:

  • python环境,3.x的版本
  • 安装airtest(pip3 install airtest)
  • 安装poco(pip3 install pocoui)

运行脚本:

进入到对应的脚本目录,然后执行
python3 -m airtest run test1.air --device android://127.0.0.1:5037/TPG4C18308000271 --log log/
如果是连接了多个设备:python3 -m airtest run test1.air --device android://127.0.0.1:5037/TPG4C18308000271 --device android://127.0.0.1:5037/TPG4C18308000271 --log log/
 
  脚本参数介绍:
    【test1.air】是脚本的名称
    【android://127.0.0.1:5037/TPG4C18308000271 】是设备号(在ide上运行的时候,log打印的那一串)
    【log/】log的目录(相对test1.air的路径的)
     当然除了 --device --log还有其他的一些参数,比如:--recording录屏等,具体用到看文档
 

生成报告:

airtest report test1.air --log_root log/ --outfile log/test1/test1_log.html --lang zh
  脚本参数介绍:
    --log_root log/表示用当前目录下,log/目录里面的log内容来生成了一个html报告;
    --outfile log/test1/test1_log.html表示将这个html报告放在log目录下,命名为log.html;
    --lang zh表示指定显示语言为中文。
    更多报告相关命令:https://testerhome.com/articles/21792
 

三、扩展

 

3.1、放到python项目里面批量运行

只需要把在ide中编写脚本,复制一份到该项目文件的air_case目录下即可(注意要复制所有的代码不只是.air文件,还包括图片信息)
 

3.2、更多扩展内容看下一篇文档

 

 
 
 
 
 
原文地址:https://www.cnblogs.com/zhangxue521/p/14874848.html