To test application performance, add rules using FiddlerScript to the OnBeforeResponse function (except where noted). For example:session
Simulate modem uploads (add to OnBeforeRequest function)app
// Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "300";
Simulate modem downloadsui
// Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150";
Flag content which isn't set to cache on the client.spa
if (!(oSession.oResponse.headers.Exists("Expires") || (oSession.oResponse.headers.ExistsAndContains("Cache-Control", "age"))) || (oSession.oResponse.headers.Exists("Vary"))){ { oSession["ui-color"]="brown"; // Use C# color strings here. oSession["ui-italic"]="true"; }
Display in the "Custom Column" the number of milliseconds from the moment of the request until the last byte was received.code
oSession["ui-customcolumn"] = oSession["X-TTLB"];
Display the # of milliseconds until the First Byte was received from the server, followed by the # of ms until the Last Byte.orm
oSession["ui-customcolumn"] = "FB: " + oSession["X-TTFB"] + "; LB: " + oSession["X-TTLB"];
Add a CopyTimers context menu item to the Session List (Scope is Global)server
public static ContextAction("CopyTimers") function CopyTimers(oSessions: Fiddler.Session[]){ if (null == oSessions){ MessageBox.Show("Please select sessions to copy timers for.", "Nothing to Do"); return; } var s: System.Text.StringBuilder = new System.Text.StringBuilder(); for (var x = 0; x < oSessions.Length; x++) { s.AppendFormat("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}\r\n", oSessions[x].Timers.ClientConnected, oSessions[x].Timers.ClientDoneRequest, oSessions[x].Timers.ServerConnected, oSessions[x].Timers.ServerGotRequest, oSessions[x].Timers.ServerBeginResponse, oSessions[x].Timers.ServerDoneResponse, oSessions[x].Timers.ClientBeginResponse, oSessions[x].Timers.ClientDoneResponse ); } Utilities.CopyToClipboard(s.ToString()); MessageBox.Show("Done."); }