airtest實(shí)現(xiàn)UI自動(dòng)化及工作實(shí)踐落地介紹

前言:UI自動(dòng)化對(duì)于測(cè)試工程師是一項(xiàng)必不可少的技能敦锌。
目前市場(chǎng)上面流行的有python/Java+Appium框架姑宽,robotframe框架等啄刹,這些都有一個(gè)共同的特點(diǎn)繁成,定位元素需要依賴工具忆嗜,或需要自己去寫己儒,效率較慢。
airtest最大的優(yōu)勢(shì)是定位元素非忱粒快闪湾,且最優(yōu)定位,也支持圖像定位元素绩卤,讓UI自動(dòng)化實(shí)現(xiàn)起來非常方便途样。
本人使用UI自動(dòng)化也時(shí)間不短,結(jié)合使用體驗(yàn)濒憋,airtest是一個(gè)較為可行的實(shí)現(xiàn)方案娘纷,值得去使用。

本文介紹airtest 實(shí)現(xiàn)Android APP自動(dòng)化跋炕,其他的端大同小異不做過多介紹赖晶。目的介紹實(shí)現(xiàn)方式和實(shí)現(xiàn)的流程過程。



一. airtest介紹

????????Airtest是網(wǎng)易出品的一款基于圖像識(shí)別和poco控件識(shí)別的一款UI自動(dòng)化測(cè)試工具辐烂。Airtest的框架是網(wǎng)易團(tuán)隊(duì)自己開發(fā)的一個(gè)圖像識(shí)別框架遏插,這個(gè)框架的祖宗就是一種新穎的圖形腳本語(yǔ)言Sikuli。Sikuli這個(gè)框架的原理是這樣的纠修,計(jì)算機(jī)用戶不需要一行行的去寫代碼胳嘲,而是用屏幕截屏的方式,用截出來的圖形擺列組合成神器的程序扣草,這是Airtest的一部分了牛。

??另外颜屠,Airtest也基于poco這個(gè)U控件搜索框架,這個(gè)框架也是網(wǎng)易自家的跨平臺(tái)U測(cè)試框架鹰祸,原理類似于appium甫窟,通過控件的名稱,id之類的來定位目標(biāo)控件蛙婴,然后調(diào)用函數(shù)方法粗井,例如click(),swip()之類的方法來對(duì)目標(biāo)控件進(jìn)行點(diǎn)擊或者是操作。


二. 安裝依賴JDK和ADB(SDK套件)

1.JDK安裝:

JDK下載地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

點(diǎn)開鏈接你應(yīng)該看到如下圖所示的界面:

2.點(diǎn)擊上圖中箭頭所指的地方街图,會(huì)出現(xiàn)下面的這個(gè)界面浇衬,此時(shí)你需要根據(jù)你的電腦系統(tǒng)來進(jìn)行對(duì)應(yīng)的版本進(jìn)行選擇,在選擇版本和下載之前你需要首先接收協(xié)議餐济,具體界面如下圖所示:

安裝

雙擊以后進(jìn)行JDK的安裝(記得按照第二幅圖修改一下安裝路徑耘擂,不要什么東西都安裝到系統(tǒng)盤。絮姆。梳星。):

(1)雙擊進(jìn)行安裝界面如下所示:

配置環(huán)境變量:

??????? 1. 打開環(huán)境變量配置。計(jì)算機(jī)→屬性→高級(jí)系統(tǒng)設(shè)置→高級(jí)→環(huán)境變量滚朵,在系統(tǒng)變量中配置冤灾。

??????? 2. 配置JAVA_HOME。新建辕近,變量名JAVA_HOME韵吨,變量值,jdk路徑移宅,我的路徑是C:\Program Files\Java\jdk1.8.0_121归粉,保存。

??????? 3. 配置CLASSPATH漏峰。新建糠悼,變量名CLASSPATH,變量值浅乔,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(第一個(gè)分號(hào)前前面有一個(gè)點(diǎn))倔喂。

??????? 4. 配置Path。打開Path變量靖苇,在變量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

驗(yàn)證:

????? 運(yùn)行cmd席噩,輸入java -version,顯示java版本則成功贤壁。


2.adb下載及安裝:

下載adb壓縮包去解壓即可:鏈接:https://pan.baidu.com/s/1SKu24yyShwg16lyIupO5VA 提取碼:ih0i

然后輸入adb version 查看版本 可以看出是否安裝成功悼枢,如下就已經(jīng)成功了。


三.? airtest安裝與使用

1. airtest安裝脾拆。

airtest安裝是比較方便馒索,AirtestIDE下載地址莹妒,進(jìn)入下載對(duì)應(yīng)自己的機(jī)器平臺(tái),下載好直接安裝即可绰上,安裝起來是很方便旨怠。

2. airtest使用前準(zhǔn)備

這個(gè)工具優(yōu)勢(shì)是做APP UI自動(dòng)化,就以APP為介紹渔期。
首先手機(jī)連接到電腦(Android运吓,Windows)渴邦,使用數(shù)據(jù)線連接后疯趟,會(huì)自動(dòng)下載手機(jī)驅(qū)動(dòng)直至連接。

手機(jī)設(shè)置打開USB調(diào)試谋梭。


adb devices查看是否已連接或者直接在airtest連接查看信峻。

如果出現(xiàn)上面信息,說明環(huán)境已經(jīng)配置好瓮床,可以開始寫自動(dòng)化代碼盹舞。

注意:電腦里面只能有一個(gè)adb版本,如果之前安裝過安裝其他環(huán)境(模擬器等)隘庄,有可能出現(xiàn)多個(gè)adb造成airtest連接不上手機(jī)踢步,全部的adb復(fù)制粘貼使用一個(gè)版本的adb即可。

3. airtest腳本編寫

airtest有官方使用文檔:https://airtest.doc.io.netease.com/tutorial/1_quick_start_guide/
上面寫的非常詳細(xì)丑掺,怎么定位怎么操作获印。使用前可以多看看

點(diǎn)擊連接手機(jī)(也可使用安卓模擬器,推薦夜神模擬器街州,連接官方文檔有)兼丰,直到界面出現(xiàn)手機(jī)屏幕畫面,新建airtest腳本唆缴,保存位置自己選擇就行鳍征。

如果使用期間不小心關(guān)閉了窗口,從這里再次打開面徽。

有兩種定位

選擇好定位方法出現(xiàn)此提示艳丛,選擇“Yes”。

第一種定位:airtest

此方法定位是圖像識(shí)別定位趟紊,很強(qiáng)大质礼。具體可以參照官方文檔。

腳本編寫比較簡(jiǎn)單织阳,點(diǎn)擊左側(cè)方法眶蕉,會(huì)出現(xiàn)截圖的功能,對(duì)應(yīng)截圖的地方就是點(diǎn)擊等操作唧躲,每個(gè)功能操作一遍就熟悉了造挽,比較簡(jiǎn)單就不多做贅述碱璃。

第二種定位:Poco定位

poco是純代碼id等定位,和airtest方法定位不同饭入。

怎么獲取文本嵌器,怎么斷言,官方文檔有詳細(xì)說明谐丢。
同時(shí)爽航,airtest和這個(gè)poco結(jié)合使用非常方便。

綜上:
如果自己有一些代碼的基礎(chǔ)乾忱,可以封裝到方法讥珍,一些特殊場(chǎng)景需要自己寫場(chǎng)景代碼去結(jié)合實(shí)現(xiàn)。

總之窄瘟,airtest實(shí)現(xiàn)UI自動(dòng)化非常方便衷佃。


四. 實(shí)際工作中使用

上面實(shí)現(xiàn)的腳本只是單個(gè)業(yè)務(wù)場(chǎng)景使用,那么怎么把多個(gè)業(yè)務(wù)場(chǎng)景或多個(gè)部門的所有腳本一起執(zhí)行蹄葱,并管理起來呢氏义,所以我介紹的是“.air腳本+airtest批量執(zhí)行框架+github+Jenkins”實(shí)現(xiàn)批量去執(zhí)行,且持續(xù)管理图云。

1.airtest批量執(zhí)行框架:

鏈接:https://pan.baidu.com/s/1hmIp9VJv_W-lXbmsd74jnA? 提取碼:w0tk
此框架僅限單個(gè)手機(jī)執(zhí)行惯悠,網(wǎng)上可以搜索下載很多其他的框架,多嘗試竣况。

執(zhí)行前要安裝python的庫(kù):
pip install airtest
pip install pocoui

(推薦提前安裝python3.6的版本)

1.腳本全部放在air_case文件夾里克婶,my_runner.py里面的device不填表示默認(rèn)連接的手機(jī)。如果有多個(gè)手機(jī)執(zhí)行填入就行帕翻。

2.手機(jī)連連接后(adb devices可以顯示出手機(jī))鸠补,命令窗執(zhí)行 : python my_runner.py

3.執(zhí)行完就是批量執(zhí)行所有的,點(diǎn)擊打開:airtest_case_dadi\export_log\summary.html

4.點(diǎn)擊后進(jìn)入詳情嘀掸,官方報(bào)告文檔:

紫岩,

2. git+jenkins流程配置

好的上面已近完成了air代碼在airtest批量執(zhí)行框架中運(yùn)行,下面要把代碼上傳到git睬塌,然后通過Jenkins定時(shí)拉取并執(zhí)行泉蝌。

如果是公司的測(cè)試機(jī)器同樣部署python SDK JDK等環(huán)境。
上傳代碼到git(參考:https://blog.csdn.net/qq_32846595/article/details/71149312

Jenkins配置:

1.新建流水線

2.創(chuàng)建完成之后揩晴,點(diǎn)擊執(zhí)行(手機(jī)正常連接至電腦或者服務(wù)器)勋陪,執(zhí)行成功

3.其中在流水線在配置每天定時(shí)執(zhí)行自動(dòng)發(fā)送測(cè)試報(bào)告(也可以在代碼加郵件發(fā)送功能)等硫兰,可以自己試試诅愚。

綜上:已經(jīng)介紹完所有的流程和具體的環(huán)境配置,如果遇到問題網(wǎng)上搜搜教程等劫映。


五. 總結(jié)

1.airtest目前已經(jīng)是比較成熟了违孝,遇到問題網(wǎng)上都有相應(yīng)的解決方法刹前,可使用性比較高。

2.airtest寫的代碼雌桑,最好集成到airtest框架里面喇喉,airtest適合只寫代碼,復(fù)用到其他框架中校坑。

3.此文章只簡(jiǎn)單介紹了Android APP自動(dòng)化拣技,IOS和WEB都可以做自動(dòng)化,具體方法網(wǎng)上或者官方文檔有詳細(xì)介紹耍目,也是比較簡(jiǎn)單膏斤。

4.airtest最大的優(yōu)勢(shì)我覺的就是方便,無(wú)論工作中臨時(shí)業(yè)務(wù)自動(dòng)化制妄,還是正式業(yè)務(wù)場(chǎng)景自動(dòng)化都可以方便的去使用和實(shí)現(xiàn)掸绞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泵三,一起剝皮案震驚了整個(gè)濱河市耕捞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烫幕,老刑警劉巖俺抽,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異较曼,居然都是意外死亡磷斧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門捷犹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弛饭,“玉大人,你說我怎么就攤上這事萍歉÷滤蹋” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵枪孩,是天一觀的道長(zhǎng)憔晒。 經(jīng)常有香客問我,道長(zhǎng)蔑舞,這世上最難降的妖魔是什么拒担? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮攻询,結(jié)果婚禮上从撼,老公的妹妹穿的比我還像新娘。我一直安慰自己钧栖,他們只是感情好低零,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布呆馁。 她就那樣靜靜地躺著,像睡著了一般毁兆。 火紅的嫁衣襯著肌膚如雪雹有。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天年栓,我揣著相機(jī)與錄音畔师,去河邊找鬼。 笑死茎芭,一個(gè)胖子當(dāng)著我的面吹牛揖膜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梅桩,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼壹粟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了宿百?” 一聲冷哼從身側(cè)響起趁仙,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垦页,沒想到半個(gè)月后雀费,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痊焊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年盏袄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薄啥。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辕羽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垄惧,到底是詐尸還是另有隱情刁愿,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布赘艳,位于F島的核電站酌毡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蕾管。R本人自食惡果不足惜枷踏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掰曾。 院中可真熱鬧旭蠕,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至旗芬,卻和暖如春舌胶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疮丛。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工幔嫂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人誊薄。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓履恩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親呢蔫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子切心,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361