Imagos SoftwareHome

About UsContact UsLinks 

Web Site Performance Testing with HarLog

There are a number of approaches to getting performance metrics for a web site. Ultimately web site performance should be best gauged by the page response within a client browser. This approach leverages a number of freely available tools to collect data and report on site performance. A simple setup guide is provided below using Firefox to fetch pages from the site, so the results would be similar to those seen by visitors, and Firebug to collect detailed metrics on page performance.


HarLog takes HAR format files or a HAR HTTP formatted stream and creates a tab delimited output file. The output file can then be imported into Excel or similar to create graphical reports. HarLog may be used with a number of other data sources including Yahoo! YSlow and dynaTrace AJAX Edition.
	HarLog Version:
		-d {directory name} read HAR input from directory
		-i {input file name} read HAR input file name
		-o {output TSV file name} set output file name
		-s {basic|tabular} select the output style
		-t {url,url} tabulate metrics
		-f {firebug|yslow} parse HAR format. Default (auto)
		-a Ignore URL arguments (default)
		-h {none|all|firebug|yslow} write TSV header with selected heading (all default)
		-c clear TSV file each run 
		-w run as a mini-web server
		-a Save data from web requests
		-v Enable verbose debug information
  • For a single file: HarLog -f firebug -h -i C:\tmp\homepage.har -o c:\tmp\results.txt
  • For a directory: HarLog -f firebug -h -d C:\tmp\hardir -o c:\tmp\results.txt
  • For a directory & tabulate: HarLog -f firebug -s tabular -h -d C:\tmp\hardir -t ","-o c:\tmp\results.txt
  • To run the mini-web server: HarLog -w

HarLog can also be configured through the application Harlog.exe.config file.

  • directory - Set the HAR input/output directory
  • output - Set output file name
  • tabulate - Tabulate metric based on the URL list e.g.,
  • style - Set the output style, either "basic" or "tabular"
  • header - Write header line, with "none" for none or "all" or "firebug" or "yslow" headings
  • clear - Delete the output file each run
  • args - Ignore URL arguments
  • webserver (bool) - Run as mini-web server
  • archive (bool) - Save data from web requests
  • verbose (bool) - Enable verbose debug information

HarLog requires the Microsoft .NET 4.0 runtime. This can be downloaded from

Manual Performance Reports with Firebug

The followings is a set of steps to create a simple report of web site performance:

  • Firefox web browser
  • Firebug
  • NetExport
  • HarLog
  • Selenium IDE (or similar) - optional to generate traffic
  • Excel (or other charting package) - optional to create charts and graphs


Mozilla Firefox - is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation.

Firebug - is a is a popular, powerful web development plugin-for Firefox. Firebug's Network Monitoring tab provides a detailed timeline of when each file started and stopped loading relative to all the other files.

NetExport - is a Firebug extension that allows exporting all collected and computed data from the Net panel. The structure of the created file uses HTTP Archive (HAR) format (based on JSON).

HarLog will take HAR files or a HAR HTTP stream formatted and create a tab delimited output file. HarLog can also generate a "pivot table" style report summarising data from a collection of HAR files. This is useful if you wish to get average page performance over time and or you would like to baseline the performance of a site under development across versions. HarLog can be downloaded from this site.

Manual report setup:
  • Install Firefox, then Firebug, then NetExport on a suitable test PC. Install the HarLog utility onto the PC for reporting.
  • Open up Firebug, and select the "Net" panel. With NetExport installed you should see an "Export" button on the "Net" panel. Next to this button is a round button to enable "Auto Export". Alternately, you can click on the "Export" drop down button, go to "Options" and enable "Auto Export". This will save the results from each page fetch, while the "Net" panel is active into the "Export" default log directory.
  • Navigate through the site you are testing.
  • Configure HarLog to point to the "Export" default log directory, a suitable export file, and for a tabular report add the URL's to report on. See the HarLog section for further configuration details.
  • Lauch HarLog to generate the report

Configuring for Firebug/NetExport

The following is a guide for configuring Firebug/NetExport support with HarLog. Modify the Mozilla Firefox about:config with appropriate URL attribute value to direct YSlow beacon output to HarLog.

  • Find the preference setting for extensions.firebug.netexport.beaconServerURL and if you have installed HarLog locally set the value to http://localhost:9090/
  • Set extensions.firebug.netexport.autoExportToServer to true

Run HarLog with a "-w" option or set the app.config "webserver" value to "true" and lauch HarLog to collect data.

Configuring for Yahoo! YSlow

The following is a guide for configuring Yahoo! YSlow support with HarLog. Modify the Mozilla Firefox about:config with appropriate URL attribute value to direct YSlow beacon output to HarLog. Using the default mini-web server settings the following is an example configuration.

  • extensions.yslow.beaconUrl = http://localhost:9090/ type string
  • extensions.yslow.beaconInfo = grade type string
  • extensions.yslow.optinBeacon = true type boolean

Some users would like to automatically collect YSlow information for each page. The following additional FireFox configuration setting can be used in this case:

  • extensions.yslow.autorun = true type boolean

Run HarLog with a "-w" option or set the app.config "webserver" value to "true" and lauch HarLog to collect data.

Configuring for dynaTrace AJAX Edition

The following is a guide for configuring dynaTrace AJAX Edition support with HarLog. To send metrics to your instance located at http://localhost:9090/, open dtajax.ini file in the root of dynaTrace AJAX installation folder and add the following two lines to it:

  • -Dcom.dynatrace.diagnostics.ajax.beacon.uploadurl=http://localhost:9090/beacon/dynatrace/
  • -Dcom.dynatrace.diagnostics.ajax.beacon.portalurl=http://localhost:9090/

Run HarLog with a "-w" option or set the app.config "webserver" value to "true" and lauch HarLog to collect data. dynaTrace is currently only in beta state. Please contact me for the lastest version of you are planning to test this feature.