谷歌Har文件的用处


如何生成 Har 文件并分析用于故障排除的 Web 请求?

谷歌Har文件的用处


可以使用 Chrome 开发工具生成 Har 文件!

在解决复杂网络问题的时候,我们需要额外获取一些信息,以便于进一步的排除问题。比如,有用户反馈网站的登陆问题或者支付问题等。因为有很多不同的因素可能会导致上述问题的发生,为了便于问题的排查,我们需要更多的数据信息。

咳咳咳,这时谷歌浏览器就要隆重登场了,其使用特殊的 har 文件可以帮助我们收集所需的大部分数据信息。因此,如何生成、导入以及分析 har 就变得非常重要了!

  • [1] Chrome 生成 Har 文件
    1. 打开开发人员工具 - Develop Tool
    2. 选择网络选项卡 - Network
    3. 勾选“保留日志”和“禁用缓存” - Preserve log/Disable cache
    4. 加载包含问题的页面,等待全部加载完毕
    5. 右键单击某个请求将所有内容另存为 Har 文件 - Save all as HAR with content

谷歌Har文件的用处 - Chrome生成Har文件

  • [2] Chrome 导入 Har 文件
    1. 打开另一个 Chrome 实例
    2. 启用开发人员工具
    3. 选择网络选项卡
    4. 拖放 Har 文件到对应区域

谷歌Har文件的用处 - Chrome导入Har文件

  • [3] 查看 Har 文件的工具
    1. Google Chrome
    2. Proxyman
    3. HttpWatch
    4. Fiddler
    5. Firefox
    6. Microsoft Edge
    7. Charles Web Proxy

谷歌Har文件的用处 - 导入之后可以查看请求

谷歌Har文件的用处 - googleapps

谷歌Har文件的用处 - softwareishard


假装的 token 翻车记录

最近发现某个测试系统登录跳转异常,但是使用相同的镜像重新启动一组服务却能够正常运行起来,实在是百思不得其解。排除中抛开了系统和代码之外,能够想到的区别就是请求传参的问题,所以使用了 Har 文件保留了异常环境的登录跳转异常时所产生的所有请求信息(可能会报错密码等敏感信息,尽量使用测试账户)。

然后导入类似于 Proxyman 这种可以识别 Har 文件的工具,通过查看对应内容发现,异常环境和正常环境的问题就在于 token 的生成结果不一致导致的,导致跳转校验失败。对应 token 的实现涉及到使用 URL 地址来作为参数的,所以看到了如下代码。这两种写法生成的 string 存在细微差异,即前者如果 URL 地址中存在 / 符号的话会原样保持,但后者会 urlencode 编码为 %2F,所以如果从 A 系统 跳转到 B 系统 就会出现问题。

# A系统parama生成
("{}={}".format(key, urllib.parse.quote(str(values))))

# B系统parama生成
urllib.parse.urlencode({key: values})

所以通过上面的问题排除,我们发现 Har 文件还是非常有用的!而且还有一个问题就是,需要保持思维的清晰,不会形成思维定式,才能有助于排除问题。


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !