天天看點

appium和airtest_關于Airtest自動化測試工具

一開始知道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,那麼這将是一個不錯的選擇。

歡迎大家加入我們軟體測試技術交流群(群号見文章開頭圖檔)