Todos deberían estar familiarizados con Fiddler, pero hay algunas habilidades que pueden no ser familiares. Aquí hay ocho habilidades prácticas. A través de la personalización de Fiddler, se puede mejorar la eficiencia de las pruebas de todos.
1. Al hacer doble clic en Sesión, la página de respuesta siempre se muestra en la página de la pestaña "json", la página de solicitud siempre se muestra en la página de la pestaña "formulario web".
En la ventana de ejecución del comando QUICK EXEC en la esquina inferior izquierda de Fiddler , ingresar
Si desea aprender la herramienta de captura de paquetes Fiddler, aquí le recomiendo una serie de videos. Se puede decir que este video es el tutorial de la herramienta de captura de paquetes Fiddler No. 1 en Internet en la estación B. Al mismo tiempo, el número de usuarios en línea llega a 1.000, y hay notas disponibles Recibo e intercambios técnicos con varios grandes dioses : haga clic en la tarjeta en la parte inferior del artículo '
PREFS SET fiddler.ui.inspectors.response.alwaysuse "json" PREFS SET fiddler.ui.inspectors.request.alwaysuse "WebForms"
2. Muestre la dirección IP de solicitud de cada sesión
Open Fiddlerscript y escriba el siguiente código en main() :
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
3. Modifique el tipo de contenido en el encabezado de respuesta
para abrir Fiddlerscript y agregarlo en onBeforeResponse()
// 如果host中包含tugele,把响应Content-Type修改为 json类型
if (oSession.host.Contains("tugele")){
oSession.oResponse["Content-Type"] = "application/json;charset=UTF-8";
}
4. Haga clic con el botón derecho en la sesión, use el navegador para abrir la URL directamente,
abra Fiddlerscript y agréguelo al controlador de clase ]
public static ContextAction("Open in Chrome")
function DoOpenInIE(oSessions: Fiddler.Session[]){
if (null == oSessions){
MessageBox.Show("Please choose at least 1 session."); return;
}
for (var x = 0; x < oSessions.Length; x++){
//执行cmd 命令
System.Diagnostics.Process.Start("chrome.exe", oSessions[x].url);
}
}
5. En la columna Sesión, se muestra el tiempo de respuesta de cada solicitud,
abra Fiddlerscript y agréguelo a la clase Handler
public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
var sResult = "0";
var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
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;
}
6. Al enviar una solicitud, intercepte y modifique la URL solicitada
para abrir Fiddlerscript y agregarlo en onBeforeRequest()
// 指定包含 biaoqing 的url,替换url中的字符串
if (oSession.fullUrl.Contains('biaoqing')){
if (oSession.fullUrl.Contains('abc')){
oSession.fullUrl = oSession.fullUrl.Replace('abc','bcd');
}
// 在fiddler log中查看实际的请求
FiddlerObject.log(oSession.fullUrl);
}
7. Simule un entorno de red débil
En la barra de menú, abra el interruptor de velocidad Reglas > Rendimiento > Simular módem,
abra Fiddlerscript, modifique el umbral en el siguiente código y ajuste el tiempo de retraso del tráfico de enlace ascendente y descendente, la unidad es ms
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"] = "550";
}
8. Obtenga el contenido de la respuesta de la solicitud anterior como el cuerpo de la siguiente solicitud y use Fiddler para construir la solicitud.
Abra Fiddlerscript y agréguelo en onBeforeRequest()
//解密开关每次打开关闭都要去脚本中修改不太方便,因此把解密开关配置在Fiddler UI菜单栏中
public static RulesOption("Dectryt tugele")
var tgl: boolean = true;
static function OnBeforeResponse(oSession: Session) {
//tgl为解密开关,配置在UI RULES选项卡中
if (oSession.host.Contains("tugele") && tgl){
//获取请求的响应内容string
var oBody: String = oSession.GetResponseBodyAsString();
var eBody: String = "content=" + encodeURIComponent(oBody);
//把String 转为 byte[]类型
var Content: byte[] = System.Text.Encoding.UTF8.GetBytes(eBody);
//构造一个header对象
var oRQH: HTTPRequestHeaders = new HTTPRequestHeaders("/tools/decrypt", ['User-Agent: Fiddler','Host: test.example.com','Content-Length: '+Content.length.ToString(), 'Content-Type: application/x-www-form-urlencoded']);
//定义请求方法为post
oRQH.HTTPMethod = "POST";
//定义oSD(参数需要,一般为空)
var oSD = new System.Collections.Specialized.StringDictionary();
//发送请求,生成一个新session
FiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);
}
}
Los anteriores son algunos de los métodos que he resumido. Espero que pueda ser útil para todos. Por supuesto, Fiddler tiene muchos otros usos avanzados que vale la pena explorar, y espero que los comparta.