AirtestIDE 教程 — 5分钟上手自动化测试
?
AirtestIDE 教程 — 5分鐘上手自動化測試::http://airtest.netease.com/tutorial/Tutorial.html
AirtestIDE 官方文檔:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html
AirtestProject 官方文檔:https://airtest.doc.io.netease.com/
Poco (ポコ) UI自動化框架 官方文檔:https://poco.readthedocs.io/zh_CN/latest/index.html
Poco Examples and Tutorials:https://poco.readthedocs.io/zh_CN/latest/source/doc/poco-example/index.html#tutorial
?
?
簡介
?
AirtestIDE 是一個跨平臺的UI自動化測試編輯器,適用于游戲和App。
- 自動化腳本錄制、一鍵回放、報告查看,輕而易舉實現自動化測試流程
- 支持基于圖像識別的?Airtest?框架,適用于所有Android和Windows游戲
- 支持基于UI控件搜索的?Poco?框架,適用于Unity3d,Cocos2d與Android App
- 能夠運行在Windows和MacOS上
- 網易內部已成功應用在數十個項目上,利用?手機集群?進行大規模自動化測試
訪問?官網?通過視頻查看更多特性。
通過本教程,你將學會如何上手自動化測試(或者寫點腳本來自動玩游戲)。相信我,這個過程會非常愉快~
?
?
安裝
?
目前AirtestIDE提供了Windows和Mac兩個版本的客戶端,請從?官網?下載,解壓即用。
?
?
連接設備
?
AirtestIDE目前支持測試Android,Windows和iOS上的應用。
?
連接Android手機
?
通過ADB連接你的電腦和Android手機,即可開始調試Android應用。?ADB?是Google官方提供的Android調試工具。AirtestIDE依賴ADB與安卓設備進行通信。
?
打開AirtestIDE,按照以下步驟進行連接:
手機連接成功后,你即可在AirtestIDE中看到手機屏幕的鏡像顯示,并進行實時操作。
如果手機連接失敗,請將手機型號和AirtestIDE后臺報錯提交到?Github Issues。?開發人員會盡快修復。?由于Android手機的碎片化問題嚴重,我們非常感謝您的反饋可以幫助這個項目做的更好。
?
連接Windows窗口
?
對于Windows桌面程序的測試,我們通常是測試一個窗口。AirtestIDE可以將被測窗口嵌入,方便腳本錄制和調試。
- 在AirtestIDE設備面板中點擊?Windows-框選游戲窗口?按鈕
- 將鼠標移動到被測程序的窗口上,會顯示綠色邊框框出對應的窗口
- 點擊左鍵即可將對應的窗口嵌入到AirtestIDE中
如果上述方法不能正確找到被測程序的窗口,你還可以?使用備用嵌入方法。
?
連接ios手機
?
目前我們已經支持了iOS的連接,可以查看?文檔?獲取更多信息。
?
?
錄制自動化腳本
?
現在我們可以開始錄制自動化測試腳本了。
?
模擬輸入
?
先從最常用的模擬點擊開始。
?
基于圖像識別
?
點擊Airtest輔助窗上的?錄制?按鈕,然后隨著你在設備窗口上操作手機,代碼會自動生成在代碼窗口中。
馬上來驗證一下,點擊?運行?按鈕運行你的第一個自動化腳本吧!
?
如果你覺得自動錄制的圖標不夠精確,還可以點擊Airtest輔助窗上的?touch?按鈕,然后在設備窗口上框選精確的圖標,?也可以自動生成?touch?語句。
類似的模擬輸入操作還有滑動:點擊?swipe?按鈕,在設備窗口上框選精確的圖標作為滑動起點,?然后點擊滑動終點位置,即會自動生成一個?swipe?語句。
?
其他模擬輸入的API包括:
- text: 文字輸入
- keyevent: 按鍵輸入,包括(HOME/BACK/MENU等)
- sleep: 等待
- snapshot: 截屏
?
基于UI控件
?
如果你發現圖像識別不夠精確,可以使用基于UI控件搜索的方式進行自動化測試。
目前AirtestIDE直接支持Unity3d、Cocos2d兩種游戲引擎和Android源生App。?由于游戲引擎使用OpenGL等圖形接口直接渲染,而沒有使用Android源生的UI系統,?我們需要與游戲的Runtime進行通信獲取整個UI結構。?Unity3d和Cocos2d-js我們提供了非常方便的SDK接入方?法?點這里。
其他游戲引擎和UI系統我們提供了SDK可自行擴展。
實際上在網易游戲內部我們就是用這種方式支持了Messiah/NeoX/夢幻等多個自研引擎。
- nity3d和Cocos2d游戲:?接入SDK
- Android源生App:直接開始!
- 其他游戲引擎和UI系統:?擴展SDK
接入完成后我們即可開始。手機啟動游戲,在Poco輔助窗中切換模式至對應引擎類型,即可看到整個UI結構。
點擊錄制按鈕,然后隨著你的操作,會自動生成Poco語句。
同樣,你也可以通過UI樹形結構更精確的檢視UI控件,?雙擊自動生成Poco語句,?或者自行選擇更好的寫法。更好的屬性選擇,通常會增強整個自動化腳本的健壯性和可讀性,?這是門?學問?。
錄制完腳本后記得運行試試效果。
由于Android源生App應用的UI結構可以通過?Accessibility?獲取,我們直接開始使用。?將Poco輔助窗的模式切換至?Android?能看到整個UI樹形結構。
實際上,上述兩種方式分別是基于兩個框架:
- 基于圖像識別的?Airtest?框架,適用于所有Android和Windows游戲
- 基于UI控件搜索的?Poco?框架,適用于Unity3d,Cocos2d與Android App
這兩個框架都是由我們團隊開發,在實際項目使用經驗中,我們發現兩者互相配合會得到最好的效果。
?
?
使用Python語法
?
整個AirtestIDE中錄制和運行的代碼都是基于?Python2.7?語言。?Python語法簡潔而強大,第三庫和工具也非常多。
對于新手,Python上手非常容易,學會基本語法即可寫出自動化腳本中所需的邏輯語句。
touch("開卡包.png") if exists("獎勵面板.png"): for i in range(5):Poco("獎勵-%s" % i).click()對于老手,你可以在AirtestIDE中使用各種第三方庫來使你的自動化腳本更加強大,?添加PYTHONPATH。
除了輔助窗口里面提供的語句,更多的API文檔,可以查看?Airtest?和?Poco?的倉庫。
到這里,我們已經有各種模擬輸入方法,配合邏輯控制語句讓手機動起來。自動化測試中還有很重要的一個步驟:結果驗證,那么我們來看看怎樣聲明斷言。
?
驗證UI界面
?
錄制方法與模擬輸入類似
- assert_exists:斷言圖片存在
- assert_not_exists:斷言圖片不存在
?
驗證數值
?
通過Poco獲取屬性值,手寫代碼進行斷言
- assert_equal:斷言相等
- assert_not_equal:斷言不等
例如
# ... 模擬輸入并獲得20分之后 value = Poco("分數按鈕").attr("num") assert_equal(value, 20, "獲到20分")?
?
查看測試報告
?
腳本運行完畢后,點擊?查看報告?按鈕(快捷鍵Ctrl+L)?會使用默認瀏覽器打開結果報告頁面。?報告中將展示出每一個步驟的內容和實際執行過程的截圖、運行結果,方便查看步驟是否執行成功。
?
?
命令行接口
?
現在,你已經學會自動化測試了。?接下來呢,你可以使用命令行接口將自動化測試與持續集成結合起來。?持續集成是什么?
在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上進行測試。
?
在網易游戲內部,我們的大型游戲通常會有數百個測試腳本,覆蓋常用的玩法測試。?每周,這數百個腳本會分別運行在200臺手機上進行兼容性測試。?演示
?
?
更多擴展特性
?
編輯器設置
引入第三方Python庫
自定義啟動器
搭建云測試平臺
與Google Firebase結合
?
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的AirtestIDE 教程 — 5分钟上手自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 并行编程
- 下一篇: CompletableFuture详解~