Macaca 面向多端的自動(dòng)化測(cè)試解決方案

背景


對(duì)于基于 UI 的功能測(cè)試的需求其實(shí)一直存在坏挠,理由其實(shí)很簡(jiǎn)單,不想一直讓人去做重復(fù)機(jī)械的事情郭赐,而且可靠性完全是靠人力的堆積產(chǎn)生鲫趁。然而目前部門的功能測(cè)試工作依然主要是依靠人工來完成,從我們公司的實(shí)踐來看我覺得有幾個(gè)方面的影響因素:

客戶端APP已經(jīng)實(shí)現(xiàn)模塊化開發(fā)饭尝,而且外賣平臺(tái)移動(dòng)端的開發(fā)迭代流程正在進(jìn)行改造肯腕,目標(biāo)是從固定每三周一個(gè)迭代改造為每周一個(gè)發(fā)布窗口,版本迭代的提速钥平,設(shè)備的碎片化实撒,都給測(cè)試工作帶來巨大的挑戰(zhàn)。
由于版本迭代周期越來越短涉瘾,而且UI變動(dòng)比較頻繁知态,因此測(cè)試編寫測(cè)試代碼的積極性不是很高,同時(shí)由于測(cè)試代碼的可重復(fù)利用性差立叛,導(dǎo)致測(cè)試腳本的編寫成本和維護(hù)成本偏高 负敏。
部分測(cè)試人員的編碼能力不是很強(qiáng)。由于大部分測(cè)試人員可能并沒有過多的開發(fā)經(jīng)驗(yàn)囚巴,所以在編寫測(cè)試代碼時(shí)并不能很順暢的完成自己想要的效果原在,這樣也會(huì)導(dǎo)致測(cè)試代碼項(xiàng)目的推廣阻力會(huì)比較大友扰。

如何在有限的時(shí)間內(nèi)彤叉,追求盡可能高的產(chǎn)品質(zhì)量?錄放平臺(tái)是我們推出的解決方案递递。它支持本地化UI腳本錄制系瓢,集中式腳本管理酷麦,分布式腳本執(zhí)行。業(yè)務(wù)測(cè)試只要開啟我們的服務(wù)柬焕,就可以在業(yè)務(wù)測(cè)試的過程中审残,自動(dòng)生成對(duì)Android、iOS和Web頁面的自動(dòng)化腳本斑举,而自動(dòng)化腳本在批量設(shè)備上的回放搅轿,可以極大提高關(guān)鍵路徑的覆蓋率,提升兼容性測(cè)試的效率富玷,從而可以把業(yè)務(wù)測(cè)試從冗長(zhǎng)重復(fù)的步驟中解放出來璧坟,把精力放到邊界,異常等可以給我們產(chǎn)品帶來更多提升的地方赎懦。

通過不斷地尋找雀鹃,不斷地對(duì)比,最終我們將目標(biāo)聚焦在阿里巴巴開源解決方案Macaca上励两。

簡(jiǎn)介


Macaca是一套完整的自動(dòng)化測(cè)試解決方案黎茎,它的三個(gè)特性對(duì)我們極具吸引力:

1、周邊工具支持(Reliable当悔、app-inspector傅瞻、UI-Recorder等)
2、它是一個(gè)輕量化的開源項(xiàng)目
3先鱼、社區(qū)活躍俭正,中文文檔豐富
4、支持JS焙畔、Python掸读、Java編寫自動(dòng)化腳本
5、API比較統(tǒng)一

技術(shù)棧


在落地Macaca之前宏多,需要先部署下列技術(shù)棧:
1儿惫、Node.js用于部署Macaca
2、Docker用于容器化Macaca的部署環(huán)境
3伸但、Gitlab用于存儲(chǔ)代碼和測(cè)試用例
4肾请、Slack用于團(tuán)隊(duì)的溝通協(xié)調(diào)
5、Python用于部署本地Agent

使用流程


業(yè)務(wù)測(cè)試人員通過在本地錄制好測(cè)試腳本更胖,然后上傳到腳本管理平臺(tái)铛铁,這些測(cè)試腳本將會(huì)根據(jù)業(yè)務(wù)模塊和版本分類管理。使用者在自己的電腦上安裝Agent却妨,然后連接測(cè)試設(shè)備饵逐,Agent會(huì)將本機(jī)的ip、port和設(shè)備信息上傳注冊(cè)到錄放平臺(tái)彪标。

新建一個(gè)task執(zhí)行腳本回放操作倍权,可以指定在哪些機(jī)器上回放也可以推送到STF手機(jī)管理平臺(tái)批量回放,測(cè)試用例運(yùn)行之后捞烟,會(huì)有兩種情況發(fā)生:如果成功薄声,則可以直接查看生成報(bào)告当船;否則會(huì)通過Slack或郵件通知開發(fā)人員測(cè)試失敗,重新修改代碼默辨。

另外Macaca也提供了相應(yīng)的分布式持續(xù)集成框架Reliable來進(jìn)行任務(wù)管理德频。

Reliable


下圖是Reliable的界面,通過Reliable用戶可以查看測(cè)試用例和測(cè)試結(jié)果缩幸;并且Reliable天生與Macaca無縫銜接抱婉。

Inspector


Macaca中還提供了Inspector工具供用戶直觀、方便查找到想要選中的元素桌粉。圖中右側(cè)一欄提供的是XPS蒸绩、ID、Name數(shù)據(jù)铃肯,用戶通過Inspector工具尋找目標(biāo)界面的元素患亿。

Debug


我們選擇Visual Studio Code作為常用的IDE因?yàn)樗軌蜉p量地、方便地支持使用者Debug押逼,用戶可以根據(jù)自己喜好選擇相應(yīng)地調(diào)試工具步藕。

UI Recorder


下圖是簡(jiǎn)單的登錄測(cè)試用例:輸入用戶名和密碼,然后點(diǎn)擊登錄按鈕挑格。UI-Recorder腳本錄制工具可以快速的通過錄制得到腳本咙冗,方便新手入門。

測(cè)試報(bào)告


最終的測(cè)試結(jié)果需要與餓了么的質(zhì)量平臺(tái)對(duì)接(Macaca產(chǎn)生的測(cè)試報(bào)告漂彤、測(cè)試結(jié)果數(shù)據(jù)在導(dǎo)入餓了么質(zhì)量平臺(tái)前需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換)雾消,形成完整的測(cè)試流程。

上面總結(jié)了一下自己在調(diào)研并選擇UI自動(dòng)化框架中的一些思考挫望,希望能給處于UI自動(dòng)化調(diào)研初期的同學(xué)們一些幫助立润,其中很多選擇是出于自身業(yè)務(wù)的需要,僅供參考媳板,希望大家能結(jié)合自身業(yè)務(wù)的需要桑腮,找到適合自己的UI自動(dòng)化框架。另外如果有對(duì)此框架感興趣的同學(xué)歡迎一起學(xué)習(xí)交流蛉幸。

全棧增長(zhǎng)工程師破讨,歡迎關(guān)注
全棧增長(zhǎng)工程師,歡迎關(guān)注
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奕纫,一起剝皮案震驚了整個(gè)濱河市提陶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌若锁,老刑警劉巖搁骑,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斧吐,死亡現(xiàn)場(chǎng)離奇詭異又固,居然都是意外死亡仲器,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門仰冠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乏冀,“玉大人,你說我怎么就攤上這事洋只×韭伲” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵识虚,是天一觀的道長(zhǎng)肢扯。 經(jīng)常有香客問我,道長(zhǎng)担锤,這世上最難降的妖魔是什么蔚晨? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮肛循,結(jié)果婚禮上铭腕,老公的妹妹穿的比我還像新娘。我一直安慰自己多糠,他們只是感情好累舷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夹孔,像睡著了一般被盈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搭伤,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天害捕,我揣著相機(jī)與錄音,去河邊找鬼闷畸。 笑死尝盼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佑菩。 我是一名探鬼主播盾沫,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼殿漠!你這毒婦竟也來了赴精?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤绞幌,失蹤者是張志新(化名)和其女友劉穎蕾哟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谭确,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年帘营,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逐哈。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芬迄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昂秃,到底是詐尸還是另有隱情禀梳,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布肠骆,位于F島的核電站算途,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚀腿。R本人自食惡果不足惜郊艘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唯咬。 院中可真熱鬧纱注,春花似錦、人聲如沸胆胰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜀涨。三九已至瞎嬉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厚柳,已是汗流浹背氧枣。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留别垮,地道東北人便监。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像碳想,于是被迫代替她去往敵國(guó)和親烧董。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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