Airtest-UI,自動化集大成者
一、前言
Airtest是由網易研發的一款基於Python的、跨平臺的UI自動化測試框架,基於影象識別原理,適用於遊戲和App。
該專案目前已在Github上面開源:
https://github.com/AirtestProject/Airtest
官網地址:
http://airtest.netease.com/
官方文件手冊非常詳細,建議大家入門可以先去看下相關的文件說明。
二、為什麼需要Airtest
眾所周知,UI層測試按照平臺種類劃分有Windows、Linux、Android、Web、小程式等。
針對於移動端Android & IOS平臺,有最火的Appium測試框架
http://appium.io/
Web端有selenium測試框架
http://seleniumhq.org/
windows應用平臺有AutoIT、Pywinauto
而業界針對遊戲類的應用並沒有比較好的解決方案,而Airtest測試框架應運而生,基於底層的Airtest和poco:
◆ Airtest:基於Python的、跨平臺的UI自動化測試框架,基於影象識別原理,適用於遊戲和App。
◆ Poco:基於UI控制元件搜尋的自動化測試框架,其核心優勢是除了對Android、IOS之外,對遊戲也是支援的,同時也支援微信小程式、微信小遊戲和H5應用。
Airtest還非常貼心的配備了Airtest IDE,不需要寫一行指令碼,即可完成指令碼的錄製。
三、Airtest IDE錄製
錄製Android平臺自動化指令碼
step1 檢測裝置連結狀態
本地安裝的雷電模擬器
step2 Airtest IDE連線裝置
可以看到Airtest可以直接將裝置畫面進行對映,同Appium的inspector或者UIAutomatorViewer.bat工具不一樣
step3 錄製指令碼
這裡以檸檬班App為例,錄製登入測試用例
錄製回放
Airtest採取影象識別方式,這種方式比較適合遊戲自動化 但是在指令碼的相容性方面存在一些問題(螢幕的解析度、圖示大小等)。
官方也給了幾個小的技巧:
1、提升截圖技巧-儘量截圖完整圖片
2、調整影象識別閾值
3、利用灰度影象識別
這些方式只能儘量優化,並不能根本上解決,所以官方最終建議是儘量使用poco:通過UI元素屬性資訊定位
四、POCO
Airtest提供另外一種更加穩健的元素操作方式-基於UI控制元件搜尋框架poco
可以看到poco這種模式更加適合公司專案,如果你自己會Python,還可以在指令碼的基礎上繼續拓展。
比如:應用PO設計模式,分層設計等等。