使用 FiddlerScript 或扩展处理 SAZ 文件

Process SAZ files using FiddlerScript or extension

我有一系列 Fiddler 会话存档文件 (SAZ),每个文件约 150 个会话,约 15k 个条目。根据文档,我可以使用 AutoResponder 功能来模拟重播会话。但是,我发现将会话从 SAZ 文件导入到 AutoResponder 中很不方便,因为列表变得非常大,而且 AutoResponder 规则中的手动条目变得很难找到。

我想知道是否有一种方法可以直接使用 FiddlerScript 或扩展从 SAZ 文件中读取和定位会话,而无需进入 AutoResponder 选项卡。我不熟悉 JS.NET 或 C#,但我正在尝试编写一些粗略的逻辑。

我看到的最接近的是 I have problems to readSessionArchive() in FiddlerScript。使用共享代码段,我可以让它工作,只列出来自 SAZ 的会话。有没有一种方法可以将 SAZ 文件的响应映射到上下文中的请求,就像在 AutoResponder 中导入时一样?

上述link的修改版本:

for (var i1:int = 0; i1<sSessions.Length; ++i1)
{
    FiddlerObject.log("sSessions: " + i1 + ": " + sSessions[i1].url);

    if(sSessions[i1].url === 'example.com/default.css') {
        //FiddlerObject.log("sSessions: " + i1 + ": " + sSessions[i1].GetResponseBodyAsString());
        //TODO logic to map oSession.response = response stored in SAZ file
    }
}

有没有更好的方法来实现这个?另外,我觉得每次解析 SAZ 中的所有会话条目时,都会有很多 I/O activity。有没有不选择数据库选项的替代方案?

您是否正在尝试使用扩展模型实现您自己的自动回复?如果是这样,您是否不想因为导入的条目太多而忘记 UI 中的手动条目?看来您可以将手动输入的内容放在顶部?

如果愿意,您可以使用 oAutoResponder.ImportSessions.

选择性地将会话(在您加载 and/or 修改它们之后)添加到自动回复器 UI

SAZ 文件有多大?

Fiddler只会在你调用的时候打盘Utilities.ReadSessionArchive;之后,Session都在Fiddler的内存中。如果您在这里看到磁盘 IO,则表明您的机器内存不足,并且您的 OS 正在将内存分页到磁盘和从磁盘分页。

Is there a way to map the response from the SAZ file to the request in context

我不确定我是否理解您的问题——您是在问 Fiddler 如何决定 Session 的 URL 是什么?因为看起来您已经在代码片段中解决了这个问题。