AirtestIDE實踐一:夢幻西游手游師門任務自動化


Airtest Project是網易自研的游戲自動化項目。
Airtest IDE是這個項目的一個IDE,就像Eclipse、Pycharm一樣,是一個集成開發工具。
Airtest框架是一個基於OpenCV的圖像識別自動化框架,可以用於所有平台。
Poco框架是一個類似於Appium的主打游戲自動化框架,支持Unity3D、Cocos2dx等游戲引擎(需要接入Poco-SDK),也可以用於Android原生APP測試(不用接SDK直接用)。

Airtest的簡介、安裝、使用、詳解,我在這里就不過多介紹了,大家可以去官網自己看,中文的,文檔、視頻、動圖都有,簡單易懂。http://airtest.netease.com/

先說一下個人感受(僅供參考):
一、如果你要用Airtest框架對游戲做純圖像識別的自動化,我個人認為還不如用更專精的,PC上可以用老牌的按鍵精靈,我放2個按鍵精靈的教程,大家可以看一下,比Airtest專業:
中級教程——如何找色、找圖、找字
http://bbs.anjian.com/showtopic-104968-1.aspx
中級教程——坐標、色值以及按鍵抓抓的詳解
http://bbs.anjian.com/showtopic-182149-1.aspx

如果是手游,按鍵精靈也支持;另外也有專攻手游的觸動精靈、叉叉助手,他們的教程也很詳細,論壇上還有腳本源碼分享:
http://www.touchsprite.com/
http://dev.xxzhushou.cn/

二、如果你要做手機原生APP的自動化,跨平台大家用的最多的Appium,安卓的可以用Robotium。
三、如果你要做WEB自動化,selenium不用我說了吧,另外推薦Katalon,支持POM、錄制,我之前的文章有介紹。
四、如果你家游戲可以接入Poco-SDK,推薦Airtest,可以讓你像測原生APP一樣測試游戲。騰訊也有一款相同的產品:GAutomator。
所以,Airtest現在的優勢還是Poco,如果你家產品不好定位或有特殊需求,導入airtest包作為輔助也是可以的。當然Airtest也是一直在不斷發展的,也許將來在某個領域也會更好用,超越老工具。


轉入正題,原來我是打算用模擬器的,下了網易自家的MUMU,結果Airtest IDE竟然和MUMU有兼容問題,問了網易的開發,最新的MUMU版本確實有兼容問題,懶得折騰了,直接燒我的小米吧(搞半小時絕對可以煎雞蛋了),結果我的小米也有兼容問題,不能用單步調試功能……還給他們報了個BUG,https://github.com/AirtestProject/Airtest/issues/257

腳本中用的最多的2個API:touch(點擊),exists(判斷圖像是否存在,存在返回坐標,不存在返回false)
使用方法也很簡單,如圖:

《夢幻西游手游》龍宮師門任務自動化腳本的思路即是循環每次點任務欄自動去做任務,然后根據不同的任務會觸發顯示不同的圖片,分別判斷是哪個圖片出現,然后進行具體的操作。下面逐行解析一下:

mission_location = (2284,445)
先定義一個坐標點,即右側任務欄的坐標,師門任務一般是第一個。這里沒法用圖像識別,任務欄全是文字,沒有高標識的圖像,而且是背景透明的。

touch(mission_location, times=2)
有時送信任務做完會有對話框,雙擊,一次關閉對話框,一次領任務;如果沒有對話框,雙擊也是領任務。

下面就是各個分支了,概率比較大的分支放上面,可以提高效率:
分支一:如果出現聚水珠,則點擊使用。
分支二:如果有齒輪圖標,說明進入了戰斗;那么每隔10秒再去判斷一下齒輪還在不,不在的話即是戰斗完成,跳出循環,繼續接師門任務。

分支三:如果出現購買,則點擊一次購買。小幾率會出現商品在你點購買之前被別人買走了,會導致購買失敗,所以繼續判斷購買是否存在,存在就選中第一個物品再買一次,否則進入上交的循環(買完東西要上交給師傅)。當上交存在時,點擊上交,然后繼續接師門任務。
分支四:有時送信的NPC本身還會有其他事件,需要讓你選師門任務選項,所以如果存在就點擊一下。

分支五:同分支三,有時要購買的東西正好包里有,就不用買了,直接上交即可。
分支六:做完當天的20個師門任務時,會彈確認框,告之如果再做就沒有額外經驗了,此時播放一個MP3,通知任務做完。

腳本運行完后,點工具欄上的LOG圖標,會生成並打開報告,在這我們可以看到腳本運行時點擊的位置,如圖

報告是存放在Temp文件夾下,所以如果要長久保存的話,需要額外復制一下。


試用了4天,基本可以順利做完,當然,肯定還有其他一些突發事件我沒有兼容,比如活動彈框、被別人強行拉隊、特殊的通知等。另外這么復雜的師門任務,腳本這么簡單,也全靠手游本身的自動尋路、半自動任務所賜,如果是在端游上,工作量就巨大了。


放上回放腳本時的錄制視頻,大家可以感受一下:https://v.qq.com/x/page/m08362jsooz.html

腳本源碼:https://github.com/songzhenhua/airtest

 

 

---------------------------------------------------------------------------------

 

關注微信公眾號即可在手機上查閱,並可接收更多測試分享~

 

 


免責聲明!

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



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