处理Fiddler录制中相同URL的POST参数差异?

Jim*_*ica 8 web-testing fiddler web

我需要记录我的客户端脚本如何在第三方Web应用程序中运行.所以我试图用Fiddler记录第三方机器上的流量,然后在这里运行它.

听起来很棒,但是我的脚本对ASPX(123.aspx)页面进行AJAX调用,并且调用仅使用POST参数,而不是GET.

这意味着Fiddler中记录的(123.aspx)请求URL是相同的,并且回放不能正常工作(每个AJAX请求都匹配第一个记录的匹配,而不是具有相同POST参数的匹配).

 E.g. let's says the requests are recorded like this
 123.aspx [POST param: searchquery=xyz]
 123.aspx [POST param: searchquery=abc]
Run Code Online (Sandbox Code Playgroud)

然后当我回放SAZ文件时,我总是得到123.aspx [POST param:searchquery = xyz]的响应,即使searchquery = abc.

如果POST参数不同,我怎样才能让Fiddler以不同方式处理请求?

我看到了提取规则,并且对它们有点不确定,Telerik文档没有返回"提取"的结果......它们是我需要的吗?

谢谢

Eri*_*Law 7

有关Fiddler AutoResponder的" 导入播放"模式的详细信息,请参阅介绍性博客文章,该模式有助于解决在尝试播放以前捕获的SAZ文件时可能遇到的一些问题.

现在,"导入播放"模式不会解决所有可能的问题; 例如,如果您对捕获的同一URL有多个POST,但它们的排序与您尝试重放场景时捕获的顺序不同,则它们将以错误的顺序播放,并且事情将被破坏.


来自Fiddler书:

与请求机构匹配

在某些情况下,站点可能会对许多不相关的操作使用相同的请求URL,指定请求正文中所需的操作而不是URL.您可以通过指定URLWithBody:匹配条件的前缀来扩展匹配条件以检查POST或PUT请求的正文.使用此前缀时,直到第一个空格字符的字符串部分将用作请求URL的匹配条件,而字符串的其余部分将用作请求正文的字符串表示的匹配条件.出于性能原因,您应该尽可能窄地指定匹配条件的URL部分,以最大限度地减少AutoResponder需要评估的请求主体的数量.如果请求没有正文,则不符合任何URLWithBody规则.

您的匹配条件可以指定EXACT:,NOT:以及REGEX:对URL和身体两个前缀.例如:

URLWithBody:upload.php TextToFindInBody
URLWithBody:login.php EXACT:Action=Login
URLWithBody:ping.php NOT:POST Data I Do Not Care About
URLWithBody:EXACT:https://example.com/upload.php REGEX:^.+TextToFind.*$
URLWithBody:REGEX:^.+/upload.php.*$ REGEX:^.+TailOfPOST$
Run Code Online (Sandbox Code Playgroud)

请记住,Web窗体中的大多数POST都会对正文进行编码,因此您应该确保匹配条件考虑了这种编码.例如,要匹配以下POST:

POST http://www.enhanceie.com/sandbox/FileForm.asp HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 54

2=This+is+some+text&fileentry2=&_charset_=windows-1252
Run Code Online (Sandbox Code Playgroud)

你的比赛条件应该是:

URLWithBody:/sandbox/FileForm.asp This+is+some+text
Run Code Online (Sandbox Code Playgroud)