Airtest Project入門

Airtest Project簡介

Airtest Project是網(wǎng)易出品的一款自動化解決方案奸攻,它適用于任意游戲引擎和應(yīng)用的自動化測試睹耐,支持Android和Windows。它不需要依賴被測對象的源碼响委。

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

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

AirtestIDE安裝

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

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

當(dāng)前提供兩個平臺的安裝文件闲礼,WINDOWS和MAC。

安裝完啟動后是長這樣的:

AirTest IDE使用

連接Android手機(jī)

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

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

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

錄制腳本

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

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

點(diǎn)擊開始點(diǎn)餐

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

圖像識別方式:

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

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

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

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

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

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

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

測試報告長這樣的:

控件定位方式:

上面介紹了按圖像的定位方式土铺,接著來介紹下按控件來定位的方式胶滋。圖像的話可用于不能用控件定位時的一種補(bǔ)充,基于控件體系的定位方式會比較精準(zhǔn)悲敷,穩(wěn)定性相對來說也會好一點(diǎn)究恤,兩種定位方式結(jié)合起來幾乎可以無所不能了。那通過IDE如何使用基于控件的定位方式呢后德?

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

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

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

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

# -*- encoding=utf8 -*-

__author__="aaronyang"

frompoco.drivers.android.uiautomationimportAndroidUiautomationPoco

poco=AndroidUiautomationPoco(force_restart=False)

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

poco(name="開始點(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="開始點(diǎn)餐").click()

sleep(3)

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

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

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛹头,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子戏溺,更是在濱河造成了極大的恐慌渣蜗,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷祸,死亡現(xiàn)場離奇詭異耕拷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)托享,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門骚烧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闰围,你說我怎么就攤上這事赃绊。” “怎么了羡榴?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵碧查,是天一觀的道長。 經(jīng)常有香客問我校仑,道長忠售,這世上最難降的妖魔是什么者冤? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮档痪,結(jié)果婚禮上涉枫,老公的妹妹穿的比我還像新娘。我一直安慰自己腐螟,他們只是感情好愿汰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乐纸,像睡著了一般衬廷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汽绢,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天吗跋,我揣著相機(jī)與錄音,去河邊找鬼宁昭。 笑死跌宛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的积仗。 我是一名探鬼主播疆拘,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寂曹!你這毒婦竟也來了哎迄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤隆圆,失蹤者是張志新(化名)和其女友劉穎漱挚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渺氧,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旨涝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阶女。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颊糜。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秃踩,靈堂內(nèi)的尸體忽然破棺而出衬鱼,到底是詐尸還是另有隱情,我是刑警寧澤憔杨,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布鸟赫,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抛蚤。R本人自食惡果不足惜台谢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岁经。 院中可真熱鬧朋沮,春花似錦、人聲如沸缀壤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塘慕。三九已至筋夏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間图呢,已是汗流浹背条篷。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛤织,地道東北人赴叹。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像瞳筏,于是被迫代替她去往敵國和親稚瘾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Airtest Project簡介 Airtest Project是網(wǎng)易出品的一款自動化解決方案姚炕,它適用于任意游戲...
    Thea0216閱讀 1,531評論 0 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,088評論 25 707
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料丢烘? 從這篇文章中你...
    hw1212閱讀 12,715評論 2 59
  • 1柱宦、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,979評論 3 119
  • 因?yàn)槲壹彝l件不好從小到大家里一直都是負(fù)債。我家里一共有六口人播瞳,兄弟姐妹4人我是老三掸刊。從小我就特別節(jié)省生怕多話一分...
    Apartfromlove閱讀 132評論 0 0