首頁>技術>

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設計模式,分層設計等等。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 前後端小工具:Postman---介面自動化測試工具