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的基本操作方法,可以让我们轻松实现软件自动化,下一篇文章将带大家一起进行实际操作,敬请期待!

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

  • 相关阅读:
    如何使用SAP Intelligent Robotic Process Automation自动操作Excel
    OpenSAML 使用引导 IV: 安全特性
    Spring Cloud Zuul 网关使用与 OAuth2.0 认证授权服务
    微服务架构集大成者—Spring Cloud (转载)
    Spring Cloud Eureka 服务注册列表显示 IP 配置问题
    使用 Notification API 开启浏览器桌面提醒
    SignalR 中使用 MessagePack 序列化提高 WebSocket 通信性能
    配置 Nginx 的目录浏览功能
    关于 Nginx 配置 WebSocket 400 问题
    Migrate from ASP.NET Core 2.0 to 2.1
  • 原文地址:https://www.cnblogs.com/dcpeng/p/14927978.html
Copyright © 2011-2022 走看看