實(shí)際生活中,電梯里 or 地鐵里 模擬用戶體驗(yàn)測(cè)試是個(gè)不錯(cuò)的選擇
【實(shí)際操作】具有代理服務(wù)器功能的網(wǎng)絡(luò)流量分析軟件
一尽楔、Charles
通過(guò)抓包工具Charles(如何配置Charles)忘古,設(shè)置延遲趣苏,進(jìn)行模擬不同的網(wǎng)絡(luò)情況
配置好Charles后底扳,正常聯(lián)網(wǎng)草慧,選擇throttle settings 設(shè)置弱網(wǎng)環(huán)境
Throttle Settings
Throttle preset 選擇弱網(wǎng)環(huán)境目標(biāo):2G或者3G
ps:也可在在Bandwidth(帶寬)中選擇上傳桌肴、下載數(shù)值
二瘪撇、Flidder
Fiddler是一個(gè)http協(xié)議調(diào)試代理工具,跨瀏覽器履恩、跨系統(tǒng)锰茉、跨平臺(tái)的免費(fèi)Web Debug代理服務(wù)器,它能夠記錄并檢查所有你的電腦和互聯(lián)網(wǎng)之間的http通訊切心,設(shè)置斷點(diǎn)飒筑,查看所有的“進(jìn)出”Fiddler的數(shù)據(jù)(指cookie,html,js,css等文件,這些都可以讓你胡亂修改的意思)绽昏。Fiddler 是用C#寫(xiě)出來(lái)的,它包含一個(gè)簡(jiǎn)單卻功能強(qiáng)大的基于JScript .NET 事件腳本子系統(tǒng)协屡,目前無(wú)法再mac OS上適用,可以在win上使用全谤。
Fiddler界面說(shuō)明
1.抓包
PC端設(shè)置網(wǎng)絡(luò)—》手機(jī)端使用PC端網(wǎng)絡(luò)代理
1)查找本機(jī)PC端網(wǎng)絡(luò)地址—》fidder options選擇connections 設(shè)置端口信息&勾選allow remote computers to connect
2)手機(jī)端在設(shè)置—》選擇手動(dòng)代理肤晓,并輸入PC端網(wǎng)絡(luò)代理
選擇Fiddler Options
勾選Allow remote computers to connect
3)網(wǎng)絡(luò)連接成功,則在移動(dòng)端使用目標(biāo)URL或者使用應(yīng)用,得到請(qǐng)求和返回信息
4)設(shè)置斷點(diǎn)
A?fiddler菜單欄->rules->automatic?Breakpoints->選擇斷點(diǎn)方式补憾,這種方式下設(shè)定的斷點(diǎn)會(huì)對(duì)之后的所有HTTP請(qǐng)求有效漫萄。
有兩個(gè)斷點(diǎn)位置:
a) before?response。也就是發(fā)送請(qǐng)求之后盈匾,但是Fiddler代理中轉(zhuǎn)之前腾务,這時(shí)可以修改請(qǐng)求的數(shù)據(jù)。
b.)after?response削饵。也就是服務(wù)器響應(yīng)之后岩瘦,但是在Fiddler將響應(yīng)中轉(zhuǎn)給客戶端之前。這時(shí)可以修改響應(yīng)的結(jié)果
B ?設(shè)置響應(yīng)后斷點(diǎn)(after?response?breakpoint),可以通過(guò)命令行設(shè)置:bpafter?localhost
5)修改返回值
觀察inspector窿撬,頁(yè)面內(nèi)容出現(xiàn)變化(說(shuō)明攔截成功)
切換到textView子面板启昧,選擇需要修改的部分,然后點(diǎn)擊 “run to complete“劈伴,便可回送修改后的響應(yīng)
ps:終止斷點(diǎn)的方式有:
1> 在rules->auto?breakpoint中disabled斷點(diǎn)即可密末。
2> 在inspector界面點(diǎn)擊“run?complete“即會(huì)終止本次HTTP請(qǐng)求的斷點(diǎn)。
3>輸入Go 命令宰啦,也會(huì)使得當(dāng)前的請(qǐng)求跳過(guò)斷點(diǎn)
2.模擬弱網(wǎng)
1)Rules—》customer rules(或者ctrl+r)
選擇Customize Rules
2)Ctrl+F組合鍵調(diào)出搜索對(duì)話框苏遥,鍵入m_Simulate進(jìn)行搜索饼拍,找到如下代碼框
upload代表 上傳速度
download代表下載速度
完成設(shè)置—》保存—》點(diǎn)擊Performance-->點(diǎn)擊Simulate Modem Speeds赡模,完成弱網(wǎng)模擬功能的打開(kāi)
m_SimulateModem
完成弱網(wǎng)工具環(huán)境搭建,來(lái)梳理下弱網(wǎng)測(cè)試場(chǎng)景和測(cè)試點(diǎn)师抄。
一漓柑、【弱網(wǎng)測(cè)試場(chǎng)景】
既然APP異常測(cè)試中,弱網(wǎng)測(cè)試屬于必須考慮的測(cè)試項(xiàng)叨吮,哪些業(yè)務(wù)適合驗(yàn)證辆布,哪些不需要驗(yàn)證呢?以下是個(gè)人淺見(jiàn)茶鉴,歡迎拋磚引玉:
1.結(jié)合APP本身屬性
比如社交類(lèi)APP(聊天锋玲、搶紅包)對(duì)網(wǎng)絡(luò)環(huán)境依賴(lài)性大且用戶關(guān)注度高,弱網(wǎng)環(huán)境下需要重點(diǎn)關(guān)注涵叮。
結(jié)合互聯(lián)網(wǎng)金融APP惭蹂,申購(gòu)流程中創(chuàng)建訂單后是否支付成功,用戶關(guān)注度最高(涉及扣費(fèi))割粮。例如 弱網(wǎng)環(huán)境盾碗,創(chuàng)建訂單失敗,用戶關(guān)注是否被扣費(fèi)舀瓢;創(chuàng)建訂單成功后支付失敗廷雅,再次支付是否重復(fù)扣費(fèi)等
2.使用頻率&易遇到弱網(wǎng)的場(chǎng)景
比如微博APP【觀看小視頻】,用戶在碎片時(shí)間極易【觀看小視頻】(APP用戶喜歡使用碎片化時(shí)間進(jìn)行娛樂(lè)操作),同時(shí)增加了【刷微博】(微博小視頻和刷微博 操作場(chǎng)景重合)此處就需要加強(qiáng)弱網(wǎng)環(huán)境測(cè)試
比如金融APP航缀,用戶在碎片化時(shí)間使用金融APP商架,領(lǐng)取獎(jiǎng)品、查看理財(cái)類(lèi)新聞谬盐、查看收益
好的例子:據(jù)我所知甸私,微信的升級(jí)就會(huì)監(jiān)聽(tīng)用戶是否插著電,連著wifi飞傀,一旦監(jiān)聽(tīng)到了皇型,就馬上告訴你,現(xiàn)場(chǎng)可以升級(jí)
二砸烦、【弱網(wǎng)環(huán)境測(cè)試點(diǎn)總結(jié)】
1.場(chǎng)景:弱網(wǎng)環(huán)境下某個(gè)操作響應(yīng)時(shí)間
原因:APP用戶對(duì)等待時(shí)間容忍度低弃鸦,若弱網(wǎng)環(huán)境loading超過(guò)5s,用戶很容易kill應(yīng)用后再次進(jìn)入應(yīng)用
【測(cè)試點(diǎn)】性能測(cè)試中幢痘,加入弱網(wǎng)環(huán)境測(cè)試點(diǎn)唬格,檢測(cè)各個(gè)場(chǎng)景網(wǎng)絡(luò)請(qǐng)求的 API 消耗時(shí)間(此處可以放入性能測(cè)試中,做為衡量APP性能好壞的指標(biāo))
2.場(chǎng)景:弱網(wǎng)環(huán)境下直至超時(shí)颜说,UI界面友好度&APP是否穩(wěn)定
原因:容錯(cuò)機(jī)制主要是考慮弱網(wǎng)情況下帶來(lái)的不穩(wěn)定购岗,常見(jiàn)的問(wèn)題是:loading超時(shí)導(dǎo)致ANR or crash
【測(cè)試點(diǎn)】弱網(wǎng)環(huán)境直至超時(shí),判定為斷網(wǎng)狀態(tài)门粪,UI界面和提示喊积,友好且理解無(wú)歧義
3.場(chǎng)景:斷網(wǎng)后環(huán)境下,是否自動(dòng)重發(fā)請(qǐng)求
原因:不同模塊玄妈,開(kāi)發(fā)對(duì)請(qǐng)求處理不同乾吻。測(cè)試前可了解,代碼是否支持自動(dòng)重復(fù)請(qǐng)求拟蜻,自動(dòng)重發(fā)請(qǐng)求的頻率是什么绎签?
【測(cè)試點(diǎn)】斷網(wǎng)后恢復(fù)網(wǎng)絡(luò),是否堆積網(wǎng)絡(luò)請(qǐng)求(目前來(lái)說(shuō) 理財(cái)模塊 當(dāng)10s左右無(wú)返回 則會(huì)重發(fā)請(qǐng)求)酝锅,此時(shí)請(qǐng)求和返回正常情況下诡必,是否出現(xiàn)異常情況。比如1次支付操作搔扁,斷網(wǎng)后堆積多個(gè)支付請(qǐng)求爸舒,恢復(fù)網(wǎng)絡(luò)后因堆積多個(gè)支付請(qǐng)求,是否完成多次支付
ps:斷網(wǎng)后恢復(fù)網(wǎng)絡(luò)阁谆,考慮APP進(jìn)行操作目的是否對(duì)傷害用戶體驗(yàn)碳抄,通過(guò)哪種手段 可以達(dá)到操作目的同時(shí)用戶體驗(yàn)無(wú)感或者低傷害
比如,微信希望在線升級(jí)某些內(nèi)容场绿,會(huì)自動(dòng)監(jiān)聽(tīng)用戶是否插著電 or 連著wifi剖效,一旦監(jiān)聽(tīng)符合上述場(chǎng)景,APP自動(dòng)升級(jí):
1)插電場(chǎng)景 確保升級(jí)過(guò)程中,耗電不會(huì)導(dǎo)致手機(jī)低電量甚至沒(méi)電
2)wifi場(chǎng)景璧尸,確保升級(jí)過(guò)程中咒林,流量消耗不會(huì)使用用戶話費(fèi)中流量包,不會(huì)導(dǎo)致因消耗話費(fèi)流量傷害用戶體驗(yàn)
4.網(wǎng)絡(luò)請(qǐng)求中爷光,kill進(jìn)程 (導(dǎo)致APP登錄態(tài)掉線)
登錄同一個(gè)賬號(hào)成功垫竞,應(yīng)該不繼續(xù)相同網(wǎng)絡(luò)請(qǐng)求(要和RD確認(rèn),程序?qū)嶋H實(shí)現(xiàn))
登錄不同賬號(hào)成功蛀序,應(yīng)該不繼續(xù)相同網(wǎng)絡(luò)請(qǐng)求(要和RD確認(rèn)欢瞪,程序?qū)嶋H實(shí)現(xiàn))
三、【常見(jiàn)弱網(wǎng)問(wèn)題和原因分析】
1.場(chǎng)景:上傳大圖或者多圖時(shí)徐裸,在弱網(wǎng)絡(luò)環(huán)境下出現(xiàn)進(jìn)度條走到一半卡住然后又從頭開(kāi)始
原因:采用分段上傳方式遣鼓,直至請(qǐng)求超時(shí),分段傳輸沒(méi)有結(jié)束重贺,代碼邏輯不對(duì)骑祟,導(dǎo)致每次重試都重頭上傳,一直循環(huán)
2.場(chǎng)景:在弱網(wǎng)絡(luò)環(huán)境下容易出現(xiàn)登錄不上或者登陸后立即掉線
原因:登錄沒(méi)有緩沖機(jī)制气笙,而請(qǐng)求超時(shí)時(shí)間的設(shè)置沒(méi)有區(qū)分同網(wǎng)絡(luò)情況
解決方案:建議開(kāi)發(fā)針對(duì)wifi次企、2g、3g潜圃、4g設(shè)置不同的超時(shí)時(shí)間
3.場(chǎng)景:弱網(wǎng)絡(luò)環(huán)境下缸棵,請(qǐng)求的數(shù)據(jù)返回時(shí)間較長(zhǎng),等待的過(guò)程中秉犹,如果頁(yè)面上的相關(guān)控件仍然可以操作蛉谜,則容易出現(xiàn)異持赏恚現(xiàn)(閃退現(xiàn)象崇堵、觸發(fā)底部時(shí)獲得原頁(yè)面請(qǐng)求數(shù)據(jù))
原因:依賴(lài)數(shù)據(jù)的控件操作,在數(shù)據(jù)返回前沒(méi)有做兼容處理
4.場(chǎng)景:搜索時(shí)輸入關(guān)鍵字會(huì)連續(xù)發(fā)請(qǐng)求客燕,停下時(shí)鸳劳,顯示最終的關(guān)鍵字搜索結(jié)果,但很快又會(huì)被前面的關(guān)鍵字搜索結(jié)果覆蓋了也搓;
原因:中間的請(qǐng)求返回較慢赏廓,顯示了最終的結(jié)果后,之前的請(qǐng)求返回的數(shù)據(jù)應(yīng)不做處理傍妒。
作者:siyu8023
鏈接:http://www.reibang.com/p/06be11140413
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有幔摸。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處颤练。