【更新公告】Airtest更新至1.2.6版本

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

呀,这么认真都看到这里啦,帮忙点个推荐支持一下呗,灰常感谢~

posted @ 2022-05-24 17:47  AirtestProject  阅读(296)  评论(0编辑  收藏  举报