1. 程式人生 > 實用技巧 >Airtest自動化測試超級詳細教程

Airtest自動化測試超級詳細教程

Airtest簡介

  Airtest是網易遊戲開源的一款UI自動化測試專案,目前處於公開測試階段,該專案分為AirtestIDE、Airtest、Poco、Testlab四個部分,基於python指令碼的方式,用於web、windows程式、app自動化測試。
AirtestIDE:跨平臺的UI自動化測試編輯器,內建了Airtest和Poco的相關外掛功能,能夠使用它快速簡單地編寫指令碼;
Airtest:是一個跨平臺、基於影象識別的UI自動化測試框架,適用於遊戲和App測試,目前支援Windows、Android、IOS平臺,原理:利用截圖的方式,在已展示出的手機介面中尋找所匹配的圖片;
Poco:一款基於UI控制元件識別的自動化測試框架,目前支援Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程式,也可以在其他引擎中自行接入poco-sdk來使用,原理:類似appium,基於UI控制元件搜尋的自動化測試框架,定位目標控制元件,然後呼叫函式方法對目標控制元件進行操作。

Airtest環境搭建

由於Airtest框架是基於python語言開發,本地需要搭建python相關環境,建議使用python3。
1.Python(2.7或<=3.6)下載地址:https://www.python.org/downloads/
2.AirtestIDE客戶端下載:http://airtest.netease.com
3.Airtest框架安裝:pip install -U airtest
4.Poco框架安裝:pip install pocoui
AirtestIDE的使用教程跟文件:http://airtest.netease.com/docs/cn/index.html
開啟 AirtestIDE,下載後解壓,雙擊AirtestIDE.exe即可執行

在這裡插入圖片描述
在這裡插入圖片描述

Airtest IDE 工具介紹

在這裡插入圖片描述

  • airtest輔助窗
    常用的api如下,將滑鼠懸停就可以檢視到對應的入參和用法
    在這裡插入圖片描述
    或者你也可以直接錄製指令碼,點選右上角錄製按鈕,然後,就可以在對映的Android模擬器介面上點點點了,在指令碼編輯器中會自動生成指令碼,然後,點選工具欄上的 “執行”按鈕,就可以回放了。這種指令碼更適合遊戲,因為遊戲介面很難定位,圖片識別(截圖)的方式確實是不錯的選擇。
    在這裡插入圖片描述
  • poco輔助窗
    poco是通過元素本身的屬性來定位元素,常用的API如下:
    attr(‘type’):提取指定元素屬性為type的值
    get_text(): 提取指定元素的文字內容
    attr(‘text’): 通過給定的屬性名檢索ui元素的屬性。如果屬性不存在,則返回none(屬性有visible、text、type、pos、size、name等)
    exists():判斷指定元素是否在當前螢幕上存在,存在true、不存在false
    click(): 點選事件,可使用click(center)、click([0.5,0.5])、focus([0.5,0.5]).click()來點選控制元件中心位置
    rclick():右鍵點選
    double_click():雙擊操作
    long_click():長按操作
    swipe:滑動事件,如:swipe([0.2, -0.2], duration=1)以45度角滑動,持續1秒鐘
    drag:拖拽事件,如:poco(text=‘需要拖動位置’).drag_to(poco(text=‘目標位置’))
    focus (local positioning):區域性定位,如:poco(‘控制元件地址’).focus(‘center’).click()點選控制元件中間位置
    wait:等待事件,如:poco(‘控制元件地址’).wait(2).click() 控制元件出現就點選,最多等待2秒
    在這裡插入圖片描述
    並且它同樣支援錄製,點選右上角第一個的錄製按鈕。然後,繼續在android對映的介面上點點點,在指令碼編輯器中會自動生成指令碼(在測試過程中會安裝兩個app,pocoservice和yosemite,其中pocoservice是支撐poco操作的app,yosemite是airtest的輸入法,測試時預設使用yosemite輸入法,測試之後需要手動修改輸入法)。
    在這裡插入圖片描述
    用poco檢視元素屬性:點選第一個小鎖圖示,然後android對映的介面選擇元素,點選後,在左側視窗可以看到該元素的層級關係,在log檢視窗中可以檢視該元素的屬性在這裡插入圖片描述
  • 工具欄
  • 指令碼編輯器
  • logo檢視
  • 裝置窗

App測試

  1. 連線手機
    android手機依賴adb shell作為電腦與手機的連結。首先必須確保adb devices可以連線手機。重新整理側邊欄的ADB,檢視airtest是否識別到手機,點選connect連結,即可實時檢視到手機螢幕狀態。
    在這裡插入圖片描述
    2.檔案-》新建指令碼-》選擇Airtest專案-》命名,在指令碼編輯器寫指令碼或者使用Airtest或者Poco自動錄製指令碼即可

web測試

框架原理:Airtest-Selenium測試框架是基於Selenium進行二次封裝的一款自動化測試框架,支援Chrome、FireFox等主流瀏覽器。
在這裡插入圖片描述
在AirtestIDE的視窗選項中選擇Selenium Window,設定Chrome本地路徑
在這裡插入圖片描述
在這裡插入圖片描述
Airtest-Selenium詳細API文件:http://airtest.netease.com/docs/cn/8_plugins/2_selenium.html?highlight=web
Airtest-Selenium介紹文件:http://airtest.netease.com/docs/cn/1_quick_start/5_get_started_with_web_test.html?highlight=web
關於Poco更多API請參考原始碼官方文件,
關於Airtest更多API請參考原始碼官方文件,可以幫助您快速上手