安卓性能自動化測試平臺思路設(shè)計與實踐

一澈圈、安卓性能測試的難點

  • 安卓客戶端產(chǎn)品可能會遇到用戶反饋域携,用了一段時間后手機發(fā)燙發(fā)熱、內(nèi)存不夠用了晶密,這可能是客戶端性能沒有優(yōu)化導(dǎo)致的用戶體驗下降擒悬。
  • 客戶端性能測試,常見的做法一般是通過各種方法獲取性能參數(shù)稻艰,包括cpu懂牧、內(nèi)存、電量尊勿、流量等僧凤,然后再通過各種測試工具結(jié)合性能數(shù)據(jù)畜侦,對代碼中耗時較久的方法進行性能優(yōu)化。這個過程通常會比較費時躯保。
  • 我們考慮如何從使用產(chǎn)品的角度出發(fā)旋膳,直接定位到性能劇變的點,然后再針對該點進行性能優(yōu)化吻氧,這樣的話能夠明顯提高客戶端性能優(yōu)化的效率溺忧。

因此,我們嘗試將UI自動化測試與性能測試的結(jié)合進行了探索和實踐盯孙,設(shè)計了針對安卓的性能自動化測試平臺鲁森。平臺以文漫的幾個產(chǎn)品為例,進行了性能自動化測試的初步實踐振惰。

二歌溉、性能測試結(jié)合UI自動化

UI自動化測試:一大特點是UI測試,也就是模擬用戶的真實操作骑晶,另一大特點就是自動化痛垛,自動化的過程完全可以拿到用戶在哪一秒做了什么操作。將性能測試與UI自動化測試結(jié)合起來桶蛔,我們能夠從用戶使用產(chǎn)品的角度出發(fā)匙头,尋找性能劇變的點。常用的安卓UI自動化框架有很多仔雷,我們選擇使用較穩(wěn)定的Appium進行UI自動化測試蹂析。

Battery Historian:性能數(shù)據(jù)的采集也是關(guān)鍵步驟,Battery Historian是Google提供的通過可視化圖形界面展示電量等各種性能數(shù)據(jù)的工具碟婆,我們可以通過adb bugreport命令拿到性能文檔电抚,然后通過Battery Historian進行性能數(shù)據(jù)的圖形化展示。

因而竖共,我們設(shè)計的針對安卓的性能自動化測試平臺蝙叛,就是將性能測試(Battery Historian)與UI自動化測試(Appium)結(jié)合起來。

三公给、性能自動化測試平臺簡介

文漫組主要是四個產(chǎn)品借帘,閱讀、漫畫淌铐、蝸牛和lofter肺然,我們將性能自動化測試首先應(yīng)用在本組的四個產(chǎn)品上。由于平臺第一期匣沼,我們的UI自動化用例選取了每個產(chǎn)品最核心的功能來測試,如閱讀是閱讀書籍5分鐘捂龄,蝸牛閱讀書籍5分鐘释涛,漫畫是閱讀漫畫5分鐘加叁,lofter是瀏覽首頁資訊5分鐘。adb bugreport需要用真機測試才可以獲得有效的性能數(shù)據(jù)唇撬,尤其是電量數(shù)據(jù)它匕,于是我們使用adb wifi脫機執(zhí)行UI自動化測試。
平臺操作:點擊某一個按鈕開始對應(yīng)的產(chǎn)品UI自動化測試窖认,執(zhí)行完成后點擊“觀看報告”豫柬,即可在下方查看Battery Historian解析出來的性能數(shù)據(jù)。
平臺展示如下:
上半部分是進行UI自動化產(chǎn)品選擇的按鈕扑浸,執(zhí)行完UI自動化后烧给,可以點擊觀看報告,進而下半部分展示具體的性能數(shù)據(jù)喝噪。由于我們目前主要關(guān)注的是電量數(shù)據(jù)础嫡,將其他cpu等數(shù)據(jù)進行了暫時的屏蔽。


具體操作過程如下圖所示:


UItestSmall.gif
圖一:性能自動化測試平臺操作

我們這里進行的場景文件的錄制和性能數(shù)據(jù)的結(jié)合酝惧,可以在坐標(biāo)圖中展示出在哪一時刻做了什么操作榴鼎,也就是下圖浮層中展示的“此刻操作:xxx”,下圖三中給出的是在性能劇變(電量發(fā)生下降)的點進行了查看晚唇,進行的操作可以明顯看到巫财。


圖二:場景文件與性能數(shù)據(jù)結(jié)合的展示

圖三:場景文件與性能數(shù)據(jù)結(jié)合的展示

Battery Historian還提供了從系統(tǒng)整體角度和獨立的app進程角度進行的電量等性能分析,可以通過平臺查看報告點擊后下拉頁面查看哩陕,下圖四就是系統(tǒng)性能整體數(shù)據(jù)平项,而下圖五則是選擇網(wǎng)易云閱讀的進程性能數(shù)據(jù)。


圖四:系統(tǒng)性能整體數(shù)據(jù)

圖五:網(wǎng)易云閱讀的進程性能數(shù)據(jù)

四萌踱、性能自動化測試平臺的基本框架

我們在服務(wù)器上搭建了兩個web服務(wù)器葵礼,分別是tomcat與go服務(wù)器,因為Battery Historian是用go語言實現(xiàn)的服務(wù)并鸵,我們就另起了一臺tomcat進行平臺基本功能的開發(fā)鸳粉,而核心的bugreport數(shù)據(jù)則由Battery Historian服務(wù)器解析。
如下圖所示园担,tomcat服務(wù)器前段頁面主要是進行測試請求和結(jié)果展示届谈,而后端Servlet則處理進行環(huán)境檢查、執(zhí)行UI自動化腳本弯汰、生成自動化場景文件以及生成Bugreport報告艰山。而go服務(wù)器的后端負(fù)責(zé)解析核心bugreport報告和scene場景文件,并將其進行拼接傳給前端頁面予以展示咏闪。


圖四:性能自動化測試平臺基本框架

平臺實現(xiàn)的技術(shù)難點主要有幾個:

  1. 脫機進行UI自動化測試曙搬。因為使用數(shù)據(jù)線進行充電的話,電量數(shù)據(jù)等數(shù)據(jù)并非反映真實的性能情況。我們選擇adb wifi進行了真機的脫機UI自動化測試纵装。
  2. 平臺接口處理復(fù)雜終端操作征讲。我們使用shell腳本進行,結(jié)合gradle的命令行執(zhí)行UI自動化用例橡娄。
  3. Battery Historian處理場景文件诗箍。我們改造了原生的Battery Historian,對其做了再次開發(fā)挽唉,將處理場景文件的功能加了進去滤祖。

五、后續(xù)平臺發(fā)展與展望

因為目前平臺第一期主要做了是文漫幾個產(chǎn)品的實踐,且把UI自動化用例都進行了固定,為目前用戶最主要操作的核心功能草雕。后期在平臺優(yōu)化方面可做的地方有許多:UI自動化用例的選擇(希望支持自定義測試用例)拭荤;產(chǎn)品不做限制,任何產(chǎn)品都可以上傳包并產(chǎn)生性能數(shù)據(jù);性能文件的保存,前后多個性能文件的對比。

目前平臺的功能比較單一有限首昔,這是我們將性能測試和UI自動化測試結(jié)合思路的一次實踐,后面希望可以通過優(yōu)化平臺糙俗,包括自定義測試用例勒奇、產(chǎn)品應(yīng)用廣泛化、性能數(shù)據(jù)的對比等巧骚,使性能自動化平臺在性能測試中發(fā)揮更大的作用赊颠。

有其他問題、想法或者建議的話可聯(lián)系我或者劉勝hzliusheng@corp.netease.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劈彪,一起剝皮案震驚了整個濱河市竣蹦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沧奴,老刑警劉巖痘括,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滔吠,居然都是意外死亡纲菌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門疮绷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翰舌,“玉大人,你說我怎么就攤上這事冬骚∫渭” “怎么了懂算?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庇麦。 經(jīng)常有香客問我犯犁,道長,這世上最難降的妖魔是什么女器? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮住诸,結(jié)果婚禮上驾胆,老公的妹妹穿的比我還像新娘。我一直安慰自己贱呐,他們只是感情好丧诺,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奄薇,像睡著了一般驳阎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馁蒂,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天呵晚,我揣著相機與錄音,去河邊找鬼沫屡。 笑死饵隙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沮脖。 我是一名探鬼主播金矛,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼勺届!你這毒婦竟也來了驶俊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤免姿,失蹤者是張志新(化名)和其女友劉穎饼酿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體养泡,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡嗜湃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了澜掩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片购披。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肩榕,靈堂內(nèi)的尸體忽然破棺而出刚陡,到底是詐尸還是另有隱情惩妇,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布筐乳,位于F島的核電站歌殃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝙云。R本人自食惡果不足惜氓皱,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勃刨。 院中可真熱鬧波材,春花似錦、人聲如沸身隐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贾铝。三九已至隙轻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垢揩,已是汗流浹背玖绿。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叁巨,地道東北人镰矿。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像俘种,于是被迫代替她去往敵國和親秤标。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

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