Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.06 KB

README.md

File metadata and controls

53 lines (40 loc) · 2.06 KB

HAR Replay Utility

A simple utility to replay the contents of a HTTP Archive (HAR) file while maintaining the delay between requests. Utilizes the request npm module to execute the HTTP replay requests.

Installation

Available on the public NPM registry as har-replay.

npm install har-replay --save

Example

var harReplay = require('har-replay');
harReplay.load('example.har');

API

harReplay.load(file, [options])

Load and replay the request in the HAR file found at local path file. A delay of entry.startDateTime - firstEntry.startDateTime will be applied to all requests after the first one.

options

  • timeout: A timeout (milliseconds) to wait for a reply. Defaults to 1 minute.
  • beforeRequest: A function(request) { ... } to manipulate the request before it is replayed. If this method returns false then the request will not be replayed. If your function returns a promise, the library will await it before continuing on to make the request.
  • onResponse: A function(response, request) { ... } to process the response that results from a replayed request. See for the axios response schema.
  • onFinish: A callback function that gets called once all requests have been replayed and all responses (or errors) have been received.
  • onError: A function(error, request) { ... } callback when any error occurs during replay.
  • replayCachedEntries: Whether or not to replay requests where the response was loaded from the browser cache. By default this is false.

Full Example:

const harReplay = require('har-replay');
harReplay.load('example.har', { 
	beforeRequest: function(request) {
		request.headers['Some-New-Header'] = 'abc';
	},
	onResponse: function(response, request, body) {
		console.log(`Response status code for ${request.url}: ${response.status}`);
	},
	onFinish: function() {
		console.log('All done!');
	},
	onError: function(error, request) {
		console.error(error);
	}
});