一種新的自動化 UI 測試解決方案 Airtest Project

今天分享一個自動化UI測試工具airtest——一款網易出品的基於圖像識別面向遊UI測試的工具,也支持原生Android App基於元素識別的UI自動化測試。主要包含了三部分:Airtest IDE、Airtest(用截圖寫腳本)和 Poco(用界面UI元素來寫腳本)。html

來自google的評價:python

Airtest 是安卓遊戲開發最強大、最全面的自動測試方案之一。
它具有如下幾個優點:
1.若是你是個小白,不想進行深度開發只想用做UI自動化測試,那麼你徹底能夠用AirtestIDE這款IDE經過操做鼠標來生成並錄製腳本,一鍵回放
2.支持在 Windows 和 macOS 上運行。基於圖像識別的 Airtest 框架,適用於 Android 和 Windows 上的遊戲,此外也支持Android native apps、Windows applications、iOS Support、Selenium Plugin
3.自動生成詳細的HTML測試報告,附帶了每一個操做步驟的截圖,方便迅速定位失敗的測試點
4.提供了一種快速進行兼容性測試的方案,利用手機集羣進行大規模自動化測試。
5.支持圖像識別,可將圖片元素做爲參數進行校驗操做
6.支持二次開發,只須要下載airtest的python第三方依賴庫
多說無益,咱們開始嘗試使用Airtest進行Android APP測試
環境準備
1.最好使用python2.7以上,建議使用虛擬Pythonvirtualenv環境部署,隔離環境
若是想要利用Airtest的API拓展更多的高級功能,請安裝以下庫
Airtestios

airtest
Pocoapi

poco
2.若是測試Android app,須要準備adb環境,其依靠依靠ADB與Android設備進行通訊
3.下載airtestIDE. 請在官網下載合適你的IDE版本:http://airtest.netease.com/changelog.html
開始使用
1.設備鏈接
1.1一切準備穩當後,開始打開AirtestIDE進行使用,圖中所示分別是鏈接Android、Windows application、iosapp

AirtestIDE
1.2咱們正常鏈接咱們的手機,打開USB調試,點擊connect鏈接便可。若是鏈接失敗,可刷新ADB或重啓ADB。鏈接過程當中會向手機安裝RotationWatcher、PocoService等組件,贊成安裝便可。若是鏈接不正常,請查看是不是不支持該手機http://airtest.netease.com/框架

AirtestIDE
1.3鏈接成功後,畫面展現以下,能夠看出手機畫面是實時投影在IDE上的,能在左邊實時查看UI渲染樹層級,獲取各種控件元素的屬性python2.7

AirtestIDE
2.基於圖像識別的腳本
2.1首先來看一看官方提供的啓動demo工具

AirtestIDE
掌握以上操做,已經能夠完成大部分的自動化測試任務了。實際編寫中你甚至不用動手寫腳本,你只須要鼠標操做錄製腳本便可,全部的東西都已經封裝好了,能夠直接截圖做爲參數,很是的方便、簡單
2.2來看一個實際例子測試

AirtestIDE
用例可使用touch等語句來手動編寫,也能夠在AirtestIDE中經過點擊輔助窗中的各種語句按鈕,而後框選按鈕來生成語句。
一些經常使用語句:
assert_exists:斷言圖片存在於當前畫面上,驗證運行結果是否正確,專屬的斷言語句
assert_not_exists:斷言圖片不存在,驗證運行結果是否正確,專屬的斷言語句
touch:當前畫面中尋找符合圖片內容的座標並點擊,沒有找到相符的圖片則拋出一個異常
swipe:能夠從一個位置滑動到另一個位置
wait:等待畫面中某個圖片出現
exists:判斷畫面中是否存在某個圖片
text:調用輸入法,輸入一段文字
sleep: 等待一段時間,確保上一步的操做已經完成
snapshot:當前畫面截圖
若是你想了解這種基於圖像識別的原理或者是進行更多複雜操做,能夠去官方查看airtest.core.api,官方提供了詳細的說明文檔,篇幅有限不作更多說明
3.基於控件識別的poco腳本
3.1直接看一個例子吧google

AirtestIDE
poco的初始化應該放在遊戲啓動之後再進行,若是是測試遊戲,由於poco須要與遊戲中的poco-sdk進行通訊,須要等待遊戲將poco-sdk初始化完成,才能初始化poco
4.測試報告
airtest提供了很詳細的的測試報告,爲每個用例的操做步驟都作了截圖(sleep不截圖),方便咱們定位失敗的測試點

AirtestIDE好了,Airtest的分享簡單介紹到這裏。

相關文章
相關標籤/搜索