airTest使用方法与踩坑总结

关于airTest
  1. 官方文档:文档链接.
  2. 官方5分钟引导链接:网页链接.
  3. 官方下载页面:网页链接.
安卓手机连接airTest IDE与基本设置
连接
  1. 首先确定想要连接的安卓手机打开的开发者模式,并且确定USB调试模式已打开,并且USB调试(安全设置)已经打开,才能进行模拟点击。具体官方文档参考.
  2. 确保电脑上已经安装过adb,我并不确定airTest是否会自动安装adb。具体下载adb的方法请搜索:SDK Platform Tools
  3. USB连接安卓设备后,点击airTest中的移动设备连接窗口的刷新ADB,因为是只用USB连接一台安卓机,所以直接点击第一台设备的connect。具体参考文档.
  4. 其他的连接方式,包括IOS连接和安卓远程,请参考文档
基本设置
  1. airTest项目可以在命令行运行,同时也可以在IDE中运行。但是在IDE中运行的时候,我发现会引入不了一些在命令行中已经通过pip install安装过的模块。具体原因可以查看官方文档。总结来说就是,airTestpython 3.6.5环境,如果想要使用某些第三方的库,就必须使用本地的python环境。通过点击选项->设置,然后设置自定义python路径,选择自己本地的python.exe文件。airTest使用方法与踩坑总结_第1张图片
  2. 还有一个问题,项目是.air格式的,所以不能直接使用import引入自己的自定义的模块。无论你自定义的模块是跟.air文件夹在统一目录下,还是跟对应的.py文件在同一目录下,都是没有办法使用import直接引入的。暂时想到的解决办法是,在.air文件对应的,py文件中引入sys模块,然后通过sys.path.append把当前路径加入到path中去。关于这个暂时没有想到其他解决办法,有其他方法欢迎评论。
    import sys
    import os
    sys.path.append(os.getcwd())
    
基本方法

官方参考文档

跨平台API airtest.core.api模块
  1. init_device(platform =‘Android’,uuid = None,** kwargs )
    如果尚未初始化设备,就初始化设备。

    #因为我只连接了安卓,所以只设定参数为Android
    init_device("Android")
    
  2. connect_device(uri )
    使用uri初始化设备,并且设置为当前设备

    参数 含义
    android:/// 使用默认参数的本地adb的Android设备
    android://adbhost:adbport/1234566?cap_method=javacap&touch_method=adb 使用自定义参数参数的远程设备
    windows:/// 本地Windows应用程序
    ios:/// iOS设备
    #因为我这里使用的是USB连接,所以直接使用第一个参数即可
    connect_device("android:///")
    
  3. start_app(* args,** kwargs )
    一般参数是要启动的软件的软件包和活动

    #举个例子
    start_app(" com.netease.my")
    
  4. exists(* args,** kwargs )
    检查设备屏幕上是否存在给定目标

    参数 含义
    v 对应的目标,一般用图片进行表达
    if exists(Template(r"tpl1571896153781.png", record_pos=(0.394, -0.514), resolution=(1080, 2340))):
        touch(Template(r"tpl1571896153781.png", record_pos=(0.394, -0.514), resolution=(1080, 2340)))
    

    一般会使用airTest辅助窗口中的exists按钮,直接进行截图,就会生成对应的代码。

  5. touch(* args,** kwargs )
    在设备屏幕上执行触摸操作

    参数 含义
    v 对应的目标,可以用Template的图片实例表示,也可以是绝对坐标(x,y)
    duration 时间,表示执行多少触摸
    try:
        touch(Template(r"tpl1571819080769.png", record_pos=(0.408, -0.441), resolution=(1080, 2340)))
    except:
        print("don't need to close the monster page")
    

    一般会使用airTest辅助窗口中touch按钮,直接进行截图,就会生成对应的代码。

  6. swipe(* args,** kwargs )
    在设备屏幕上执行滑动操作。
    重点:这里分配参数有两种:
    swipe(v1, v2=Template(…)) #从v1滑动到v2
    swipe(v1, vector=(x, y)) #滑动从v1开始并沿向量移动。

    参数 含义
    v1 滑动的起点,可以是Template实例,也可以是绝对坐标(x,y)
    v2 滑动的终点,可以是Template实例,也可以是绝对坐标(x,y)
    向量 滑动动作的向量坐标,可以是绝对坐标(x,y)或屏幕百分比,例如(0.5,0.5)
    try:
        swipe(v1=(629, 2018),v2=(978, 2040))
    except:
        print("can't go back to the main page")
    

    关于其他模块后续用到再继续补充

你可能感兴趣的:(软件测试)