app自动化Airtest

引子:

  以前用的appium做的app自动化,繁琐就不说了,做过的大家都知道。Airtest是网易做的,收到谷歌的力挺的,支持截图和脚本两种方式,且简单容易上手,并且功能也强大,并且在不断的维护。并且除了app自动化,airtest还支持web,微信小程序,以及win程序的自动化,并且将需要的东西都已经集成起来了,比如chromedriver,比如adb。因为可以使用截图的方式和点击后自动定位的方式,开发的效率是比较高的,所以在任务比较急的时候,这样是比较合适的,但是同样的基于图像识别,可能会出现无法识别的情况,建议后期控件定位的方式。在后期工作相对空闲的时候,在将代码进行封装,解耦。

环境的准备:

  1

    AirtestIDE地址:http://airtest.netease.com/

  2

    adb准备,并且最好配上path,不清楚的请自行百度。如果实在懒,在airtestide中可以找到adb,cy出来,改改,在配path也可以。

  3 

    如果准备使用airtest做web端的自动化需要以下依赖

    1 将airtest根路径下的airtest_selenium,复制到python的根路径下,如果不怕麻烦不放也行,方法自行百度。

    2 将chromedriver同样放到python的根路径下,不会的自己百度。

    3 pip install selenium

     pip install airtest

     pip install pynput

      以上是命令行执行的时候,需要的依赖

app自动化:

  我这里使用的是虚拟机,既然airtest是网易做的,那么就用网易的MUMU模拟器吧。

  1 使用adb连接虚拟机,MUMU模拟器的端口默认是7555

  2 airtestide中连接虚拟机

 出现手机的画面就证明连接成功

  3 airtest中支持录制和手动编写,同样支持写代码

   1 截图 

      选择左侧命令,按照提示做对应操作就可以了,会生成对应的代码

    2 录制

web自动化:

  1 除了环境的依赖外,还需要将chrome的路径配置下。然后在 窗口中 勾选 selenium window

   2 基本操作

     对selenium有一定了解的,这里的方法不需要多少,其中两个方法比较特殊,也比较好用airtest_touch和assert_template,这是airtest自己封装的方法,允许通过截图的方式点击元素和判断元素是否存在。

 

命令行执行:

    airtest推荐命令行执行

    方法1:

      python -m airtest run E:\tools\Airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\test02.air --log E:\tools\Airtest\AirtestIDE_2020-01-21_py3_win64\log

      run后是需要执行的文件,--log后是日志写入的地址

    直接使用airtest run filename.air 也可以

  生成测试报告:

    在airtest中,测试和生成报告是分开执行的,在测试后才会生成测试报告。

    具体命令如下

    airtest report E:\tools\Airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\test02.air --log_root E:\tools\Airtest\AirtestIDE_2020-01-21_py3_win64\log --outfile E:\tools\Airtest\AirtestIDE_2020-01-21_py3_win64\log\log.html --lang zh --plugins airtest_selenium.report

            airtest report 执行脚本路径  --log_root 执行之后的日志文件路径 --outfile 测试报告生成的位置以及各式 --lang zh --plugins airtest_seleium.report (调用插件)

测试报告蛮漂亮的,这次网易是真走心了。并且每一步都截图,一目了然,当然图片文件会很多

    当然可以直接将命令写成一个bat文件,也可以定时执行bat文件

配置触发器

猜你喜欢

转载自www.cnblogs.com/yuan-x/p/12579964.html