当前位置: 首页 > 工具软件 > Airtest > 使用案例 >

airtest基本介绍

隆选
2023-12-01

airtest基本介绍

airtest其实由三部分构成 airtestIDE airtest框架 poco框架

airtestIDE(集成开发环境)

是网易出品的一款非开源的工具 用于帮助我们实现自动化的相关脚本创建 编写

airtest框架

基于图像识别的开源自动化框架(理论上只要设备不黑屏白屏蓝屏异常情况) 都可以通过图像进行定位

poco框架

基于元素进行定位的开源自动化框架(类似于使用webdriver定位元素 语法不一样)

airtest连接设备问题注意点

官网连接设备文档 https://airtest.doc.io.netease.com/IDEdocs/3.2device_connection/2_emulator_connection/
连接真机问题参考地址 https://mp.weixin.qq.com/s?__biz=MzA5NDYxNTU5NA==&mid=2247489153&idx=1&sn=abcc2b0df051c7122f3315d81d74a0d2&chksm=904ab7c4a73d3ed215c5c746d5ae76b3021c6903cc6ae646dc8c2c40b8e0b56b610a04f24683&cur_album_id=1891690652363456519&scene=189#wechat_redirect
连接模拟器问题参考地址 https://mp.weixin.qq.com/s?__biz=MzA5NDYxNTU5NA==&mid=2247489207&idx=1&sn=0fd171a8981fc3c67e8a7951aa8c273f&chksm=904ab7f2a73d3ee4ff4ce0046caee8cd2454bc31a44dd56983b77cdcb3f81ac3f4fe84de25fa&cur_album_id=1891690652363456519&scene=189#wechat_redirect

接过程中常见问题:

出现adb版本不匹配的错误

原因:电脑上存在多个adb文件 且版本不一致 
需要将电脑上所有的adb.exe 变成统一版本(使用同一份文件进行覆盖替换)
常见adb.exe位置 你可以自己去 AndroidSDK文件 airtest文件夹  模拟器的安装文件夹下去搜索 adb.exe
AndroidSDK文件中的adb位置    AndroidSDK文件\platform-tools
airtest文件中的adb位置       AirtestIDE文件夹\airtest\core\android\static\adb\windows
未开启开发者选项 ,未允许USB调试,开发者选项内 打开禁止权限监控
Yosemite.apk文件所在位置 AirtestIDE\airtest\core\android\static\apks
pocoservice-debug.apk文件所在位置  AirtestIDE\poco\drivers\android\lib

airtestIDE使用

airtestIDE主要由 以下几个窗口构成
airtest辅助窗(airtest框架常用的api函数放在该位置 方便你直接使用)
poco辅助窗(类似于F12检查元素 这里显示当前手机页面的元素情况)
脚本编辑窗(在该窗口进行代码的编写)
日志查看窗(查看代码运行过程中的产生的相关数据)
设备窗(动态显示当前连接的设备)
文件新建脚本的时候建议 先确保手机连接
可以通过Android助手对话框 然后点击刷新获取当前app的包名及主界面名
可以在选项设置里面 勾选实时坐标显示 相对坐标 这样 鼠标移动到手机屏幕上会实时显示当前光标所在屏幕的相对坐标

airtest框架常用操作:airtest涉及到坐标操作都是绝对坐标(无法跨分辨率)

点击操作:

touch(图片/坐标,times=次数,duration=持续时间)  

滑动操作:

swipe(图片,vector=[水平方向滑动百分比,垂直方向滑动百分比],duration=滑动持续时间)

文本输入:

text(文本内容,search=False)    
必须确保手机Yosemite输入法打开  有些软件文本框输入内容后不会执行搜索 可以设置search=True即可实现自动搜索

键盘输入:

 keyevent(键盘代码)  根据对应的键盘代码实现对应的操作 常见键盘码   
 返回首页 HOME  3     返回上一步  BACK  4   回车 ENTER  66  退格 DEL 67
airtest断言类操作:
assert_exists(图片, "请填写测试点")   判断图片是否存在,不存在报错
assert_equal("实际值", "预测值", "请填写测试点.")   判断实际值和预期值是否一致 类似于  assert 预期值==实际值

启动指定app:

start_app(包名)

关闭指定app:

stop_app(包名)

安装app:

install(包所在的路径)

卸载app:

uninstall(包名)

捏合操作(图片放大缩小):

pinch(in_or_out='in', center=None, percent=0.5) 
in_or_out – 向内捏合或向外扩大,在[“in”, “out”] 中枚举一个值
center – pinch动作的中心位置,默认值为None则为屏幕中心点
percent – pinch动作的屏幕百分比,默认值为0.5

airtest常用api文档 https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.api.html

poco框架使用:类似于webdriver,涉及到坐标都是相对坐标

基于整个手机操作 类似于 driver(实例化出来的浏览器驱动对象)

基于屏幕点击某个位置

poco.click([x,y])  xy就是相对坐标

基于屏幕某个位置长按

poco.long_click([x,y], duration=2.0)

基于屏幕捏合操作

poco.pinch(direction='in', percent=0.6, duration=2.0)

得到屏幕尺寸

poco.get_screen_size()   返回一个列表 第一个元素是宽 第二个元素是高

基于屏幕滑动1

poco.scroll(direction='vertical', percent=0.6, duration=2.0) 
direction是滑动方向 只能是 “vertical” 垂直,或者  “horizontal” 水平

基于屏幕滑动2

poco.swipe(p1, p2=None, direction=None, duration=2.0)  
从p1位置滑动到p2位置  如果写方向 就可以不写p2  按照方向滑动

基于屏幕操作框架的api文档 https://poco-chinese.readthedocs.io/zh_CN/latest/source/poco.pocofw.html

基于元素对象操作 类似于 driver.find_element定位到一个ele元素后 ele的相关操作
定位元素的方式

ele = poco(属性名=属性值)    默认会找到当前页面所有符合条件的元素 但是如果直接对他操作 默认操作第一个
poco(nameMatches="")  可以针对name属性的内容 使用正则语法进行匹配
poco(textMatches="")  可以针对text属性的内容 使用正则语法进行匹配

ele元素对象的相关操作

对具体元素进行点击:

ele.click()   

获取元素的相关属性:

ele.attr(属性名)  ele.attr("text")==ele.get_text()   ele.attr("pos")==ele.get_position() 
ele.attr("name")==ele.get_name()

设置元素的相关属性:

ele.setattr(属性名,属性值)  这个方法只是单纯修改属性 如果想实现搜索类的操作需要执行回车或者搜索  
ele.setattr("text",属性值)==ele.set_text("属性值")

针对元素对象进行拖动(滑动):

ele.drag_to(目标元素对象/相对坐标)

判断元素对象是否存在:

ele.exists()  返回布尔值 True表示存在 False表示不存在

针对元素进行长按:

ele.long_click()

针对元素进行滑动:

ele.swipe(direction, focus=None, duration=0.5)  direction是一个列表 [x,y]   
x是水平方向的偏移百分比 y是垂直方向的偏移百分比 

针对元素进行水平或者垂直方向滑动:

ele.scroll(direction='vertical'/'horizontal', percent=0.6, duration=2.0)

基于元素对象操作 https://poco-chinese.readthedocs.io/zh_CN/latest/source/poco.proxy.html
https://juejin.im/post/6844904150728179725

 类似资料: