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

Web 在Fiddler录制中处理相同URL上的POST参数差异?,web,fiddler,web-testing,Web,Fiddler,Web Testing,我需要记录我的客户端脚本在第三方web应用程序中的行为。所以我尝试使用Fiddler记录第三方机器上的流量,然后在这里运行它 听起来不错,但是我的脚本对ASPX(123.ASPX)页面进行了AJAX调用,并且这些调用只使用POST参数,而不使用GET 这意味着Fiddler中记录的(123.aspx)请求URL是相同的,并且回放不能正常工作(每个AJAX请求都匹配第一个记录的匹配,而不是具有相同POST参数的匹配) 然后,当我回放SAZ文件时,我总是得到123.aspx[POST param:s

我需要记录我的客户端脚本在第三方web应用程序中的行为。所以我尝试使用Fiddler记录第三方机器上的流量,然后在这里运行它

听起来不错,但是我的脚本对ASPX(123.ASPX)页面进行了AJAX调用,并且这些调用只使用POST参数,而不使用GET

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

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

如果POST参数不同,如何让Fiddler以不同的方式处理请求

我看到了提取规则,有点不确定,Telerik文档没有返回“提取”的结果。。。它们是我需要的吗

感谢

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

现在,“导入播放”模式不会解决所有可能的问题;例如,如果您捕获了多个指向同一URL的帖子,但它们的顺序与您尝试重播场景时捕获的顺序不同,那么它们将以错误的顺序播放,结果将被破坏


从:

根据请求机构进行匹配 在某些情况下,站点可能会对许多不相关的操作使用相同的请求URL,在请求正文中指定所需的操作,而不是URL。通过为匹配条件指定
URLWithBody:
前缀,可以扩展匹配条件以检查POST或PUT请求的正文。使用此前缀时,字符串中直到第一个空格字符的部分将用作请求URL的匹配条件,而字符串的其余部分将用作请求正文的字符串表示形式的匹配条件。出于性能原因,您应该尽可能狭窄地指定匹配条件的URL部分,以最小化自动应答器需要评估的请求主体的数量。如果请求没有正文,它将不匹配任何
URLWithBody
规则

您的匹配条件可以指定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$
请记住,Web表单中的大多数帖子都对正文进行编码,因此您应该确保您的匹配条件考虑了这种编码。例如,要匹配以下帖子:

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
您的匹配条件应为:

URLWithBody:/sandbox/FileForm.asp This+is+some+text

我最终修改了脚本,将其中一个参数用作冗余的GET参数,只是为了使URL唯一。这显然需要在第三方端进行工作,所以我仍然很好奇,如果不修改我们的脚本,这是否可以实现?Fiddler记录了完整的URL以及完整的帖子正文。你说的“然后在这里运行”到底是什么意思?你玩得怎么样。你是在问一个关于Fiddler的自动应答器的问题吗?当您谈论提取规则时,您是在谈论Visual Studio WebTest脚本吗?谢谢@EricLaw-我的意思是(或我认为我的意思是)让第三方向我发送SAZ文件(由fiddlercap生成),然后让Fiddler中的自动响应程序处理来自我浏览器的请求-这样我就可以调试我们的脚本了。因此,发生的情况是,对于对同一URL(不同的post参数)的后续AJAX调用,自动应答器只匹配第一个AJAX调用。至于提取规则,是的,我可能对web测试感到困惑——我想我在web上看到了一些关于提取POST参数的信息……嘿,Eric,我遇到了一个奇怪的行为(或者我理解错误)。我设置了一个
URLWithBody
,就在
*bpu
的下方。如果在
*bpu
中,我选择了
运行到完成
,预定义的响应看起来好像忽略了
URLWithBody
规则。嘿,@VitorCanova:因为这是一个不同的问题,请将其发布到Fiddler讨论组或作为一个新问题发布在此处。请使用CTRL+C复制这两个规则的全文,以便我可以确定您的场景是什么。谢谢“Fiddler讨论组”是指使用
Fiddler
tag在SO发布的帖子?在Fiddler中,单击
Help
Fiddler社区讨论
。或者用
Fiddler
标签在这里发布。
URLWithBody:/sandbox/FileForm.asp This+is+some+text