Airtest常用API介绍

今天就继续给大家介绍一下Airtest框架常用的核心API用法,这也是熟悉使用Airtest框架的必备手册之一。

(一)官方文档

官方文档

https://airtest.doc.io.netease.com/IDEdocs/airtest_framework/1_airtest_api/

(二)核心API介绍

1.touch:点击

语法格式:touch(v,times, kwargs)

v:点击位置,可以是图片实例,也可以绝对坐标

times:点击次数,times默认是1

duration:按住时间,默认是0.01s

right_click:右键点击,仅限windows使用,默认值为False

  1. # 1. 通过所截取的图片进行比对,比对成功,则点击

  2. touch(Template(r"tpl1689155274882.png", record_pos=(-0.176, -0.306), resolution=(1080, 2400)))

  3. # 2. 通过页面的绝对坐标点击,AirtestIDE设置中可开启绝对坐标和相对坐标查看

  4. touch([1, 1])

  5. # 点击2次

  6. touch([1,1],times = 2)

  7. # 按住2s

  8. touch([1,1], duratio=2)

2.Template:图片实例

说明:虽然Template是touch()方法中的一个参数,但这个非常重要,涉及如何正确使用,以及如何提高图片识别率

图片

filename:是必填参数,就是图片路径,可以是相对路径或者绝对路径(如果使用AirtestIDE截图时会存在默认路径下)

threshold:图像识别的阈值,只有当图像识别结果的可信度大于阈值时,才算是找到图像识别的结果,阈值越高,对图像匹配的精确度就越高,若不添加该参数,该值默认为0.7,该值可设置的范围为0~1

target_pos:用于设置图像的点击位置,为1-9的整数,默认值为5(也就是图像的中心位置,1为左上角位置,9为右下角位置)

record_pos:计算坐标对应的中心点偏移值相较于设备分辨率的百分比,匹配时会优先匹配这附近的画面(如果使用AirtestIDE截图时会自动记录该参数值)

resolution:用于记录截图时的手机分辨率,也可以自己将分辨率填写到此处

rgb:是否强制使用彩色图像识别,该参数默认为False,Aitest会将图片转成灰度图片后才会进行图像识别,若是设置为True,则不会进行灰度化,一般适用于图片相似度极高,只是文字颜色有所区别,为了提高图像识别的精确度,可使用该参数

scale_max:是算法mstpl的专属参数,用于调节匹配的最大范围,默认值800, 取值范围 [700 , 2000],推荐值 740, 800, 1000

scale_step:算法mstpl的专属参数,用于控制搜索比例步长,它代表匹配时搜索的精细程度。进行图像匹配时,会在原始截图的一定缩放范围内以截图最长边 * scale_step 的步长进行搜索。默认值0.01,取值范围 [0.001, 0.1],推荐值 0.02, 0.005, 0.001

3.swipe:滑动

语法格式:swipe(v1,v2,vector,duration)

v1:滑动的起点,可以是一个图片实例,或是绝对坐标(x,y)

v2:滑动的终点,可以是一个图片实例,或者是绝对坐标(x,y)

vecotr:滑动动作的矢量坐标,可以是绝对坐标(x,y)或者是屏幕百分比

duration:在屏幕上滑动的时长,默认是0.5s

steps:滑动过程的步骤,默认是5

fingers:滑动的手指数量,1或者2,默认是1

swipe有2种传入参数的方式:

从v1滑动v2,swipe(v1,v2)

swipe((672,1214),(336,1305))

从v1开始滑动,沿着vector方向,swipe(v1,vector=(x,y))

swipe(Template(r"tpl1574067097045.png", record_pos=(0.042, 0.145), resolution=(1080, 1920)), vector=[-0.2666, -0.0005])

4.text:输入文本

语法格式:text(text,enter)

text:输入的文本

enter:是否在输入完毕后,执行一次enter,相当于keyevent(‘ENTER’),默认是True,如果仅是想输入文字,而不执行Enter,则可以传入False

search: Android设备特有的参数,是否要按下输入法键盘中的search键,默认为False,如果需要,则传入True即可

  1. # 设置search:True

  2. text('输入的文本', search=True)

备注:部分机型无法通过该方法输入,则可以通过adg shell input 命令方式输入

  1. shell("input text 'hello world'")

5.keyevent:按键事件

应用场景:可以删除输入框内容、返回上一页,合理的使用keyevent()接口,在一些情况下会使得脚本的兼容性更好

语法格式:keyevent(keyname, **kwargs)

keyname:平台相关的按键名称

**kwargs:平台相关的参数

Android平台支持的按键事件

  1. # 点击home键,平台

  2. keyevent('HOME')

  3. # 另外平台专门提供了一个home()方式,实现的效果一样

  4. home() # 相当于点击HOME键

  5. # 点击back键

  6. keyevent('BACK')

  7. # 点击删除键

  8. keyevent('KEYCOOE_DEL')

ios平台支持的按键事件

  1. # iOS设备现在暂时 只支持 HOME 按键的keyevent

  2. keyevent("HOME")

6.assert_exists:断言

说明:Airtest给我们提供了assert_exists和assert_not_exists两个接口,来断言一张图片存在或不存在于当前画面中。

语法格式:assert_exists(图片实例,msg)

图片实例:即是需要被断言的图片

msg:断言的描述,会被记录在报告中

assert_exists(Template(r"tpl1578970400453.png", record_pos=(-0.345, 0.142), resolution=(1080, 1920)), "断言存在")

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值