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

Airtest Project是網易自研的遊戲自動化項目。
Airtest IDE是這個項目的一個IDE,就像Eclipse、Pycharm同樣,是一個集成開發工具。
Airtest框架是一個基於OpenCV的圖像識別自動化框架,能夠用於全部平臺。
Poco框架是一個相似於Appium的主打遊戲自動化框架,支持Unity3D、Cocos2dx等遊戲引擎(須要接入Poco-SDK),也能夠用於Android原生APP測試(不用接SDK直接用)。html

Airtest的簡介、安裝、使用、詳解,我在這裏就不過多介紹了,你們能夠去官網本身看,中文的,文檔、視頻、動圖都有,簡單易懂。http://airtest.netease.com/git

先說一下我的感覺(僅供參考):
1、若是你要用Airtest框架對遊戲作純圖像識別的自動化,我我的認爲還不如用更專精的,PC上能夠用老牌的按鍵精靈,我放2個按鍵精靈的教程,你們能夠看一下,比Airtest專業:
中級教程——如何找色、找圖、找字
http://bbs.anjian.com/showtopic-104968-1.aspx
中級教程——座標、色值以及按鍵抓抓的詳解
http://bbs.anjian.com/showtopic-182149-1.aspxgithub

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

2、若是你要作手機原生APP的自動化,跨平臺你們用的最多的Appium,安卓的能夠用Robotium。
3、若是你要作WEB自動化,selenium不用我說了吧,另外推薦Katalon,支持POM、錄製,我以前的文章有介紹。
4、若是你家遊戲能夠接入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)
使用方法也很簡單,如圖:
測試

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

mission_location = (2284,445)
先定義一個座標點,即右側任務欄的座標,師門任務通常是第一個。這裏無法用圖像識別,任務欄全是文字,沒有高標識的圖像,並且是背景透明的。.net

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

相關文章
相關標籤/搜索