這款開源測(cè)試神器,圓了我玩游戲不用動(dòng)手的夢(mèng)想
一天我在公司用手機(jī)看游戲直播,同事問(wèn)我在玩什么游戲?我和他說(shuō)在看直播,他恍然大悟:原來(lái)如此,我還納悶?zāi)阃嬗螒颍Σ挥脛?dòng)手呢。。。。一語(yǔ)驚醒夢(mèng)中人:玩游戲不用動(dòng)手,怎樣才能做到玩游戲不用手呢?我要去 GitHub 上找找~
本期介紹的是 GitHub 上標(biāo)星 5.4k 由網(wǎng)易開源和維護(hù)的開源項(xiàng)目:Airtest 一款基于 Python 的跨平臺(tái) UI 自動(dòng)化測(cè)試框架,釋放雙手“玩”游戲、“?!睉?yīng)用!
所謂 UI 自動(dòng)化就是讓游戲和應(yīng)用,按照預(yù)先設(shè)定的步驟自己動(dòng)。可用來(lái)實(shí)現(xiàn)自動(dòng)測(cè)試應(yīng)用,也可以用來(lái)實(shí)現(xiàn)應(yīng)用自動(dòng)化。。。就像升級(jí)版按鍵精靈?
一、應(yīng)用場(chǎng)景
首先這個(gè)項(xiàng)目適合所有讀者,只要跟著本教程僅需會(huì)一點(diǎn) Python 語(yǔ)法,就可以學(xué)會(huì)用 Airtest 解決一些重復(fù)性的工作,釋放你的雙手!比如:檢測(cè)僵尸好友、批量點(diǎn)贊、刷游戲副本、自動(dòng)化測(cè)試等等。
如果測(cè)試同學(xué)上手了 Airtest 就會(huì)贊不絕口,畢竟測(cè)試界面的每個(gè)按鈕是否有效是一個(gè)機(jī)械性的任務(wù),不應(yīng)該讓機(jī)械的操作浪費(fèi)寶貴的時(shí)間,有了它可以輕松搞定“點(diǎn)點(diǎn)點(diǎn)”的測(cè)試需求。
另外 Airtest 對(duì)于普通使用者能做到最有意思的事情就是做游戲自動(dòng)化。例如,在游戲中經(jīng)常會(huì)有許多固定模式的日常任務(wù),通過(guò) Airtest 可以讓這些枯燥的日常任務(wù),自動(dòng)執(zhí)行從而節(jié)省時(shí)間。對(duì)于陰陽(yáng)師等游戲配合游戲自帶的自動(dòng)戰(zhàn)斗經(jīng)過(guò)調(diào)試我們甚至可以做到全自動(dòng)游玩,讓玩家徹底解放雙手!
看到這里是不是躍躍欲試了呢?下面就跟著小編一起上手 Airtest 吧~
二、上手
安裝:
$ pip install -U airtest對(duì)于新手來(lái)講,我個(gè)人推薦使用官方推出可視化編輯器AirtestIDE,使用起來(lái)非常方便,一鍵快速連接安卓、iOS 等設(shè)備,同時(shí)支持圖像識(shí)別與 UI 元素識(shí)別。
后面的教程也是采用 AirtestIDE 講解,手機(jī)為 Android 系統(tǒng)。
1. 打開手機(jī)開發(fā)者模式
打開手機(jī)的設(shè)置界面,找到關(guān)于手機(jī) 界面:
連續(xù)點(diǎn)擊版本號(hào) 欄目直到提示開發(fā)者模式已經(jīng)打開:
然后根據(jù)機(jī)型不同,找到開發(fā)人員選項(xiàng)中,打開開發(fā)人員選項(xiàng) ->USB 調(diào)試 ->“僅充電”模式下允許ADB調(diào)試,關(guān)閉監(jiān)控 ADB 安裝應(yīng)用
之后將我們的手機(jī)使用數(shù)據(jù)線與電腦連接起來(lái)。
注意:為了防止發(fā)生安全問(wèn)題,不連接 AirtestIDE 時(shí)請(qǐng)關(guān)閉 USB 調(diào)試功能!
2. 連接安卓手機(jī)
啟動(dòng) AirtestIDE 后會(huì)提示需要登錄,這里可以直接點(diǎn)擊 Skip 跳過(guò)。然后我們就能看到主界面啦:
當(dāng)手機(jī)連接到電腦后,點(diǎn)擊設(shè)備連接窗口的刷新 ADB按鈕后等待一會(huì)兒就能看見我們的手機(jī):
點(diǎn)擊操作 欄的connect 后即可連接手機(jī)。
第一次連接時(shí)在手機(jī)上會(huì)彈出認(rèn)證提示,無(wú)特殊情況點(diǎn)擊同意即可
之后就能看到我們手機(jī)畫面:
同時(shí)鼠標(biāo)可代替手指進(jìn)行點(diǎn)擊操作。
3. 實(shí)現(xiàn)自動(dòng)訪問(wèn) HG 官網(wǎng)
實(shí)現(xiàn)手機(jī)自動(dòng)訪問(wèn)網(wǎng)站僅需要簡(jiǎn)單的 3 步:
1、在Airtest 輔助窗 找到touch 與text:
2、點(diǎn)擊touch 后在手機(jī)畫面選擇瀏覽器圖標(biāo)截圖,生成如下代碼:
3、選擇text 輸入網(wǎng)址
最后點(diǎn)擊運(yùn)行 按鈕即可。
注意,此部分由于需要安裝 yosemite 調(diào)試工具可能需要先運(yùn)行幾次才可成功,而且圖像識(shí)別有一定概率會(huì)失敗
同樣,IDE 也支持錄制動(dòng)作,點(diǎn)擊Airtest 輔助窗 里的錄像按鈕即可:
之后使用鼠標(biāo)操作手機(jī),IDE 就會(huì)自動(dòng)為我們生成腳本了。
4. 生成報(bào)告(測(cè)試人員最愛)
Airtest 可以非常方便的生成測(cè)試報(bào)告,只需要點(diǎn)擊 IDE 上方的生成報(bào)告按鈕:
即可自動(dòng)生成全面的測(cè)試報(bào)告:
三、自動(dòng)識(shí)別
在實(shí)際應(yīng)用中,有些時(shí)候是圖片識(shí)別無(wú)法完成或者存在困難的,這時(shí)我們可以利用 Poco 工具直接識(shí)別 UI 框架定位元素。
一個(gè)很簡(jiǎn)單的例子,自動(dòng)打開 HG 的小程序并分享機(jī)器學(xué)習(xí)的內(nèi)容:
from airtest.core.api import *from poco.drivers.android.uiautomation
import AndroidUiautomation
Pocopoco = AndroidUiautomationPoco()
auto_setup(__file__)
poco(text="HelloGitHub").click()
poco(text="#機(jī)器學(xué)習(xí)").click()
poco(text="tutorials").click()
poco("android.widget.Button").click()
利用 IDE 的 Poco 錄制功能可以很方便的自動(dòng)生成上述代碼,實(shí)際效果如下:
在應(yīng)用當(dāng)中巧妙地利用 Poco 可以節(jié)省很多圖片識(shí)別時(shí)間以及應(yīng)用背景不同時(shí)程序的穩(wěn)定性。
四、結(jié)語(yǔ)
到這里 Airtest 的演示就結(jié)束啦!本文僅僅演示了 Airtest 最基本的功能。游戲自動(dòng)化只是其中很小的一個(gè)功能,它主要還是用來(lái)做自動(dòng)化測(cè)試。支持不同設(shè)備同時(shí)進(jìn)行測(cè)試,但對(duì)于使用者而言有一定的上手門檻,感興趣去的小伙伴可以去深入研究研究,但要注意方向呀~
最后,感謝您的閱讀!這里是 HelloGitHub 分享 GitHub 上有趣、入門級(jí)的開源項(xiàng)目。您的每個(gè)點(diǎn)贊、留言、分享都是對(duì)我們最大的鼓勵(lì)!
- END -