Performance Testing

To test application performance, add rules using FiddlerScript to the OnBeforeResponse function (except where noted). For example:

Simulate modem uploads (add to OnBeforeRequest function)

	// Delay sends by 300ms per KB uploaded.
	oSession["request-trickle-delay"] = "300";

Simulate modem downloads

	// Delay receives by 150ms per KB downloaded.
	oSession["response-trickle-delay"] = "150";

Flag content which isn't set to cache on the client.

	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.

	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.

	oSession["ui-customcolumn"] = "FB: " + oSession["X-TTFB"] + "; LB: " + oSession["X-TTLB"];

Add a CopyTimers context menu item to the Session List (Scope is Global)

	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.");
	}