airtest自動化測試工具快速入門

testingbang發表於2019-08-31

資源

airtest官網:

手冊: docs/cn/1_quick_start.html

以下的內容中有一部分是來自官網的說明

airtest介紹

Airtest是一個跨平臺的UI自動化測試框架,適用於遊戲、App。支援Windows、Android、IOS(測試階段會有未知錯誤)平臺。
Airtest提供了跨平臺的API,包括安裝應用、模擬輸入、斷言等。 基於影像識別技術定位UI元素,你無需嵌入任何程式碼即可進行自動化測試。 測試指令碼執行後可以自動生成詳細的HTML測試報告。
Airtest是一個跨平臺的、基於影像識別的UI自動化測試框架,適用於遊戲和App,支援平臺有Windows、Android和iOS。
Poco是一款基於UI控制元件識別的自動化測試框架,目前支援Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程式。(暫時不支援微信小程式了)
AirtestIDE 是一個跨平臺的UI自動化測試編輯器,內建了Airtest和Poco的相關外掛功能,能夠使用它快速簡單地編寫指令碼。


PS:個人使用之後感覺確實強大,但準確性還有待提高,稍複雜的場景錄製完之後仍需要手工改動除錯指令碼。想要玩的更好還的手寫程式碼。。。。。

AirtestIDE

安裝

下載對應的版本,地址: changelog.html,解壓後雙擊AirtestIDE.exe即可執行
執行開始需要註冊一個帳號,註冊並驗證完畢之後即可進入ide,如下圖

左側是輔助視窗,說白了就是影像和元素的識別以及錄製在這裡,中間是指令碼區域,右側是裝置區,也就是連結的手機或模擬器

連結Android手機

開啟手機>設定>開發者選項>USB除錯開關
在AirtestIDE裝置皮膚中點選 Refresh ADB 按鈕,檢視連線上的裝置
如果沒有顯示出裝置,試試 Restart ADB

點選對應裝置的 Connect 按鈕,進行初始化(如果使用的是模擬器,先選擇use javacap以獲得高畫質晰度畫面)

如果出現類似如下錯誤:
adb server version ( 40 ) doesn 't match this client (39); killing...   *  daemon started successfully  *
解決方法:
將android-sdk-windowsplatform-tools下的adb.exe覆蓋到airtest/core/android/static/adb/windows下
連線iOS手機

參考: docs/cn/2_device_connection/4_ios_connection.html

其他使用方法在後續的指令碼中會逐步講解到

airtest指令碼

基於影像識別。這裡特別注意,影像識別不是萬能的!!! 它是有 成功率 的,假設一個指令碼里有10張圖片,每張圖片的識別成功率都能達到95%之高,10張圖片全部都正確識別的機率也不過60%而已。所以你懂的~~


基本步驟:

app啟動好
點選airtest皮膚內的 按鈕之後在去選擇對應app內的元素,可以單步錄製,自動幫你生成程式碼

點選airtest皮膚內的錄製按鈕 可以實時錄製,並生成指令碼。也就是說你在ide右側的裝置皮膚內操作app,會自動生成程式碼,是不是感覺很爽? 但其實從體驗下來看,稍微複雜點的場景生成出來的程式碼一般沒法直接使用,需要做一定的修改

來看個錄製出來的程式碼(以小米商城APP為例)

簡單來說就是分別點選app圖示啟動,點選搜尋框,輸入空氣清淨機,點選搜尋按鈕。其中的輸入內容需要點選左側airtest皮膚內的text元件來輸入


PS:看上面的程式碼,其中有一個touch註釋掉了,這裡在選擇元素範圍的時候要特別注意,一定選擇準確度高的,註釋掉的這個就是因為選擇的不太好,元素內的文字會變從而導致有時候成功有時候失敗。換成上面那個基本是100%成功了


執行指令碼並檢視報告

執行就是點選頂部的三角箭頭,你找不到?那就找不到吧,不要問我~執行期間會在下方log區域顯示log,同時右側裝置區域顯示回放

檢視報告就是點選頂部的最後一個按鈕 ,出來的結果類似這樣

poco指令碼

基於UI識別,說白了就類似webdriver和appium那種樹型結構的。作為airtest指令碼的輔助進行。


基本步驟:
啟動好app

poco皮膚內選擇對應的型別,比如Android,即刻在下方看到ui樹

單步錄製:雙擊UI樹中的目標條目,即可插入對應UI節點的poco程式碼,但是單步錄製的程式碼中的操作程式碼(如 ".click()" )需要手動新增
PS:點選 右鍵選單-'UI path-code'可以生成xpath程式碼
自動錄製:點選poco皮膚內的錄製按鈕 ,隨著你的操作會自動生成程式碼,要停止就再次點錄製按鈕即可
PS:錄製出來的程式碼一般都無法正確執行,需要進行修改才可以

看下錄製出來的程式碼,已經經過了一些修改

稍微有點自動化測試基礎的同學應該秒懂~其中對於輸入空氣清淨機那部是錄製完成手工修改的

PS:如果發現無法正確使用,那就是需要事先接入Poco-SDK才行,步驟較為繁瑣,具體見官網,一般讓開發完成

至於執行和報告和之前的一樣,這裡就不多描述了

web自動化測試

本來airtest是為了遊戲測試而誕生的,後來擴充套件到app和web。體驗下來佩服網易這些大神,個人感覺對於小白來說錄製是個好事情,但指令碼維護來說難度不小。個人覺得如果對於python熟悉的話還是直接寫程式碼更好一點。其實airtest高階的用法也是自己寫程式碼。。。所以。。。你懂的~



airtest-selenium是在selenium webdriver上再次封裝了一層,我們可以使用AirtestIDE進行web自動化指令碼錄製、指令碼執行和報告生成
錄製
需要本地安裝airtestide和chrome瀏覽器
視窗>selenium window,開啟se皮膚
設定Chrome本地路徑:“選項”-“設定”-“Selenium”-“設定Chrome路徑”
點選 開啟瀏覽器並生成初始化程式碼
開啟瀏覽器-點選編輯框中彈出的提示,生成初始化程式碼
瀏覽器中進入待測試的網頁之後點選輔助窗的start_web, 生成訪問待測試網址的程式碼:

driver.get(")


點選錄製

在瀏覽器進行操作,這時候會自動生成程式碼,類似下面的


再次點選執行指令碼按鈕即可回放,和se的差不多

執行結束後,點選報告按鈕,檢視報告


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2655630/,如需轉載,請註明出處,否則將追究法律責任。

相關文章