Airtest Project入門(mén)

Airtest Project簡(jiǎn)介

Airtest Project是網(wǎng)易出品的一款自動(dòng)化解決方案,它適用于任意游戲引擎和應(yīng)用的自動(dòng)化測(cè)試,支持Android和Windows。它不需要依賴(lài)被測(cè)對(duì)象的源碼。

在2018年3月26號(hào)的Google開(kāi)發(fā)者日上,Google也宣布了這款由網(wǎng)易開(kāi)發(fā)的項(xiàng)目,因此很值得一試。

Airtest Project提供了一個(gè)自動(dòng)化測(cè)試編輯器Airtest IDE,Airtest IDE使用了基于圖像識(shí)別的UI自動(dòng)化測(cè)試框架—Airtest來(lái)進(jìn)行控件定位;它同時(shí)集成了POCO框架,POCO框架是基于控件識(shí)別的UI自動(dòng)化框架,支持主流游戲引擎:Cocos2d-x, Unity3d,支持Android原生應(yīng)用。因此可以選擇是用圖像識(shí)別或者基于控件定位的方式來(lái)進(jìn)行控件定位。

AirtestIDE安裝

AirtestIDE安裝方式很簡(jiǎn)單,直接去Airtest Project官網(wǎng)進(jìn)行下載即可,雙擊可執(zhí)行的安裝文件按照提示完成安裝即可,Airtest Project官網(wǎng)如下:

[Airtest Project Home Page]??http://airtest.netease.com/index.html?

當(dāng)前提供兩個(gè)平臺(tái)的安裝文件,WINDOWS和MAC。

安裝完啟動(dòng)后是長(zhǎng)這樣的:

AirTest IDE使用

連接Android手機(jī)

今天主要介紹下Android平臺(tái)的操作,Windows和iOS以后再詳細(xì)介紹。

手機(jī)通過(guò)USB將Android手機(jī)連接到PC上,并確認(rèn)手機(jī)的USB調(diào)試模式已經(jīng)打開(kāi)。點(diǎn)擊上圖的右側(cè)窗口里的refresh ADB按鈕,就可以你連接的設(shè)備信息如下:

點(diǎn)擊connect就可以連接到設(shè)備并將設(shè)備投影到IDE里,如下所示:

錄制腳本

連接上手機(jī)后就可以使用IDE來(lái)進(jìn)行腳本錄制與回放了,錄制方式分兩種,一種基于圖像識(shí)別的,另外一種基于控件定位的。下面分別通過(guò)兩種定位方式來(lái)錄制同一個(gè)場(chǎng)景。假設(shè)操作的入口是在微信小程序列表,列表里有肯德基的小程序(肯德基看到記得給我打下廣告費(fèi)),現(xiàn)在錄制這樣的場(chǎng)景:

點(diǎn)擊肯德基進(jìn)入其小程序

點(diǎn)擊開(kāi)始點(diǎn)餐

點(diǎn)擊收藏的餐廳

圖像識(shí)別方式:

按照上面介紹的步驟連接上手機(jī)后,只有點(diǎn)擊IDE里Script Editor下的添加按鈕,創(chuàng)建一個(gè)腳本如下所示:

接著點(diǎn)擊Airtest Assiant下發(fā)的第二個(gè)錄制按鈕即可開(kāi)始錄制,如下所示:

點(diǎn)擊右側(cè)的設(shè)備屏幕區(qū)域,完成上面描述的1~3步驟,操作完再次點(diǎn)擊錄制按鈕即可停止錄制,錄制完會(huì)自動(dòng)生成腳本如下:

手動(dòng)在肯德基小程序里回退下,并點(diǎn)擊右上角的關(guān)閉按鈕,回到小程序列表也,這時(shí)候如果要回放剛才的腳本的話(huà)只需要點(diǎn)擊如下的執(zhí)行按鈕即可進(jìn)行回放:

上面都是操作性的步驟,如果要進(jìn)行校驗(yàn)通過(guò)圖像識(shí)別該怎么做。假設(shè)現(xiàn)在要斷言點(diǎn)擊收藏的餐廳會(huì)出現(xiàn)立即登錄的按鈕,如下所示:

加入校驗(yàn)的話(huà)可以點(diǎn)擊Airtest Assiant下的assert_exists,通過(guò)這個(gè)可以斷言某個(gè)圖片是否存在,點(diǎn)擊完后會(huì)提示選擇要校驗(yàn)的區(qū)域,這時(shí)候只有選擇需要判斷的區(qū)域即可,選定完后會(huì)生成如下代碼:

再次退后到小程序列表也,回放下錄制的代碼,待執(zhí)行完后點(diǎn)擊如下的按鈕查看測(cè)試報(bào)告:

測(cè)試報(bào)告長(zhǎng)這樣的:

控件定位方式:

上面介紹了按圖像的定位方式,接著來(lái)介紹下按控件來(lái)定位的方式。圖像的話(huà)可用于不能用控件定位時(shí)的一種補(bǔ)充,基于控件體系的定位方式會(huì)比較精準(zhǔn),穩(wěn)定性相對(duì)來(lái)說(shuō)也會(huì)好一點(diǎn),兩種定位方式結(jié)合起來(lái)幾乎可以無(wú)所不能了。那通過(guò)IDE如何使用基于控件的定位方式呢?

點(diǎn)擊Script ?Editor下的添加按鈕,再創(chuàng)建一個(gè)腳本文件。在Poco Assistant下方選擇Android,接著只要點(diǎn)擊IDE窗口左側(cè)的Poco Assistant下方最右側(cè)的錄制按鈕即可。如下所示:

在腳本編輯區(qū)域會(huì)出現(xiàn)如下提示,點(diǎn)擊Yes即可:

同樣假定操作的入口是在小程序的列表里,錄制上面的三個(gè)步驟,錄制的時(shí)候有時(shí)候定位方式不是很準(zhǔn)確,可以通過(guò)點(diǎn)擊上圖中間的Poco Inspector按鈕,接著在Device Screen區(qū)域要查看控件信息的地方鼠標(biāo)右鍵,接著雙擊需要查看的控件即可,雙擊完后改控件的信息就會(huì)列在Log Viewer里,如下所示:

通過(guò)上面的方式獲取到的定位方式比錄制的要精確,修改完后生成的代碼如下:

# -*- encoding=utf8 -*-

__author__="aaronyang"

frompoco.drivers.android.uiautomationimportAndroidUiautomationPoco

poco=AndroidUiautomationPoco(force_restart=False)

poco(text="肯德基+").click()

poco(name="開(kāi)始點(diǎn)餐").click()

sleep(3)

poco(name="收藏的餐廳(0)").click()

那這種方式如何添加校驗(yàn)點(diǎn)了,添加如下:

那這種方式如何添加校驗(yàn)點(diǎn)了,添加如下:

# -*- encoding=utf8 -*-

__author__="aaronyang"

frompoco.drivers.android.uiautomationimportAndroidUiautomationPoco

poco=AndroidUiautomationPoco(force_restart=False)

poco(text="肯德基+").click()

poco(name="開(kāi)始點(diǎn)餐").click()

sleep(3)

poco(name="收藏的餐廳(0)").click()

name=poco(name="立即登錄").get_name()

assert_equal(name,"立即登錄","立即登錄按鈕存在")

運(yùn)行和查看報(bào)告的方式跟基于圖像的一樣,這里就不在一一介紹了。

基于圖像和基于控件在這篇文件里是分開(kāi)介紹的,它們混合起來(lái)用會(huì)強(qiáng)大不少,如果基于控件定位的方式搞不定的會(huì)就把基于圖像的添加進(jìn)來(lái),這樣就方便不少,不會(huì)出現(xiàn)其他自動(dòng)化工具對(duì)某一類(lèi)型的控件不好定位的問(wèn)題。

沒(méi)有太多編碼技巧或者討厭編碼的人也可以使用基于圖像識(shí)別的定位方式去錄制一些腳本解決實(shí)際工作中的一些重復(fù)的體力活。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Airtest Project簡(jiǎn)介 Airtest Project是網(wǎng)易出品的一款自動(dòng)化解決方案,它適用于任意游戲...
    Thea0216閱讀 1,612評(píng)論 0 1
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,939評(píng)論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,953評(píng)論 2 59
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,196評(píng)論 3 119
  • 因?yàn)槲壹彝l件不好從小到大家里一直都是負(fù)債。我家里一共有六口人,兄弟姐妹4人我是老三。從小我就特別節(jié)省生怕多話(huà)一分...
    Apartfromlove閱讀 154評(píng)論 0 0

友情鏈接更多精彩內(nèi)容