zoukankan      html  css  js  c++  java
  • 手机自动化测试IDE-----Airtest基本操作方法

    大家好,我是IT共享者,人称皮皮。这篇我们来讲讲手机自动化测试IDE-----Airtest。

    前言

    前面我们讲到了Airtest的界面和安装技巧,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。

    一、基本API介绍

    我们在做自动化脚本的时候,每个生成的脚本文件会给我们自动生成一些代码,如图:

    这里所导入的模块其实就是跨平台的API,除了跨平台的API还有平台特定的API,比如:

    airtest.core.android #安卓平台
    airtest.core.ios   #苹果平台
    airtest.core.win   #Windows平台
    

    这里我们来详细说说这些模块。

    1.跨平台API模块

    这里我们要介绍的第一个就是跨平台模块:

    from airtest.core.api import * #导入所有方法
    

    1).初始化设备

    这里初始化设备我们也有两种方案,下面请看:

    1)).根据设备的UUID来初始化

    语法格式:

    init_device(platform='Android',uuid='',cap_method=JAVACAP for Android)
    #平台 – Android,IOS或Windows
    #uuid –目标设备的uuid,例如,用于Android的serialno,用于Windows的handle,用于iOS的uuid
    #kwargs –可选的平台特定关键字args,例如cap_method = JAVACAP for Android
    

    下面我们来列举一下实例,如下:

    init_device(platform='Android',uuid='127.0.0.1:62001',cap_method='JAVACAP')
    

    语法格式如下:

    android:///   连接当前安卓设备
    android://adbhost:adbport/serial NO.?cap_method=javacap&touch_method=adb
    windows:///    连接本地桌面程序
    ios:///     连接IOS设备
    

    这里我们主要是传入了ADB地址,端口和连接的夜神模拟器的序列号而连接上的。具体例子如下:

    connect_device('android://127.0.0.1:5037/127.0.0.1:62001?cap_method=javacap&touch_method=adb')
    

    2).返回当前活动设备

    device()
    

    3).设置当前活动设备

    有时候如果我们连接了多个设备,我们需要切换的话,就是用这个函数来达到目的,可以使用设备的索引或者设备的序列号来进行切换哦。

    set_current(0)
    set_current('127.0.0.1:62001')
    

    4).运行环境配置

    auto_setup(basedir = None,devices = None,logdir = None,project_root = None,compress = 0 )
    basedir 设置当前脚本的所在位置,__file__也可以。
    devices 指定运行脚本的设备以列表形式存在
    logdir 设置脚本运行时的日志保存路径,默认为None,设为True可保存
    project_root  设置api的项目根目录
    

    5).开启并执行远程Shell命令

    shell(cmd) #ls / data / local / tmp
    

    6).在设备上启动程序

    start_app('启动的应用程序包名')
    

    7).在设备上停止程序

    stop_app('启动的应用程序包名')
    

    8).清除设备上的应用程序数据

    clear_app('启动的应用程序包名')
    

    9).在设备上安装应用程序

    install(filepath='要在目标设备上安装的文件的路径')
    

    10).在设备上卸载应用程序

    uninstall('应用程序包名')
    

    11).截图并保存到文件中

    snapshot(filename='1.jpg',msg='hello',quality=3)
    filename:图片名
    msg:屏幕截图的简短描述
    quality:图像质量,范围为[1,99]的整数
    

    12).唤醒并解锁设备

    wake('设备')
    

    13).返回目标设备的主屏幕

    home('设备')
    

    14).设备屏幕上执行点击,滑动,捏,按键,输入操作

    click(v=Template(x,y),times=2) #单击
    v:触摸目标,可以是Template实例,也可以是绝对坐标(x,y)
    times:执行多少次触摸
    
    double_click() #双击
    swipe(v1,v2)#滑动起点和终点
    swipe(v1,vector=(x,y))#沿向量移动,向量可以是坐标也可以是屏幕百分比
    #返回值:原点位置和目标位置
    
    pinch()#捏操作,相当于缩放,参数如下:
    in_or_out:放大或缩小
    center:默认为None表示屏幕中心
    percent:捏动作的屏幕比例,默认值为0.5 
    keyevent(keyname='Home')#按键操作
    
    text('文本')#在设备上输入文本
    

    15).睡眠,等待

    sleep(2)#睡眠两秒,延迟两秒
    wait(v,timeout,interval,intervalfunc)#等待与设备屏幕上的模板匹配
    v:等待的目标对象
    timeout:超时时间
    interval:尝试找到匹配项的时间间隔(秒)
    intervalfunc:在每次未成功尝试找到相应匹配项后调用
    返回值:匹配目标的坐标
    

    16).检查给定目标在设备屏幕上是否存在

    exists(v)
    v:检查对象
    如果找不到目标,则为False,否则返回目标的坐标
    

    17).在设备屏幕上查找所有出现的目标并返回其坐标

    find_all(v)
    v:寻找目标
    返回坐标列表
    

    18).断言操作

    assert_exists(v,msg) #断言目标存在于设备屏幕上
    assert_not_exists(v,msg) #断言目标在设备屏幕上不存在
    v:要检查的目标
    msg:断言的简短描述
    
    assert_equal(v1,v2,msg) #断言两个值相等
    assert_not_equal(v1,v2,msg) #断言两个值不相等
    v1:第一个值
    v2:第二个值
    msg:断言的简短描述
    

    这里基本上我们就把使用方法说完了,下面我们来进行下实际操作,下一篇文章即将奉上。

    二、总结

    这篇文章主要介绍了Airtest的基本操作方法,可以让我们轻松实现软件自动化,下一篇文章将带大家一起进行实际操作,敬请期待!

    我是皮皮,如果觉得文章不错,记得三连噢,大家有问题也可以点击下方的图片,加我好友,交个朋友也好呀~

  • 相关阅读:
    JQuery是继prototype之后又一个优秀的Javascript库
    IAsyncResult接口
    Asynchronous Programming Patterns
    操作数据库的时候,使用自带的DbProviderFactory类 (涉及抽象工厂和工厂方法)
    8.2.4对象之间的关系
    git squash 和 git rebase
    8.2.3多态性 第8章 面向对象编程简介
    github的使用教程
    第7章 调试和错误处理 7.1.1 VS中的调试
    markdown的语法说明
  • 原文地址:https://www.cnblogs.com/dcpeng/p/14927978.html
Copyright © 2011-2022 走看看