zoukankan      html  css  js  c++  java
  • 【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、更多扩展内容看下一篇文档

     

     
     
     
     
     
  • 相关阅读:
    leetcode32 Longest Valid Parentheses 最长有效括号序列
    js的Prototype属性
    一道区间dp和一道字符串
    Cookie和Session
    JS选择器querySelector和~All,三个原生选择器
    module.exports和exports
    Windows7环境下MongoDB安装和配置
    转载:Ajax基础详解&&http填坑2
    Node后台刷评论
    Node 简单爬虫
  • 原文地址:https://www.cnblogs.com/zhangxue521/p/14874848.html
Copyright © 2011-2022 走看看