我如何处理HAR信息

时间:2014-08-29 20:14:35

标签: python-2.7 selenium-webdriver browsermob

我正在尝试收集网络流量数据,在将其与我们的测试框架集成之前,我已经设置了概念验证。我可以得到har数据,它会以字典形式返回,之后不确定该如何处理它?我假设我需要将它写入文件以便可以上传,但是我将它保存为.har还是.json?

server = Server("C:\\Users\\E003048\\Downloads\\browsermob-proxy-2.0-beta-9\\bin\\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()

profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)

proxy.new_har("Network Traffic")
driver.get("http://URL GOES HERE")
har_information = proxy.har
target_file = open("har_file.har", 'a')
target_file.write(str(har_information))
sleep(10)
proxy.close()
server.stop()
driver.quit()

我在脚本中添加了写入har文件的内容,但是当我将其插入har查看器时:http://www.softwareishard.com/har/viewer/我没有得到任何东西。还有什么需要做的?

2 个答案:

答案 0 :(得分:2)

HAR代表HTTP存档。这是记录HTTP跟踪信息的常用格式。此文件包含各种信息,但出于我们的目的,它包含浏览器加载的每个对象的记录。记录这些对象的每个时间。

您可以在此处了解有关HAR文件规范的更多信息: http://www.softwareishard.com/blog/har-12-spec/

以下页面列出了许多HAR解析和可视化工具: http://www.softwareishard.com/blog/har-adopters/

答案 1 :(得分:1)

好吧,保存的har文件可以用来做下一步:

  1. 您可以使用har文件中已保存的通信信息执行负载测试。例如。你写测试(登录到网站)。然后将其保存到har文件中。之后,您可以根据需要使用一些已知的框架重复该操作。其中一个已知框架是BrowserMob-Proxy

  2. 作为第一个,性能测试=)使用相同的框架。步骤几乎相同。记录您的交通信息(例如登录并等待直到加载的页面)然后将信息保存到har。之后使用另一个框架(例如YSLowcommand line version),您可以收集有关请求,时间,大小等的信息。

  3. 这是众所周知的(对我来说)如何使用harf文件的方法。希望这会有所帮助。