专栏文章 【更新公告】Airtest 更新至 1.2.6 版本

fishfish-yu · 2022年05月24日 · 最后由 fishfish-yu 回复于 2022年05月30日 · 10263 次阅读

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

本次更新为 Airtest、Poco 和 iOS-tagent 的更新,主要是为了 对 iOS 设备有更好的支持 ,一方面是更多 iOS 系统版本的兼容,另一方面是提升了 iOS 设备的点击和滑动速度等。

更新内容详见下文。

2. Airtest 更新至 1.2.6

1)新增功能点

iOS 投屏速度优化,新增 MJPEG 模式,以更高的速度查看 iOS 屏幕画面;

iOS 点击速度优化,请配合更新iOS-Tagent到最新版本(如果原先使用了 Appium/WebDriverAgent 项目的,可以替换成我们这个版本),更新之后可以极大降低点击延迟;

③ 请使用最新版本的 AirtestIDE 1.2.14,可以体验到最佳效果,否则可能导致点击位置错误的问题;

④ 如果使用了 Poco,请更新至 1.0.87 版本,否则可能导致点击位置错误的问题。

2)bug 修复

① 修复了一个 Android 录屏时没有完全释放系统资源的 BUG,该问题可能会导致内存溢出;

② 稍微优化了 mstpl 的识别效果;

③ 修复了 Android10 以上版本的手机可能存在的点击失败问题;

④ 除了安装时对 numpy 版本号的限制;

⑤ 兼容了 jinja2>3.1 版本;

⑥ 修复 Android6.0.1 系统下,adb.file_size 接口获取文件大小失败的问题。

3. Poco 更新至 1.0.87

① 在初始化 Android poco 时,假如 get_top_activity 获取失败了,就暂时忽略掉,因为本步骤不是必须的;

② 支持了最新的iOS-Tagent

③ 新增了一个 refresh() 接口,用于 强制刷新节点信息(该接口的使用详细案例可以关注我们后续的推文介绍)。

4. iOS-tagent 更新

更新后的 iOS-tagent 对如下的 iOS 系统和 xcode 版本进行了兼容:

iOS-tagent 项目链接:https://github.com/AirtestProject/iOS-Tagent

5. 如何更新

1)下载最新的 1.2.14 版本的 AirtestIDE

在我们的 官网 下载最新的 AirtestIDE1.2.14 版本,即可以体验到最新的 airtestpocoui(不设置本地 python 环境的情况下)。

2)Airtest 和 Poco 的更新

使用本地 python 环境的同学,可以在自己的本地 python 环境中,通过如下命令来进行更新:

pip install -U airtest
pip install -U pocoui
3)iOS-tagent 的更新

iOS-tagent 的更新,请参考我们的官方教程文档,去 github 上拉取最新的iOS-tagent项目部署到我们的苹果设备上:https://airtest.doc.io.netease.com/IDEdocs/3.2device_connection/4_ios_connection/

6. 更新后的常见问题说明

1)极少苹果设备上可能出现点击偏移

极少部分设备上,可能点击位置会有偏移,目前在 AirtestIDE 上无法修正鼠标点击的偏移,但是可以在代码中修复,例如:

我们测试到一台 iPhone 7Plus 手机,在点击时有坐标偏移的现象,因此通过如下方式在运行代码时可以修正:

>>> device = connect_device("iOS:///")
>>> device.touch((100, 100))  # wrong position
>>> print(device.touch_factor)
0.333333
>>> device.touch_factor = 1 / 3.3  # default is 1/3
>>> device.touch((100, 100))

关于 touch_factor 的解释:

touch_factor 这个值用于换算 iOS 设备的点击坐标:

手机真实坐标 = touch_factor * 屏幕坐标 ;

默认计算方式是: self.display_info['window_height'] / self.display_info['height'] ;

但在部分特殊型号手机上可能不准确,例如 iOS14.4 的 7P,默认值为 1/3,但部分 7P 点击位置不准确,可自行设置为:self.touch_factor = 1 / 3.3

2)Poco 相关的注意事项

① 由于 iOS 的 Poco 延迟很高 ,开启时可能也会导致卡顿

② 部分 ipad 可能在横屏 + 桌面下,拿到的 Poco 位置不对,不建议在桌面上点击某个图标来打开 app,尽量使用 start_app 来打开,但本接口目前必须传入手机中已有的 app 包名,如果传入的包名不存在,可能会导致报错。

3)ImportError: cannot import name 'Markup' from 'jinja2'

部分同学在自己的 python 环境里安装 1.2.5 版本的 airtest,会报出 jinja2 的一个错误 cannot import name 'Markup' from 'jinja2',类似:

这个问题我们已经在 Airtest1.2.6 版本中修复,遇到该问题的同学直接更新 airtest 到最新版本即可。

4)其它问题

如同学们在使用新版的 Airtest 时遇到了一些问题无法解决,可以通过此网站向我们的开发者快速提单:https://airtest.netease.com/issue_create

可以在标题中加入 “Airtest1.2.6” 之类的字眼,方便我们快速筛选和排查。


Airtest 官网https://airtest.netease.com/
Airtest 教程官网https://airtest.doc.io.netease.com/
搭建企业私有云服务https://airlab.163.com/b2b

官方答疑 Q 群:117973773

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

共收到 4 条回复 时间 点赞

AirTest 有原生支持 M1 的计划吗?😀

モモコ 回复

有计划,在研究中

看了下源码,refresh() 对于从 freeze 派生出的节点还是无效的吧

都 freeze 了,就没必要 refresh 了,没意义

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册