1-5分鍾上手自動化測試——Airtest+Poco快速上手


轉載:https://airtest.doc.io.netease.com/tutorial/0_automated_testing/

1 | 5分鍾上手自動化測試——Airtest+Poco快速上手

1.1 前言


本文檔將演示如何使用Airtest Project專用的編輯器AirtestIDE,編寫Airtest+Poco自動化腳本的全流程。強烈建議新手從本文檔開始閱讀,並使用AirtestIDE上手腳本編寫。



1.2 簡介


AirtestIDE是一個跨平台的UI自動化測試編輯器,適用於游戲和App。

  • 自動化腳本錄制、一鍵回放、報告查看,輕而易舉實現自動化測試流程。
  • 支持基於圖像識別的Airtest框架,適用於所有Android/iOS/Windows應用。
  • 支持基於UI控件搜索的Poco框架,適用於Unity3d、Cocos2d與Android/iOS App等多種平台。
  • 能夠在Windows和MacOS運行。

訪問官網通過視頻查看更多特性。


通過本教程,你將學會如何上手自動化測試(或者寫點腳本來自動玩游戲)。相信我,這個過程會非常愉快~



1.3 安裝


目前AirtestIDE提供了Windows和Mac兩個版本的客戶端,請從官網下載,解壓即用。



1.4 連接設備


AirtestIDE目前支持測試Android/Windows/iOS上的應用,其它更多平台的支持正在開發中。

無論是Android/iOS手機,還是Windows窗口,在Airtest中都將它視為一個設備,接下來我們將演示如何連接一個設備

1.4.1 連接Android手機

通過ADB連接你的電腦和Android手機,即可開始調試Android應用。ADB是Google官方提供的Android調試工具。AirtestIDE依賴ADB與安卓設備進行通信。

打開AirtestIDE,按照以下步驟進行連接:

1、打開手機設置-開發者選項-USB調試開關,參考安卓官方文檔
2、在AirtestIDE設備面板中點擊refresh ADB按鈕,查看連接上的設備;
3、如果沒有顯示出設備,試試restart ADB,如果還不行,參考FAQ文檔進行問題排查;
4、能夠成功看到設備后,點擊對應設備的Connect按鈕,進行初始化。


手機連接成功后,即可在AirtestIDE中看到手機屏幕的鏡像顯示,並進行實時操作。

如果手機連接失敗,請先參考FAQ文檔進行問題排查。若依然不成功,請將手機型號和AirtestIDE后台報錯提交到Github Issue,開發人員會盡快修復。由於Android手機的碎片化問題嚴重,我們非常感謝您的反饋可以幫助這個項目做得更好。


1.4.2 連接Windows窗口

對於Windows桌面程序的測試,AirtestIDE可以將被測窗口嵌入,方便腳本錄制和調試。

  • 在AirtestIDE設備面板中點擊“Windows-框選游戲窗口”按鈕。
  • 將鼠標移動到被測程序的窗口上,會顯示綠色邊框,將對應的窗口框出。
  • 點擊左鍵即可將對應的窗口嵌入到AirtestIDE中。

如果上述方法不能正確找到被測程序的窗口,你還可以使用備用嵌入方法

1.4.3 連接iOS手機

要連接一台iOS手機,你需要先准備好一台安裝了Xcode的Mac電腦,連接方法參考文檔



1.5 錄制自動化腳本


在連上設備后,我們可以開始錄制自動化測試腳本了,在接下來的內容中,我們將會使用一台Android設備上的一款Unity游戲應用,給大家演示如何錄制腳本。

1.5.1 模擬輸入

讓我們先從最常用的模擬點擊開始吧,模擬點擊的意思就是,模仿你的操作去點擊設備上的某個指定位置。

(1)基於圖像識別

目前我們支持通過圖像識別的方式,找到你想要點擊的位置並進行操作,這是基於Airtest這個框架實現的。

我們可以先看看如何自動錄制腳本:點擊AirtestIDE左側的Airtest輔助窗上的“錄制”按鈕,然后隨着你在設備窗口上操作手機,代碼會自動生成在代碼窗口中。


馬上來驗證,點擊“運行”按鈕運行你的第一個自動化腳本吧!

如果你覺得自動錄制生成的圖標不夠精確,還可以點擊Airtest輔助窗上的touch按鈕,然后在設備窗口上框選精確的圖標,也可以自動生成一條touch語句。


類似的模擬輸入操作還有滑動:點擊swipe按鈕,在設備窗口上框選精確的圖標作為滑動起點,然后點擊滑動終點位置,即會自動生成一個swipe語句。

其它模擬輸入的API包括:

  • Text:文字輸入
  • KeyEvent:按鍵輸入,包括(HOME/BACK/MENU等)
  • Sleep:等待
  • Snapshot:截屏

(2)基於UI控件

如果你發現圖像識別不夠精確,還可以使用基於UI控件搜索的方式進行自動化測試,與剛才的Airtest不同,這是Poco這個框架實現的功能。

目前Poco直接支持Unity3d、Cocos2d、白鷺引擎等多種游戲引擎,以及Android/iOS原生App。

如果是Android/iOS原生應用,是即插即用的,無需接入SDK。但由於游戲引擎使用OpenGL等圖形接口直接渲染,而沒有使用Android源生的UI系統,我們需要與游戲的Runtime進行通信獲取整個UI結構。

我們提供了非常方便的SDK接入方法,點這里查閱目前支持的平台列表,以及如何為你的項目接入Poco。

如果你的項目使用的引擎或平台不在文檔中,我們同樣支持自行擴展SDK

實際上在網易游戲內部,我們就是用這種方式支持了Messiah/NeoX/夢幻等多個自研引擎。


接入完成后我們即可開始。手機啟動游戲,在AirtestIDE中的Poco輔助窗切換模式至對應引擎類型,即可看到整個UI結構。


點擊“錄制”按鈕,然后隨着你的鼠標操作,會自動生成Poco語句到腳本編輯框中。


同樣,你也可以通過UI樹形結構更精確的檢視UI控件,雙擊節點自動生成Poco語句,或者自行選擇更好的寫法。

自動錄制出的語句不一定能夠適應所有場景,采用更合理的選擇器編寫代碼,通常會增強整個自動化腳本的健壯性和可讀性,這是門學問


錄制完腳本后記得運行試試效果。

對於Android/iOS的原生應用來說,不需要接入SDK即可使用,例如在連上Android手機后,將Poco輔助窗的模式切換至Android,能可以看到整個UI樹形結構。




1.6 框架信息


上述兩種UI識別方式,分別是基於兩個框架:

  • 基於圖像識別的Airtest框架
  • 基於UI控件搜索的Poco框架

這兩個框架都是由我們團隊開發的Python第三方庫,在實際項目使用經驗中,我們發現兩者互相配合會得到最好的效果。在腳本編寫的過程中,我們往往也需要查閱它們的項目API文檔。



1.7 使用Python語法


整個AirtestIDE中錄制和運行的代碼都是基於Python語言。Python語法簡潔而強大,第三庫和工具也非常多。

對於新手,Python上手非常容易,學會基本語法即可寫出自動化腳本中所需的邏輯語句。

touch("開卡包.png") if exists("獎勵面板.png"): for i in range(5): Poco("獎勵-%s" % i).click() 

對於老手,你可以在AirtestIDE中使用各種第三方庫來使你的自動化腳本更加強大,通過添加PYTHONPATH設置,可以使用本地的Python.exe來運行你的腳本。

除了輔助窗口里面提供的語句,更多的API文檔,可以查看AirtestPoco的倉庫。

1.7.1 斷言

到這里,我們已經有各種模擬輸入方法,配合邏輯控制語句讓手機動起來。自動化測試中還有很重要的一個步驟:結果驗證,那么我們來看看怎樣聲明斷言。

(1)驗證UI界面

錄制方法與模擬輸入類似。

  • assert_exists:斷言圖片存在
  • assert_not_exists:斷言圖片不存在

(2)驗證數值

通過Poco獲取屬性值,手寫代碼進行斷言。

  • assert_equal:斷言相等
  • assert_not_equal:斷言不等

例如:

# ... 模擬輸入並獲得20分之后 value = Poco("分數按鈕").attr("num") assert_equal(value, 20, "獲到20分") 



1.8 查看測試報告


腳本運行完畢后,點擊“查看報告”按鈕(快捷鍵Ctrl+L),會使用默認瀏覽器打開結果報告頁面。報告中將展示出每一個步驟的內容和實際執行過程的截圖、運行結果,方便查看步驟是否執行成功。




1.9 命令行接口


現在,你已經學會自動化測試了。接下來呢,你可以使用命令行接口將自動化測試與持續集成結合起來。持續集成是什么?

在AirtestIDE運行腳本時,Log窗口中會打印運行命令。


你可以在不開啟IDE的情況下,在命令行中使用那條命令來啟動測試腳本,例如:

"D:\迅雷下載\AirtestIDE\AirtestIDE" runner "D:\AirtestIDE_2018-01-24_83\untitled.air" --device Android://127.0.0.1:5037/F8UDU16409004135 --log "C:\Users\gzliuxin\AppData\Local\Temp\AirtestIDE\scripts\cdfc40e8c297b6ad88e09de64d8bafa3" 

使用AirtestIDE你可以輕松地錄制出測試腳本,保存為.air腳本。請注意一個.air腳本中不要包含太多內容,用良好的腳本命名和目錄結構來組織你的腳本,覆蓋所有測試點。

你還可以在不同電腦上針對不同設備運行測試,這時候你就需要用命令行運行 .air 腳本 。對於多平台發布的產品,靈活使用跨平台API和命令行,還可以讓同一套測試腳本運行在Android和Windows上進行測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM