移動(dòng)端弱網(wǎng)測(cè)試實(shí)踐

弱網(wǎng)測(cè)試作為健壯性測(cè)試的重要部分据过,對(duì)于移動(dòng)端測(cè)試來(lái)說(shuō)必不可少绳锅。這是因?yàn)槟壳耙苿?dòng)端產(chǎn)品的使用用戶所處的網(wǎng)絡(luò)并非完全的流暢WIFI環(huán)境酝掩,仍有相當(dāng)體量的用戶主要使用4G、3G原朝、2G等網(wǎng)絡(luò),另外因移動(dòng)端產(chǎn)品使用場(chǎng)景多變鞠评,如進(jìn)地鐵壕鹉、上公交、進(jìn)電梯等晾浴,使得弱網(wǎng)測(cè)試顯得尤為重要脊凰。畢竟考慮到各種場(chǎng)景的客戶端展示及容錯(cuò),能極大提升產(chǎn)品印象和用戶體驗(yàn)钉答。

一、弱網(wǎng)測(cè)試的思路篇

弱網(wǎng)測(cè)試概要思路

總結(jié)了下(如上圖所示),弱網(wǎng)測(cè)試主要進(jìn)行特殊網(wǎng)絡(luò)狀態(tài)下的功能測(cè)試同時(shí)關(guān)注用戶體驗(yàn)惶楼,具體來(lái)說(shuō)诊杆,弱網(wǎng)測(cè)試包括弱網(wǎng)功能測(cè)試、無(wú)網(wǎng)狀態(tài)測(cè)試豹储、網(wǎng)絡(luò)切換測(cè)試等淘这,測(cè)試的同時(shí)關(guān)注用戶體驗(yàn)的諸多方面。

1.弱網(wǎng)功能測(cè)試

這一部分主要是在各種非wifi網(wǎng)絡(luò)環(huán)境下進(jìn)行的功能測(cè)試钠怯,同時(shí)模擬高延時(shí)和高丟包的異常網(wǎng)絡(luò)環(huán)境進(jìn)行健壯性測(cè)試曙聂。2G/3G/4G的網(wǎng)絡(luò)可以通過(guò)使用電話卡移動(dòng)/聯(lián)通/電信等網(wǎng)絡(luò)進(jìn)行模擬晦炊,關(guān)注頁(yè)面的響應(yīng)時(shí)間、頁(yè)面呈現(xiàn)是否完整一致等。高延遲和高丟包的網(wǎng)絡(luò)環(huán)境需要借助工具來(lái)模擬断国,在windows環(huán)境下可以使用fiddler和network emulator for windows toolkit來(lái)模擬贤姆,在mac環(huán)境下則可以使用charles和Xcode自帶的開(kāi)發(fā)環(huán)境網(wǎng)絡(luò)異常模擬工具進(jìn)行。工具的使用在工具篇具體介紹稳衬。
弱網(wǎng)功能測(cè)試建議將整體的功能測(cè)試用例在弱網(wǎng)環(huán)境下進(jìn)行一輪測(cè)試霞捡,相同模塊下的功能可以分多個(gè)網(wǎng)絡(luò)條件進(jìn)行測(cè)試。這部分發(fā)現(xiàn)的問(wèn)題可能會(huì)有:頁(yè)面圖片在弱網(wǎng)環(huán)境下加載不出來(lái)(圖片加載邏輯需優(yōu)化)宋彼、需要模版的頁(yè)面版式結(jié)構(gòu)混亂(模版文件在弱網(wǎng)環(huán)境的加載需優(yōu)化)弄砍、頁(yè)面響應(yīng)時(shí)間較長(zhǎng)沒(méi)有任何顯示(頁(yè)面顯示邏輯待優(yōu)化音婶、重試機(jī)制加入)等莱坎。

2.無(wú)網(wǎng)狀態(tài)測(cè)試

無(wú)網(wǎng)狀態(tài)測(cè)試則是在切段網(wǎng)絡(luò)的情況下進(jìn)行的測(cè)試檐什,主要關(guān)注頁(yè)面的顯示與交互乃正、本地?cái)?shù)據(jù)的存儲(chǔ)、斷網(wǎng)功能的使用等荧飞,經(jīng)常該部分也需要與網(wǎng)絡(luò)切換部分協(xié)同進(jìn)行叹阔。通常來(lái)說(shuō)耳幢,(1)斷網(wǎng)情況下請(qǐng)求一個(gè)非本地?cái)?shù)據(jù)的頁(yè)面需要設(shè)定一定的時(shí)間等待上限睛藻,及時(shí)提示網(wǎng)絡(luò)異常以及提示重試堂油;(2)斷網(wǎng)情況下請(qǐng)求一個(gè)部分本地?cái)?shù)據(jù)的頁(yè)面需要觀察本地?cái)?shù)據(jù)的部分是否加載顯示正常府框,待請(qǐng)求的部分是否符合交互給的缺省樣式一致;(3)斷網(wǎng)情況下請(qǐng)求一個(gè)完全本地?cái)?shù)據(jù)的頁(yè)面是否顯示正常院峡。這里還需考慮本地?cái)?shù)據(jù)存儲(chǔ)的情況照激,有些需要聯(lián)網(wǎng)后上報(bào)服務(wù)器的數(shù)據(jù)本地是否正確存儲(chǔ)俩垃,聯(lián)網(wǎng)后這些數(shù)據(jù)能否正常上報(bào)口柳。
無(wú)網(wǎng)狀態(tài)測(cè)試建議按照頁(yè)面劃分進(jìn)行,針對(duì)每個(gè)頁(yè)面單獨(dú)測(cè)試無(wú)網(wǎng)狀態(tài)的顯示嵌削,頁(yè)面間跳轉(zhuǎn)的顯示苛秕,頁(yè)面內(nèi)功能的點(diǎn)擊和顯示艇劫,同時(shí)關(guān)注無(wú)網(wǎng)到有網(wǎng)時(shí)的頁(yè)面恢復(fù)顯示狀態(tài)港准、數(shù)據(jù)上報(bào)情況是否正常。

3.網(wǎng)絡(luò)切換測(cè)試

這部分主要是進(jìn)行幾個(gè)不同網(wǎng)絡(luò)場(chǎng)景的切換魄咕,包括wifi-2G/3G/4G蚌父、wifi-無(wú)網(wǎng)苟弛、2G/3G/4G-wifi膏秫、2G/3G/4G-無(wú)網(wǎng)、無(wú)網(wǎng)-2G/3G/4G吹榴、無(wú)網(wǎng)-wifi等滚婉。主要關(guān)注頁(yè)面的顯示與交互,尤其是弱網(wǎng)到wifi远剩,wifi到弱網(wǎng)的情況瓜晤,是否會(huì)有頁(yè)面的crash以及顯示的錯(cuò)亂活鹰、session是否一致志群、請(qǐng)求堆積處理等锌云。

4.用戶體驗(yàn)關(guān)注

弱網(wǎng)測(cè)試的目的就是盡可能保證用戶體驗(yàn)桑涎,關(guān)注的關(guān)鍵點(diǎn)包括:
(1)頁(yè)面響應(yīng)時(shí)間是否可接受攻冷,關(guān)注包括熱啟動(dòng)遍希、冷啟動(dòng)時(shí)間凿蒜,頁(yè)面切換废封,前后臺(tái)切換漂洋,首字時(shí)間,首屏?xí)r間等渴肉。
(2)頁(yè)面呈現(xiàn)是否完整一致
(3)超時(shí)文案是否符合定義仇祭,異常信息是否顯示正常乌奇。
(4)是否會(huì)有超時(shí)重連
(5)安全角度:是否會(huì)發(fā)生dns劫持礁苗、登錄ip更換頻繁试伙、單點(diǎn)登錄異常等。
(6)大流量事件風(fēng)險(xiǎn):是否會(huì)在弱網(wǎng)下進(jìn)行更新apk包潘靖、下載文件等大流量動(dòng)作卦溢。

二单寂、弱網(wǎng)測(cè)試的工具篇

在安卓產(chǎn)品測(cè)試的過(guò)程中宣决,使用到的弱網(wǎng)測(cè)試工具主要是fiddler模擬網(wǎng)絡(luò)延遲疲扎,以及network emulation for windows toolkit模擬網(wǎng)絡(luò)丟包場(chǎng)景。MAC環(huán)境下的charles等抓包工具的實(shí)現(xiàn)原理是相同的救巷。這里主要介紹下安卓弱網(wǎng)測(cè)試場(chǎng)景下使用到的工具浦译。

1.fiddler

fiddler主要是使用Rules->Performance->Simulate Modem Speeds功能進(jìn)行的網(wǎng)絡(luò)延遲模擬精盅,點(diǎn)擊Rules->Customize Rules進(jìn)行設(shè)置,打開(kāi)自定義腳本編輯器妻枕,如下圖所示:


紅框內(nèi)標(biāo)出的就是設(shè)置延遲時(shí)可以操作的上行和下行網(wǎng)絡(luò)延遲時(shí)間,意為每上傳/下載1KB的數(shù)據(jù)要延遲多少毫秒愕掏。這里我把請(qǐng)求(上行)時(shí)間延遲設(shè)置為3000ms顶伞,響應(yīng)(下行)時(shí)間延遲設(shè)置為1000ms(模擬了2G網(wǎng)絡(luò)的速度)唆貌。
這里通過(guò)計(jì)算上行和下行的網(wǎng)絡(luò)延遲時(shí)間挠锥,可以模擬出想要的網(wǎng)絡(luò)效果蓖租。利用 (1KB/下載速度)x1000 = 要delay的毫秒數(shù) 來(lái)計(jì)算蓖宦。比如我們要模擬2G的網(wǎng)絡(luò)稠茂。2G網(wǎng)絡(luò)上行和下行的網(wǎng)絡(luò)速度如下圖所示:



我們看到在各種制式下上行速度都是2.7kb/s诱担,下行速度是9.6kb/s蔫仙,根據(jù)1KB=8kb摇邦,可以計(jì)算出上行延遲為(1/(2.7/8))x1000=2962ms ,同理下行延遲未(1/(2.7/8))x1000=833ms。這里我取了近似整值3000ms和1000ms居扒,模擬了2G網(wǎng)絡(luò)喜喂。同理也可以通過(guò)計(jì)算模擬3G網(wǎng)絡(luò)夜惭,附3G網(wǎng)絡(luò)制式及速度圖如下:



設(shè)置完成后,在fiddler里將Rules->Performance->Simulate Modem Speeds選中即可使設(shè)置生效敢会。
2.Network Emulation for Windows Toolkit

fiddler只能設(shè)置延遲鸥昏,無(wú)法進(jìn)行丟包的設(shè)置吏垮。在windows上有個(gè)簡(jiǎn)單易用的工具Network Emulation for Windows Toolkit可以用來(lái)設(shè)置網(wǎng)絡(luò)丟包情況膳汪。設(shè)置丟包有兩個(gè)關(guān)鍵步驟遗嗽,一是設(shè)置電腦網(wǎng)絡(luò)固棚,二是將移動(dòng)設(shè)備接入電腦共享的網(wǎng)絡(luò)。詳細(xì)看下每個(gè)步驟:
(1)設(shè)置電腦網(wǎng)絡(luò)
工具簡(jiǎn)單界面如下所示:


最上方是本地應(yīng)用锤躁,最下方的本地網(wǎng)絡(luò)。中間的兩塊區(qū)域上部分需要建立鏈路椒振,下部分可以對(duì)特定IP進(jìn)行過(guò)濾澎迎。因?yàn)槲覀冃枰M(jìn)行的是網(wǎng)絡(luò)丟包設(shè)置夹供,所以過(guò)濾器這邊就可以不做設(shè)定哮洽。我們點(diǎn)擊頂部菜單欄Configuration->New Filter鸟辅,在彈出的設(shè)置框里點(diǎn)擊Add匪凉,新增一個(gè)過(guò)濾器再层,如下圖所示:

接著點(diǎn)擊Configuration->New Link新增一條鏈路聂受,此時(shí)界面顯示如下:


我們沒(méi)有對(duì)網(wǎng)絡(luò)做任何限制饺饭,此時(shí)網(wǎng)絡(luò)是暢通的瘫俊,ping一下看:


果然沒(méi)有任何丟失,且無(wú)超時(shí)發(fā)生积瞒。
此時(shí)我們?cè)O(shè)置網(wǎng)絡(luò)丟包茫孔,在新建鏈路點(diǎn)擊右鍵,選擇Upstream設(shè)置上行網(wǎng)絡(luò)畔濒。這里我們?cè)O(shè)置了隨機(jī)丟包率為40%:

同理也可以設(shè)置下行網(wǎng)絡(luò)侵状。設(shè)置完成后要點(diǎn)擊Action->Start開(kāi)始使設(shè)置生效趣兄。生效后我們?cè)賮?lái)ping一下網(wǎng)絡(luò)看看:


可以看到此時(shí)有丟包和超時(shí)發(fā)生了。
除了設(shè)置隨機(jī)丟包率承粤,我們也可以設(shè)置周期丟包率辛臊、引入錯(cuò)誤等網(wǎng)絡(luò)異常情況彻舰。甚至也可以設(shè)置延時(shí)刃唤∩邪總之該工具在弱網(wǎng)測(cè)試中可用性還是很強(qiáng)笼裳。
(2)移動(dòng)端設(shè)備接入電腦網(wǎng)絡(luò)
設(shè)置完P(guān)C端網(wǎng)絡(luò)環(huán)境躬柬,由于我們是移動(dòng)端設(shè)備允青,需要移動(dòng)端設(shè)備接入PC的網(wǎng)絡(luò),因而需要做網(wǎng)絡(luò)共享史汗。當(dāng)PC有無(wú)線網(wǎng)卡的情況下淹办,可以首先利用無(wú)線網(wǎng)卡共享有線網(wǎng)絡(luò)的數(shù)據(jù),然后利用Connectify或者360wifi等共享wifi工具谤牡,讓移動(dòng)端設(shè)備共享PC的網(wǎng)絡(luò)翅萤。當(dāng)PC沒(méi)有無(wú)線網(wǎng)卡的情況下(我們的辦公PC就沒(méi)有網(wǎng)卡--)套么,安卓端手機(jī)可以使用usb連接電腦使用PC的網(wǎng)絡(luò)胚泌。這里有個(gè)簡(jiǎn)單易行的辦法玷室,就是使用小米手機(jī)助手的一鍵開(kāi)啟共享上網(wǎng)功能(當(dāng)然了目前只能支持共享給小米手機(jī)穷缤,且系統(tǒng)安卓版本低于6.0)津肛。在電腦上安裝小米手機(jī)助手身坐,小米手機(jī)通過(guò)usb開(kāi)啟usb調(diào)試連接電腦掀亥,就可以共享電腦的網(wǎng)絡(luò)了搪花。如下圖所示:


點(diǎn)擊一鍵開(kāi)啟后吮便,可以看到小米手機(jī)的網(wǎng)絡(luò)全部關(guān)閉幢踏,此時(shí)設(shè)備使用的就是電腦共享出來(lái)的網(wǎng)絡(luò)。
至于非小米手機(jī)的其他設(shè)備僚匆,也可以使用usb線連接電腦共享其網(wǎng)絡(luò)咧擂∷缮辏可參考網(wǎng)上的設(shè)置教程贸桶。
總之皇筛,弱網(wǎng)測(cè)試作為健壯性測(cè)試的一種设联,是測(cè)試過(guò)程中必不可少的重要環(huán)節(jié)离例」考慮到弱網(wǎng)測(cè)試的各項(xiàng)要點(diǎn)以及合理使用各項(xiàng)工具模擬出復(fù)雜耀盗、嚴(yán)苛的網(wǎng)絡(luò)環(huán)境叛拷,能極大提高產(chǎn)品的可用性忿薇,保證產(chǎn)品上線后應(yīng)對(duì)各種應(yīng)用場(chǎng)景的使用質(zhì)量署浩。以上是我在安卓產(chǎn)品弱網(wǎng)測(cè)試過(guò)程中總結(jié)出的一點(diǎn)經(jīng)驗(yàn)筋栋,還有許多未考慮周全的測(cè)試點(diǎn)抢腐,還需要在后續(xù)的測(cè)試中繼續(xù)加強(qiáng)經(jīng)驗(yàn)和總結(jié)氓栈,與大家共同探討。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末竟宋,一起剝皮案震驚了整個(gè)濱河市丘侠,隨后出現(xiàn)的幾起案子蜗字,更是在濱河造成了極大的恐慌挪捕,老刑警劉巖级零,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奏纪,死亡現(xiàn)場(chǎng)離奇詭異序调,居然都是意外死亡发绢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門默垄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)口锭,“玉大人鹃操,你說(shuō)我怎么就攤上這事荆隘∫埽” “怎么了燃观?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)到涂。 經(jīng)常有香客問(wèn)我践啄,道長(zhǎng),這世上最難降的妖魔是什么箫爷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮衩婚,結(jié)果婚禮上非春,老公的妹妹穿的比我還像新娘。我一直安慰自己敌完,他們只是感情好羊初,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布晦攒。 她就那樣靜靜地躺著脯颜,像睡著了一般栋操。 火紅的嫁衣襯著肌膚如雪讼庇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天戈锻,我揣著相機(jī)與錄音格遭,去河邊找鬼拒迅。 笑死璧微,一個(gè)胖子當(dāng)著我的面吹牛前硫,可吹牛的內(nèi)容都是我干的屹电。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼牧愁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼猪半!你這毒婦竟也來(lái)了办龄?” 一聲冷哼從身側(cè)響起俐填,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驶悟,沒(méi)想到半個(gè)月后痕鳍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體笼呆,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诗赌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叼屠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片环鲤。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冷离,死狀恐怖西剥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揪阿,我是刑警寧澤南捂,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站钮蛛,受9級(jí)特大地震影響魏颓,放射性物質(zhì)發(fā)生泄漏沦童。R本人自食惡果不足惜偷遗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一瞭吃、第九天 我趴在偏房一處隱蔽的房頂上張望浆洗。 院中可真熱鬧妨马,春花似錦偿凭、人聲如沸酱床。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舷手。三九已至男窟,卻和暖如春歉眷,著一層夾襖步出監(jiān)牢的瞬間汗捡,已是汗流浹背畏纲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工台囱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留读整,地道東北人米间。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓屈糊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親夫晌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晓淀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • 最近在搞一個(gè)智能穿戴項(xiàng)目。手環(huán)手表等智能穿戴項(xiàng)目中最核心的功能是運(yùn)動(dòng)計(jì)步功能蜈亩。 計(jì)步功能的業(yè)務(wù)邏輯是主要流程是通過(guò)...
    Dodol閱讀 3,639評(píng)論 1 22
  • 【背景】 弱網(wǎng)測(cè)試畅涂,屬于健壯性測(cè)試的內(nèi)容毅戈。隨著國(guó)內(nèi)移動(dòng)端迅猛發(fā)展苇经,大大增加用戶碎片化使用移動(dòng)端的概率扇单。想象一下蜘澜,用...
    siyu8023閱讀 23,492評(píng)論 3 33
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理鄙信,服務(wù)發(fā)現(xiàn)装诡,斷路器鸦采,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 實(shí)際生活中,電梯里 or 地鐵里 模擬用戶體驗(yàn)測(cè)試是個(gè)不錯(cuò)的選擇 【實(shí)際操作】具有代理服務(wù)器功能的網(wǎng)絡(luò)流量分析軟件...
    有錢且幸福閱讀 25,009評(píng)論 4 14
  • 海芬/畫(huà) 堅(jiān)持學(xué)畫(huà)鋼筆畫(huà)顶霞,我的花鳥(niǎo)系列
    海語(yǔ)天籟閱讀 427評(píng)論 4 15