Menu Close

Fiddler工具——WEB页面抓包

1,一个网页的组成

网页的组成 一个HTML、多个图片、CSS文件、JAVAScript文件、json文件

2,打开一个网页,浏览器需要发送很多个请求

在浏览器中,打开一个网页的过程如下。

(1)在浏览器输入http://www.cnblogs.com.

(2)浏览器会发送第一个HTTP请求去获取页面布局的HTML,这个请求叫作“父请求”。然后服务器把 HTTP响应发回给浏览器。

(3)浏览器会分析HTTP响应中的HTML。如果发现HTML中引用了很多其他文件,比如图片、CSS文件、JS文件等,浏览器会自动再次发送很多HTTP请求,去获取图片、CSS 文件或者 JS文件。这些 HTTP 请求叫作“子请求”.

(4)当所有子请求的响应都返回后,浏览器会把1个父请求加上多个子请求渲染出来。这样就形成了一个页面,网页就在浏览器上显示出来。

3,查看一个WEB页面打开过程

启动Fiddler,打开浏览器,输入www.taobao.com

4,用 Fiddler选择请求

(1)用Fiddler选择子请求。先找到父请求,鼠标右键选择Select->Child Requests,就能选中所有的子请求,或者按快捷键【C】

(2)用Fiddler选择父请求。找到任何一个子请求,鼠标右键选择Select>ParentRequests,就能选中父请求,或者按快捷键【P】

(3)用 Fiddler 选择相同的请求。选择一个请求,鼠标右键选择 Select->Duplicate度。 Requests,就能选中相同的请求了,或者按快捷键【D】

5,Web 页面简单的性能测试

如上所述,一个网页的加载速度跟父请求和子请求都是有关系的。

(1)子请求出现了404或者500之类的错误,会严重影响整个网页的加载速度。

(2)子请求的响应速度慢也会影响网页加载的速度。

我们可以使用 Fiddler来查看打开一个网页的每个请求的响应时间和状态码。如图所示,启动Fiddler中的 Statistics面板可以清楚地看到每个HTTP请求的响应时间。

Statistics是一个详情和数据统计面板,显示了每条 HTTP请求的具体统计信息,如发送和接收的字节数、发送和接收的时间,以及粗略统计的世界各地访问该服务器所花费的时间。在 Overall Elapsed 中能看到 HTTP响应返回所需要的响应时间。

6,使用Fiddler来查看响应

HTTP响应可能是一个HTML文档,可能是一个图片,也可能是一个JSON.使用 Raw 选项卡可以查看完整的 HTTP响应,我们也可以用其他选项卡来查看。如果 HTTP 响应的是 HTML文档,如图,则我们可以用 WebView选项卡来查看。

7,Fiddler下断点,修改HTTP报文

Fiddler不但能抓包,还能改包。想要修改HTTP报文,就需要先下断点拦截住HTTP请求报文或者 HTTP响应报文,修改后再放行。Fiddler既能修改HTTP请求报文,也能修改HTTP响应报文。

8,Fiddler中设置断点修改HTTP请求

Fiddler本身是一个代理服务器,Fiddler可以设置断点,拦截住HTTP请求,修改HTTP请求后再放行。

设置好断点后,你可以修改HTTP请求的任何信息,包括Host、Cookie或者表单中的数据。设置断点有以下两种方法。第一种叫全局断点。启动Fiddler,单击菜单栏中的Rules > Automatic Breakpoint>Before Requests,或者使用快捷键【F11】,这种方法会拦截所有的会话。

要想取消全局断点,可以单击Rules-> Automatic Breakpoint->Disabled,或者使用快捷键【Shift+F11】

第二种叫单个断点。已知某个请求的URL 地址,这时候只需要针对这一个请求打断点调试,其他的请求不拦截。

在 Fiddler左下角的 QuickExec 命令行中输入命令“bpuwww.baidu.com”,这种方法只会拦截www.baidu.com。

想要取消单个断点,可以在命令行中输入 bpu

9,实例:Fiddler修改HTTP请求

浏览器想访问www.163.com,则通过Fiddler修改HTTP请求,让浏览器去访问www.cnblogs.com/tankxiao。具体操作步骤如下。

(1)启动Fiddler,在菜单栏中单击Rules-> Automatic Breakpoint ->Before Requests。

(2)打开浏览器,输入“www.163.com”,这时候你会发现任务栏上的Fiddler图标在闪烁,说明Fiddler拦截住了HTTP请求。

(3)回到Fiddler界面,在菜单栏中单击Rules-> Automatic Breakpoint->Disable(因为已经拦截住想要的HTTP请求了,其他HTTP请求就不需要拦截了)。

(4)被拦截的HTTP请求有一个红色的T图标,选中需要修改的 HTTP请求,选中“Inspectors”面板,使用Raw选项卡(必须要在Raw选项卡下才能修改)。

(5)把 URL 修改为“www.cnblogs.com/tankxiao”,同时把 HOST 修改为“www.cnblogs.com”,然后单击绿色的“RuntoCompletion”按钮放行。

(6)回到浏览器,此时我们会发现浏览器打开的是cnblogs的页面了。如果单击黄色按钮“Break on Response”,则会继续拦截这个HTTP请求的响应。

10,Fiddler中设置断点修改 HTTP 响应

当然 Fiddler 中也能修改 HTTP 响应。拦截住 HTTP 响应,修改 HTTP 响应后再放行。

设置断点,拦截HTTP响应也有2种方法,具体如下。

第一种是全局断点。启动Fiddler,单击 Rules -> Automatic Breakpoint-> After Response。

这种方法会中断所有的会话。

要想取消全局断点,可以单击Rules-> Automatic Breakpoint -> Disabled。

第二种是单个断点。在命令行中输入命令“bpafter www.baidu.com”。这种方法只会中断 www.baidu.com。要想消除单个断点,可以在命令行中输入命令“bpafter”。

11,Fiddler 修改网页的标题

实例:用户访问一个网页,通过Fiddler修改响应的方法修改网页的标题。具体操作步骤如下。

(1)启动Fiddler,在左下角的 QuickExec命令行中输入“bpafter http://www.baidu.com”,

(2)打开浏览器,输入“http://www.baidu.com”.

(3)在Fiddler 中选中“http://www.baidu.com”,选中“Inspectors”面板,Response 下使用Raw选项卡(必须要在Raw选项卡下才能修改)。

(4)修改HTML 代码为“<title>我修改了这里</hitle>”,然后单击“Run to Completion”放行.

 

Posted in 软件测试, 软件测试教材教案

发表评论

您的电子邮箱地址不会被公开。

Leave the field below empty!

相关链接