Create HAR files based on Chrome DevTools Protocol data.
Code originally extracted from Browsertime, initial implementation inspired by Chromedriver_har.
Chrome-har optionally supports response bodies in HARs if they are set on the response object by the caller and if the includeTextFromResponseBody
option is set to true
.
For example:
const harEvents: Array<any> = [];
client.on('Network.requestIntercepted', async (params: any) => {
// Get the response body
const response = await client.send(
'Network.getResponseBodyForInterception',
{ interceptionId: params.interceptionId },
);
// Set the body on the response object
if (params.response != null) {
params.response.body = response.body;
} else {
params.response = response;
}
// Continue the request
await client.send(
'Network.continueInterceptedRequest',
{ interceptionId: params.interceptionId },
);
harEvents.push({ method, params });
});
const har = harFromMessages(harEvents, {includeTextFromResponseBody: true});