一開始知道Airtest大概是在年初的時候,當時,看了一下官方的文檔,大概是類似Sikuli的一個工具,主要用來做游戲自動化的,通過截圖的方式用來解決游戲自動化測試的難題。最近,移動端測試的同事嘗試用它的poco庫來做自動化,看樣子還不錯,所以,這里推薦給各位同學。
### Airtest IDE
這是Airtest測試工具標配的IDE,目的是方便我們用于錄制/編寫自動化測試。
你可以使用賬號登錄或直接點擊左下角“skip”按鈕跳過。
啟動Android模擬器或者用PC連接一臺手機。通過adb命令檢查移動設備。
> adb devices
List of devices attached
emulator-5554 device
當我在Android模擬器中操作時,Airtest IDE右側的界面是同步的,這一點比很多移動測試工具做的優秀,例如,appium desktop必須手動刷新才能獲取最新的界面。
#### Airtest
Airtest IDE支持Airtest腳本的錄制,用法非常簡單,你甚至可以先不用看它的API,通過錄制來熟悉它的API。
右側Airtest窗口以及API,點擊右上角錄制按鈕,然后,就可以在映射的Android模擬器界面上點點點了。
以下是我點點點,生成的腳本。
過程非常簡單,點擊桌面上的計算器圖標,打開編輯器輸入1+1= ,然后,點擊工具欄上的 “運行”按鈕,就可以回放了。
這種腳本更適合游戲,因為游戲界面很難定位,圖片識別(截圖)的方式確實是不錯的選擇。
###Poco
Poco是另外一種形式的腳本,它與一般的自動化工具一樣,通過元素本身的屬性來定位元素,并且它同樣支持錄制。\
點擊右上角第一個的錄制按鈕。然后,繼續在android映射的界面上點點點。
因為腳本里面沒截圖,我就單獨拿出來了。
__author__ = "fnngj"
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
poco("計算器").click()
poco("com.android.calculator2:id/digit_1").click()
poco("com.android.calculator2:id/op_add").click()
poco("com.android.calculator2:id/digit_1").click()
poco("com.android.calculator2:id/eq").click()
從poco的API來看比appium更為簡潔。
如果你要做的是非游戲的APP的話,poco應該是我們后面學習的重點。這樣的代碼不管是和單元測試框架結合還是使用PO設計模式都是沒有問題的。
而且,同樣提供元素的屬性展示,又有錄制功能加持,在開發效率上應該會提高不少。
如果,你剛好又會Python,那么這將是一個不錯的選擇。
歡迎大家加入我們軟件測試技術交流群(群號見文章開頭圖片)