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官網:https://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有云服務:https://airlab.163.com/b2b
官方答疑 Q 羣:117973773
呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~