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、更多扩展内容看下一篇文档

     

     
     
     
     
     
  • 相关阅读:
    DRUPAL-PSA-CORE-2014-005 && CVE-2014-3704 Drupal 7.31 SQL Injection Vulnerability /includes/database/database.inc Analysis
    WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss
    Penetration Testing、Security Testing、Automation Testing
    Tomcat Server Configuration Automation Reinforcement
    Xcon2014 && Geekpwn2014
    phpMyadmin /scripts/setup.php Remote Code Injection && Execution CVE-2009-1151
    Linux System Log Collection、Log Integration、Log Analysis System Building Learning
    The Linux Process Principle,NameSpace, PID、TID、PGID、PPID、SID、TID、TTY
    Windows Management Instrumentation WMI Security Technology Learning
    IIS FTP Server Anonymous Writeable Reinforcement, WEBDAV Anonymous Writeable Reinforcement(undone)
  • 原文地址:https://www.cnblogs.com/zhangxue521/p/14874848.html
Copyright © 2011-2022 走看看