此文章来源于项目官方公众号:“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版本,即可以体验到最新的 airtest
和 pocoui
(不设置本地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 官网:http://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:117973773
呀,这么认真都看到这里啦,帮忙点个赞或者收藏支持下我把,灰常感谢~