『言善信』Fiddler工具 — 17.Fiddler進(jìn)行弱網(wǎng)測試

1选泻、什么是弱網(wǎng)測試

從測試角度來說,需要額外關(guān)注的場景遠(yuǎn)不止斷網(wǎng)、網(wǎng)絡(luò)故障等情況滔金,還需要關(guān)注弱網(wǎng)情況下測試色解。

弱網(wǎng)測試屬于健壯性測試的內(nèi)容。隨著國內(nèi)移動端迅猛發(fā)展餐茵,大大增加用戶碎片化使用使用APP的科阎。想象一下,用戶在地鐵里忿族,甚至是電梯锣笨,車庫等場景使用APP,我們就需要針對這些場景的弱網(wǎng)環(huán)境下道批,驗(yàn)證出現(xiàn)丟包错英、延時軟件的處理機(jī)制,避免因用戶體驗(yàn)不友好造成用戶的流失隆豹。

2椭岩、弱網(wǎng)環(huán)境的影響

  1. 用戶體驗(yàn)。

    用戶使用過程中璃赡,弱網(wǎng)的高延遲和高丟包判哥,在實(shí)時性要求非常高的場景,容易傷害用戶體驗(yàn)碉考。

  2. 非正常情況下塌计,出現(xiàn)bug概率會增加。

    在解決日常的支持需求中侯谁,經(jīng)常會遇到用戶反饋一些無法簡單復(fù)現(xiàn)的bug锌仅,有很大一部分的bug是由于用戶自身的網(wǎng)絡(luò)環(huán)境波動,或者是本身網(wǎng)絡(luò)環(huán)境就較為惡劣墙贱,而服務(wù)在面對這些惡劣的網(wǎng)絡(luò)環(huán)境的健壯性不夠热芹,導(dǎo)致會出現(xiàn)一些意想不到的bug。

3惨撇、弱網(wǎng)環(huán)境測試場景

  1. 場景:測試弱網(wǎng)環(huán)境下某個操作響應(yīng)時間

    原因:用戶對等待時間容忍度低剿吻,若弱網(wǎng)環(huán)境加載超過5s,用戶很容易kill應(yīng)用后再次進(jìn)入應(yīng)用串纺。

    測試點(diǎn):性能測試中,加入弱網(wǎng)環(huán)境測試點(diǎn)椰棘,檢測各個場景網(wǎng)絡(luò)請求的 API 消耗時間(此處可以放入性能測試中纺棺,做為衡量軟件性能好壞的指標(biāo))。

  2. 場景:測試弱網(wǎng)環(huán)境下直至超時邪狞,UI界面友好度和APP是否穩(wěn)定祷蝌。

    原因:容錯機(jī)制主要是考慮弱網(wǎng)情況下帶來的不穩(wěn)定,常見的問題是:loading超時導(dǎo)致ANR(無響應(yīng))或者crash宕機(jī)帆卓。

    測試點(diǎn):弱網(wǎng)環(huán)境直至超時巨朦,判定為斷網(wǎng)狀態(tài)米丘,UI界面和提示,友好且理解無歧義糊啡。

  3. 場景:測試斷網(wǎng)后環(huán)境下拄查,是否自動重發(fā)請求。

    原因:不同模塊棚蓄,開發(fā)對請求處理不同堕扶。測試前可了解,代碼是否支持自動重復(fù)請求梭依,自動重發(fā)請求的頻率是什么稍算?

    測試點(diǎn):斷網(wǎng)后恢復(fù)網(wǎng)絡(luò),是否堆積網(wǎng)絡(luò)請求(目前來說理財(cái)模塊役拴,當(dāng)10s左右無返回糊探,則會重發(fā)請求),此時請求和返回正常情況下河闰,是否出現(xiàn)異常情況科平。比如一次支付操作,斷網(wǎng)后堆積多個支付請求淤击,恢復(fù)網(wǎng)絡(luò)后因堆積多個支付請求匠抗,是否完成多次支付。

    ps:斷網(wǎng)后恢復(fù)網(wǎng)絡(luò)污抬,考慮APP進(jìn)行操作目的是否對傷害用戶體驗(yàn)汞贸,通過哪種手段可以達(dá)到操作目的,同時用戶體驗(yàn)無感或者低傷害印机。

還有很多弱網(wǎng)測試的場景矢腻,就不一一列舉了。

4射赛、使用Fiddler進(jìn)行弱網(wǎng)測試

(1)Fiddler模擬弱網(wǎng)環(huán)境

Fiddler模擬弱網(wǎng)環(huán)境是非常簡單的多柑,操作如下:

Rules菜單 —> Performance —> 勾選Simulate Modem Speeds

勾選之后訪問網(wǎng)站會發(fā)現(xiàn)網(wǎng)絡(luò)慢了很多楣责,不需要進(jìn)行重啟Fiddler竣灌。

(2)設(shè)置弱網(wǎng)的參數(shù)

菜單Rules —> Cutomize Rules...,來打開CustomRules.js文件秆麸。

在文件中搜索關(guān)鍵字m_SimulateModem初嘹。

讓我們來分析一下這幾行代碼:

if (m_SimulateModem) {
            // Delay sends by 300ms per KB uploaded.
            oSession["request-trickle-delay"] = "300"; 
            // Delay receives by 150ms per KB downloaded.
            oSession["response-trickle-delay"] = "150"; 
        }
  • m_SimulateModem:表示一個開關(guān)flag。

    當(dāng)Rules菜單 —> Performance —> Simulate Modem Speeds是勾選狀態(tài)沮趣,則flag=true屯烦,就進(jìn)入這段代碼,開啟弱網(wǎng)。如果Simulate Modem Speeds不是勾選狀態(tài)驻龟,則反之温眉。

  • oSession["request-trickle-delay"] = "300";表示限制上傳速度。

    注釋說的也很明白:上傳1KB內(nèi)容需要300ms翁狐,轉(zhuǎn)化一下上傳速度:1Kb/0.3s = 3.3KB/s类溢,也就是說網(wǎng)絡(luò)上行速度只有3.3KB/S

  • oSession["response-trickle-delay"] = "150";表示限制下載速度谴蔑。

    說明:下載1KB內(nèi)容需要150ms豌骏,轉(zhuǎn)化后的下載速度:1KB/0.15s=6.6KB/s,也就是說網(wǎng)絡(luò)下載速度只有6.6KB/S

  • 總結(jié):我們就修改最后的數(shù)據(jù)就可以隐锭,數(shù)值越大網(wǎng)絡(luò)越慢窃躲。

(3)進(jìn)行弱網(wǎng)測試對比

1)先用正常的網(wǎng)速發(fā)送請求

例如方位:http://test.lemonban.com/ningmengban/app/login/login.html

抓取結(jié)果如下:

2)開啟弱網(wǎng)環(huán)境發(fā)送請求

Rules菜單 —> Performance —> 勾選Simulate Modem Speeds

可以看到比正常網(wǎng)速發(fā)送請求慢了很多钦睡。我這里使用的是默認(rèn)配置蒂窒,如果需要調(diào)整弱網(wǎng)的程度,可以自行調(diào)整弱網(wǎng)參數(shù)荞怒。

(4)恢復(fù)設(shè)置

完成測試之后洒琢,需要再次執(zhí)行:Rules菜單 —> Performance —> 勾選Simulate Modem Speeds,關(guān)閉弱網(wǎng)模擬褐桌。

5衰抑、補(bǔ)充:TimeTaken/ms列配置

TimeTaken/ms列是計(jì)算完成請求的用時。

配置方法:

Rules菜單 —> Custome Rules荧嵌,搜索class Handlers呛踊。

加在class Handlers里面添加,如下代碼:

//左側(cè)信息會顯示時間
public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
    var sResult = "0";
    //獲得時間戳的ms值
    var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
    //獲得時間戳的minute值
    var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
    //獲得時間戳的second值
    var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second;
    var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms ;

    var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond;
    var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute;
    var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;
    var t2 = t2_m*60*1000 + t2_s*1000 + t2_ms ;

    if(t1 >= t2){
        var t3 =  t1 - t2;
        sResult = t3.toString();
    }
    return sResult;
}

提示:不想配置TimeTaken/ms列也可以啦撮,在Statistics界面進(jìn)行查看也行谭网。

參考:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赃春,隨后出現(xiàn)的幾起案子愉择,更是在濱河造成了極大的恐慌,老刑警劉巖织中,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锥涕,死亡現(xiàn)場離奇詭異,居然都是意外死亡狭吼,警方通過查閱死者的電腦和手機(jī)站楚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搏嗡,“玉大人,你說我怎么就攤上這事〔珊校” “怎么了旧乞?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長磅氨。 經(jīng)常有香客問我尺栖,道長,這世上最難降的妖魔是什么烦租? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任延赌,我火速辦了婚禮,結(jié)果婚禮上叉橱,老公的妹妹穿的比我還像新娘挫以。我一直安慰自己,他們只是感情好窃祝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布掐松。 她就那樣靜靜地躺著,像睡著了一般粪小。 火紅的嫁衣襯著肌膚如雪大磺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天探膊,我揣著相機(jī)與錄音杠愧,去河邊找鬼。 笑死逞壁,一個胖子當(dāng)著我的面吹牛流济,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猾担,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼袭灯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绑嘹?” 一聲冷哼從身側(cè)響起稽荧,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎工腋,沒想到半個月后姨丈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡擅腰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年蟋恬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趁冈。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡歼争,死狀恐怖拜马,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沐绒,我是刑警寧澤俩莽,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站乔遮,受9級特大地震影響扮超,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹋肮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一出刷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坯辩,春花似錦馁龟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至有送,卻和暖如春淌喻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雀摘。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工裸删, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阵赠。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓涯塔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親清蚀。 傳聞我的和親對象是個殘疾皇子匕荸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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