58

我正在寻找一种简单的方法来拦截 Web 请求并使用Fiddler修改请求的内容(主要是POSTs ) 。

这是为了测试服务器端验证。

我必须使用Fiddler,但是我还没有找到一个很好的简单方法。

有几种记录方法来编写脚本来拦截流量和更改标头,但我想在不编写脚本的情况下这样做 - 测试人员需要使用这个工具,并且不同的测试人员可能一直在编写/修改脚本恼人的。

例子:

带有 2 个参数的简单 POST:

field1=foo, 
field2=bar

我想拦截请求,将field2的值修改为类似 bañ (注意ñ,在我的情况下是无效的,这就是我想要测试的)。

4

2 回答 2

95

好的,发布我从以下 youtube 视频拼凑而成的答案:

使用 Fiddler 篡改客户端请求和服务器响应


  1. 启动提琴手(我正在使用提琴手 4)

  2. 您会注意到它拦截了通过所有浏览器和其他应用程序的所有流量

  3. 设置过滤器 - 这将使您能够仅查看您感兴趣的数据

    1. 在右侧,单击过滤器选项卡
    2. 选中“使用过滤器”
    3. 在主机上,使用“仅显示以下主机”
    4. 在下面的文本框中,输入您要测试的主机。在我们的测试环境案例中,输入以下内容:testing.internalsite.com;
    5. 在名为“Breakpoints”的部分中,选中“Break request on POST”
  4. 拦截请求

    1. 在您的浏览器中,导航到您正在测试的页面。在我们的例子中,它是欢迎页面,我们将在其中测试服务器端验证: https ://testing.internalsite.com/yourapp/welcome.do
    2. 通过点击工具功能区中的“X”并选择“全部删除”来清除所有现有的记录请求。
    3. 在您的浏览器中,将数据放入您有兴趣测试的表单中,然后点击提交。这是您将使用 fiddler 更改的有效数据(通过客户端验证)。
    4. 在 Fiddler 中,您将看到带有红色图标的请求。单击请求以加载右侧的详细信息。
    5. 在 Inspectors 选项卡上,然后是 WebForms 选项卡,您可以修改提交的表单的参数。根据测试更改数据。
    6. 点击“运行完成”按钮
  5. 验证您的响应是否正确 - 如果您正在测试服务器端验证,通常是某种错误消息

于 2015-02-04T18:08:45.673 回答
9

我使用提琴手 4.6.3。如果您要提交 Web 表单,您可以试试这个。

提交表单时请注意发布请求。让该请求保留在提琴手中。让我们在 Fiddler 中修改请求。

1 - 右键单击​​请求 > 选中“解锁以进行编辑”。

2 - 检查器选项卡 > 修改正文部分中的用户名、密码等表单字段。

3 - 右键单击​​请求 > 重播 > 重新发出请求。

完毕 !这种方法的唯一问题是您修改了旧请求。在 Charles 代理中,这是在 2-3 次点击中完成的,而在 Fiddler 中则需要多次点击。另外,您不必弄乱旧的请求。

于 2017-02-06T08:42:43.927 回答