【Fiddler】设置Before Request断点&篡改数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Fiddler】设置Before Request断点&篡改数据相关的知识,希望对你有一定的参考价值。

参考技术A 在测试中,根据测试场景的不同,会需要在测试中更改访问请求、或者更改请求内容,从而达到最终的测试目标。这时测试要构造数据,设置断点以篡改请求和响应的数据包。

如何设置断点修改request的数据包呢?

1.先在浏览器中打开百度网页输入“百度地图”,可以看到测试断点前的正常数据。

2.打开fiddler工具,点击Rules---Automatic Breakpoint----Before Requests(也可直接按F11),设置请求前断点,之后访问的数据都会被截断。

3.在QuickExc框中输入cls,清除之前访问的数据包,以方便找到我们需要的数据包。(自己在学习的时候就是因为一直找不到请求包搞了很久,后面发现的这个小技巧很方便)

4.打开之前的网页,点击“百度一下”进行请求,可在fiddler中看到有断点的数据包产生,选择请求的数据包,选择右侧的WebForms栏,选择修改wd的数据,将“百度地图”修改成“高德地图”,点击Run to Completion。

5.进行上面的操作之后,可看到列表中的数据包状态有改变,打开网页可看到访问的内容是刚修改的“高德地图”的内容。

Fiddler中设置断点修改Request

Fiddler中设置断点修改Request

Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)

如何消除中断呢?  点击Rules-> Automatic Breakpoint  ->Disabled

第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com)

如何消除命令呢?  在命令行中输入命令 bpu

 

使用举例:

以登录举例

1、中断请求:bpu  http://test.xxx.xxx.com/login.ht

2、选中这个请求

3、修改inspectors->raw里面的帐号密码

4、点击run to completion

5、取消中断:bpu

 

Fiddler中设置断点修改Response

 

当然Fiddler中也能修改Response:

  第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)

  如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

  第二种:  在命令行中输入命令:  bpuafter www.baidu.com   (这种方法只会中断www.baidu.com)

  如何消除命令呢?  在命令行中输入命令 bpuafter,

如何模拟Before Requests设置断点

在项目的实践过程中,经常遇到一个点击事件,触发两个并行的请求,比如A、B两个请求,哪个请求响应的比较快,则展示谁的数据。
在测试的时候,我们要测试三个场景:

用例编号场景设计预期结果
test1 响应速度:A > B 展示A
test2 响应速度:A < B 展示B
test3 响应速度:A = B 这种情况很临界,几率很小,暂时忽略不计
test4 响应速度:A B 在固定的时间内都没有响应 没有数据展示

如果完全依赖真实的网络,很难能够模拟去上述的场景,因为我们无法控制哪一个响应先返回,会很被动。
Fiddler有模拟断点的功能来帮助我们:

1、打开Fiddler,Rules->Automatic Breakpoints ->点击 Before Requests

F49D4B287CD68F4A0DB3240C122C465C.jpg

2、这样所有的请求在发送请求之前就被阻止了,如下图所示,两个并行的请求A(21)、B(22)都被阻止了:

 

D0915A22D5D17C548BC9D7986C860650.jpg

3、要模拟测试用例的场景test1,需要让A(21)响应请求,则需要将A(21)的阻止打开

4、双击A(21)的请求,在右下角点击绿色的Run to Completion

 

 

5、之后A(21)的请求继续自己的请求,返回200,请求成功,而B(22)的请求还在阻止

61A5ED5497B9BB1F1D9C82BFE7E6E7C5.jpg

6、这样就可以很轻松的模拟,其他的测试用例场景了 

需要强调一下:

大家可以看到Rules->Automatic Breakpoints ->之后有两个选项:Before Requests 、After Responses。这两个选项都可以断点,但是有什么不同呢,下面就为大家着重的介绍一下:

Before Requests :在请求发送之前,打断点,所以可以调整发送的参数;
After Responses :在响应回来之前,打断点,所以可以调整返回过来的数据;

两者断点的位置不一样,所以能够修改的数据不一样,大家可以根据自己的需求选择不同的断点方式。

 

 

B0724D5EA749DCFCA55F647366B31652.jpg

B0724D5EA749DCFCA55F647366B31652.jpg

以上是关于【Fiddler】设置Before Request断点&篡改数据的主要内容,如果未能解决你的问题,请参考以下文章

Fiddler中设置断点修改Request

Fiddler设置断点

fiddler设置断点

Fiddler抓包_设置断点修改

Fiddler抓包4-工具介绍(request和response)

Fiddler抓包4-工具介绍(request和response)