Airtest-一個更小巧的自動化測試工具
一师枣,關(guān)于Airtest
????筆者最近在公司做APP的自動化測試晨汹,關(guān)于移動端的自動化測試的工具目前最常用的應(yīng)該就是Appium了,但是Appium的安裝配置環(huán)境略微復(fù)雜恤筛,腳本的編寫也需要一定的代碼基礎(chǔ)乳怎,而想要讓沒有接觸過APP自動化的同學(xué)更加快速的了解和認(rèn)識自動化測試,Airtest是一個更好的選擇察滑,下面我就和大家聊一下這個小巧的自動化測試工具——Airtest打厘。
????Airtest是網(wǎng)易自研的一款基于圖像識別和poco控件識別的UI自動化測試工具,Airtest的整體封裝的框架由兩個部分組成airtest工具包是一個跨平臺的UI自動化測試框架贺辰,這個框架的原理是利用截圖的方式户盯,在已展示出的手機(jī)界面中尋找所匹配的圖片,所以這個基于圖像識別的框架是非常的適合非原生的安卓應(yīng)用和游戲饲化,而poco工具包的原理莽鸭,其實(shí)使用過appium的同學(xué)應(yīng)該非常的熟悉,是基于UI控件搜索的自動化測試框架吃靠,定位目標(biāo)控件硫眨,然后調(diào)用函數(shù)方法對目標(biāo)控件進(jìn)行操作。
二巢块,關(guān)于自動化測試
????自動化測試礁阁,就是把重復(fù)性高的測試用例編寫成測試腳本,利用自動化測試工具執(zhí)行代碼族奢,讓計(jì)算機(jī)代替人工進(jìn)行測試的過程氮兵,本質(zhì)上就是把以人工為驅(qū)動的測試工作轉(zhuǎn)化為以計(jì)算機(jī)驅(qū)動的測試工作。
????自動化測試的意義在于節(jié)省人力歹鱼,物力泣栈,提升測試效率和提高測試覆蓋率,通常在項(xiàng)目的穩(wěn)定階段介入弥姻,以回歸測試為主南片。
三,上手Airtest
????說了那么多庭敦,現(xiàn)在我們就來實(shí)際的操作一下Airtest疼进,讓大家更直觀的了解到Airtest這款自動化測試工具的特性。
1.環(huán)境搭建
????首先我們到Airtest的官網(wǎng)秧廉,下載Airtest伞广,在下載之前我們要安裝好AndroidSDK,并配置好ADB環(huán)境疼电。
????下載安裝后嚼锄,我們打開AirtestIDE,不同于Appium蔽豺,AirtestIDE已經(jīng)幫我們集成好所需要的所有環(huán)境区丑,腳本錄制界面,模擬器界面,代碼編輯界面沧侥,所以只要一個AirtestIDE就可以輕松的錄制腳本可霎,讓我們實(shí)現(xiàn)APP的UI自動化測試
2.AirtestIDE
????在安裝成功并連接手機(jī)后,我們就要進(jìn)行實(shí)際操作了宴杀,以淘寶App為例癣朗,我們要在手機(jī)中啟動淘寶,并進(jìn)入‘我的’界面旺罢,我們先來看一下操作步驟
1.點(diǎn)擊錄制按鈕
2.點(diǎn)擊淘寶App
3.點(diǎn)擊‘我的’
4.完成錄制
5.自動生成腳本
????我們來看一下自動生成的代碼旷余,很簡單,首先是導(dǎo)入了airtest和poco的工具包主经,然后是兩行代碼荣暮,都是touch語句庭惜,這個動作是觸摸罩驻,我們來回放一遍,發(fā)現(xiàn)Airtest是通過截取當(dāng)前界面护赊,然后我所截取的界面中找到我們截圖的那個部分惠遏,然后進(jìn)行touch點(diǎn)擊操作,從而實(shí)現(xiàn)圖像識別的自動化測試骏啰,但是在回放的過程中节吮,我發(fā)現(xiàn)它的操作是比較慢的,也就是圖像識別所需要的處理時間是比較長的判耕。
3.airtest工具包
接下來我們來說一下airtest工具包的常用方法
touch —— 點(diǎn)擊屏幕
wait —— 等待
swipe —— 拖動操作
text —— 輸入文字
keyevent —— 安卓鍵盤操作
snapshot —— 截圖
sleep —— 延遲時間
assert —— 斷言
????這些方法的使用也是非常簡單的透绩,選中方法后在右側(cè)的模擬器內(nèi)執(zhí)行相應(yīng)的操作就可以自動生成代碼,值得一提的是壁熄,text方法中附加了一個回車動作帚豪,也就是說在輸入文字后會自動執(zhí)行回車
4.poco工具包
????在我們的實(shí)際工作中,APP的圖像是會經(jīng)常變化的草丧,那么我們的基于圖像識別的腳本就會失效狸臣,而安卓控件是比較穩(wěn)定的,poco方法就是安卓控件的識別昌执,我更提倡在測試安卓應(yīng)用時使用poco方法烛亦,而圖像識別作為輔助,兩者配合可以發(fā)揮出更好的效果懂拾。
我們來看一下poco方法是怎么使用的煤禽。
??? 在左側(cè)的poco輔助窗中選中Android,IED會提示你是否導(dǎo)入poco包岖赋,選擇是呜师,我們選擇相應(yīng)的UI控件,雙擊自動生成代碼贾节,但是這個自動生成的代碼只是UI控件的識別代碼汁汗,并不是操作代碼衷畦,所以我們要在UI控件識別代碼后增加動作。
????Poco的這段代碼和錄制生成的代碼效果是一樣的知牌,只不過一個是UI控件識別祈争,一個是圖像識別,但是poco代碼的執(zhí)行效率更高角寸,在APP的版本迭代中也更為穩(wěn)定菩混。
總結(jié)
????總的來說,Airtest的操作是比較簡單的扁藕,基本上不用自己編寫代碼沮峡,所以很適合沒有自動化測試經(jīng)驗(yàn)的同學(xué)用這個工具來進(jìn)行自動化測試工作,同時Airtest也提供了開源的API亿柑,可以在Pychram里配合使用其他的python工具包來實(shí)現(xiàn)更復(fù)雜的代碼邏輯邢疙。
????同樣的這個工具也會有不足的地方,其中poco的方法封裝的過于徹底望薄,比如Appium中elements方法就無法實(shí)現(xiàn)疟游,IDE中只能運(yùn)行單個的腳本,無法批量的運(yùn)行測試腳本和管理測試腳本痕支。在我的下篇文章中颁虐,我會教大家如何使用第三方單元測試框架集成AirtestAPI,來實(shí)現(xiàn)批量運(yùn)行測試腳本和管理測試腳本卧须。