Fiddler實踐一例

本文章轉(zhuǎn)載于搜狗測試

一梢什、如何顯示請求花費的時間

背景:在項目中寸癌,客戶端會根據(jù)服務(wù)端響應(yīng)的時間來決定走哪條業(yè)務(wù)分支,之前是通過開發(fā)人員打印的log日志來驗證服務(wù)端消耗的時間骤公,比較麻煩像捶。就想著Fiddler能不能獲得一個請求花費的時間呢上陕,還真的就找到了一個方法桩砰,今天就和大家分享一下:

需求:Fiddler顯示請求花費的時間

思路:Fiddler工具除了可以捕捉Request和Response拓春,還會捕捉請求的性能數(shù)據(jù),比如客戶端發(fā)送請求的時間亚隅,服務(wù)端獲得請求的時間等等硼莽,我們可以計算不同時間點的差值來獲得中間的消耗時間。

步驟:

1煮纵、查看Session Properties懂鸵,右鍵點擊請求—>選擇Properties

2、彈出框如下圖所示行疏,可以看到 TIMING INFO 匆光,展示所有和時間相關(guān)的性能數(shù)據(jù)。

3酿联、獲得一個請求花費的時間终息,應(yīng)該是服務(wù)器完成響應(yīng)的時間點(ServerDoneResponse)—客戶端完成請求的時間點(ClientDoneRequest)。

4贞让、捋順了思路周崭,就可以coding了。

CustomRules.js腳本文檔調(diào)整如下:

classHandlers

{

... ...

//增加一列來顯示消耗的時間喳张,列頭為:TimeTaken/ms

publicstaticBindUIColumn("TimeTaken/ms",120)

functionTimeTaken(oS: Session):String{

//先賦值空的字符串

varsResult =String.Empty;

//將時間點轉(zhuǎn)成ms值

vart1 = oS.Timers.ServerDoneResponse.Millisecond;

//FiddlerObject.log("t1: "+t1);

vart2 = oS.Timers.ClientDoneRequest.Millisecond;

//FiddlerObject.log("t2: "+t2);

if(t1 > t2){

//兩者的差值就是請求消耗的時間

vart3 = t1-t2;

sResult = t3.ToString();

FiddlerObject.log("t3: "+t3);

}

returnsResult;

}

... ...

}

實現(xiàn)結(jié)果如下圖所示续镇,消耗214ms:

二、讀寫本地txt文件

在Fiddler的api中提供兩個方法來讀寫本地的txt文件销部,LoadRequestBodyFromFile()和SaveRequsetBody()摸航。今天我要和大家分享另外一種讀寫本地txt文件的方法。

第一步:定義方法

staticfunctionreadFile(filename)

{

//FiddlerObject.alert("readFile");

varfso =newActiveXObject("Scripting.FileSystemObject");

varf = fso.OpenTextFile(filename,1);

vars ="";

while(!f.AtEndOfStream)

s += f.ReadLine()+"\n";

f.Close();

// ?FiddlerObject.alert(s);

returns;

}

//往本地文件中寫內(nèi)容

staticfunctionwriteFile(filename,context)

{

varfso =newActiveXObject("Scripting.FileSystemObject");

varf = fso.OpenTextFile(filename,2);

f.write(context);

f.Close();

}

第二步:調(diào)用方法

if(oSession.HostnameIs("sdk.api.kaffnet.com") ) {

oSession["ui-color"] ="orange";

varbody = oSession.GetRequestBodyAsString();

//將請求body寫入本地文件中

writeFile("D:\\readFile.txt",body);

//從本地文件讀取數(shù)據(jù)作為請求body

varstring = readFile("D:\\jiemi_sdk.txt");

body = string;

oSession.utilSetRequestBody(body);

}

你可能會有疑問舅桩,fiddler的api已經(jīng)提供了簡單方便的方法酱虎,你為何還有大費周章的來自己寫方法呢?其實我想表達的是江咳,F(xiàn)iddler工具既然允許我們修改js文檔來實現(xiàn)不同的功能逢净,那么我們就應(yīng)該好好地利用這樣的優(yōu)勢來為我們服務(wù)。如何才能高效的使用fiddler,我們唯有充分地了解它才能夠“對癥下藥”爹土。想要在Fiddler的地基上蓋出漂亮的房子只有靠自己不斷的探索擴展甥雕。

言歸正傳,readFile()和writeFile()方法的實現(xiàn)過程胀茵,你看著有木有很眼熟呢社露?這個不就是js讀寫本地txt文檔嗎?琼娘!是的峭弟,沒錯,就是JS脱拼!JSB魅场!JSOㄅāG槌簟!

CustomRules.js就是用JS寫的赌蔑,是不是頓時覺得CustomRules.js你也可以很輕松很easy的修改調(diào)整俯在,那么就趕快和我一起行動起來吧。

順著這個思路呢娃惯,我又寫了讀寫本地excel文檔的方法跷乐,不過fiddler的api中可沒有提供讀寫excel的方法哦?趾浅!

三愕提、讀寫本地excel文件

//讀取本地excel的方法

staticfunctionreadExcel(filename,apk,key,version,code)

{

//創(chuàng)建Excel.Application對象

varoXL =newActiveXObject("Excel.application");

//打開指定路徑的excel文件

varoWB = oXL.Workbooks.open(filename,8)

//操作第一個sheet(從一開始,而非零)

oWB.worksheets(1).select();

varoSheet = oWB.ActiveSheet;

//多少行

varrows = ?oSheet.usedrange.rows.count;

//多少列

//var colcount=oSheet.UsedRange.Cells.Count ;;

//特殊excel讀取都是從1開始

try{

for(vari =2; i <= rows; i++) {

if(oSheet.Cells(i,1).value == apk){

//FiddlerObject.alert(oSheet.Cells(i,1).value);

//為單元格賦值

oSheet.Cells(i,5).value = key;

oSheet.Cells(i,6).value = version;

oSheet.Cells(i,7).value = code;

oWB.save();

}

}

}catch(e){

}

//FiddlerObject.alert("save");

oWB.close();

//退出操作excel的實例對象

oXL.Application.Quit();

}

這個方法有結(jié)合我實際的業(yè)務(wù)需要潮孽,大家可以自行提取自己需要的部分揪荣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市往史,隨后出現(xiàn)的幾起案子仗颈,更是在濱河造成了極大的恐慌,老刑警劉巖椎例,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挨决,死亡現(xiàn)場離奇詭異,居然都是意外死亡订歪,警方通過查閱死者的電腦和手機脖祈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刷晋,“玉大人盖高,你說我怎么就攤上這事慎陵。” “怎么了喻奥?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵席纽,是天一觀的道長。 經(jīng)常有香客問我撞蚕,道長润梯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任甥厦,我火速辦了婚禮纺铭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刀疙。我一直安慰自己舶赔,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布庙洼。 她就那樣靜靜地躺著顿痪,像睡著了一般镊辕。 火紅的嫁衣襯著肌膚如雪油够。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天征懈,我揣著相機與錄音石咬,去河邊找鬼。 笑死卖哎,一個胖子當著我的面吹牛鬼悠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亏娜,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼焕窝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了维贺?” 一聲冷哼從身側(cè)響起它掂,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溯泣,沒想到半個月后虐秋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡垃沦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年客给,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肢簿。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡靶剑,死狀恐怖蜻拨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩引,我是刑警寧澤官觅,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站阐污,受9級特大地震影響休涤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笛辟,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一功氨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧手幢,春花似錦捷凄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至监透,卻和暖如春桶错,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胀蛮。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工院刁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粪狼。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓退腥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親再榄。 傳聞我的和親對象是個殘疾皇子狡刘,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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

  • 一.Fiddler介紹 Fiddler是一個http抓包改包工具,fiddle英文中有“欺騙困鸥、偽造”之意嗅蔬,與wir...
    舍末逐本閱讀 2,430評論 0 21
  • 簡介 Fiddler(中文名稱:小提琴)是一個HTTP的調(diào)試代理,以代理服務(wù)器的方式窝革,監(jiān)聽系統(tǒng)的Http網(wǎng)絡(luò)數(shù)據(jù)流...
    daoyidao閱讀 143,562評論 15 169
  • 內(nèi)容來自《Node.js開發(fā)指南》 核心模塊是 Node.js 的心臟购城,它由一些精簡而高效的庫組成,為 Node....
    angelwgh閱讀 888評論 0 1
  • 敬業(yè)福去哪了? 恐怕現(xiàn)在在各大社交平臺里不止一個人在糾結(jié)這個問題漆诽,畢竟集齊5福平分2.15億現(xiàn)金這個噱頭足以吸引大...
    莫再提閱讀 574評論 0 1
  • 最喜歡的三個標題: 1、《廣金雙12招聘盛會兰英,我想說的是感恩》撇叁。原因如下: a.結(jié)合熱點。這篇文章的發(fā)表日期是20...
    嘉俊_求職奶爸閱讀 525評論 0 1