All Projects → sitespeedio → Chrome Har

sitespeedio / Chrome Har

Licence: mit
Create HAR files from Chrome Debugging Protocol data

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Chrome Har

Go Chrome
A golang library for interacting with the Chrome DevTools Protocol. https://chromedevtools.github.io/devtools-protocol/
Stars: ✭ 96 (-9.43%)
Mutual labels:  chrome
Funds
自选基金助手是一款Chrome扩展,用来快速获取关注基金的实时数据,查看自选基金的实时估值情况
Stars: ✭ 1,367 (+1189.62%)
Mutual labels:  chrome
Cromos
Cromos is a tool for downloading legitimate extensions of the Chrome Web Store and inject codes in the background of the application.
Stars: ✭ 103 (-2.83%)
Mutual labels:  chrome
Chrome remote interface python
Chrome Debugging Protocol interface for Python
Stars: ✭ 98 (-7.55%)
Mutual labels:  chrome
Save In
WebExtension for saving media, links, or selections into user-defined directories
Stars: ✭ 99 (-6.6%)
Mutual labels:  chrome
Shopify Theme Inspector
A Chrome DevTools plugin that visualizes Shopify Liquid render profiling data so you can triage long-running code and reduce server response times!
Stars: ✭ 102 (-3.77%)
Mutual labels:  chrome
Virtual Authenticators Tab
Debug webauthn with a chrome extension that adds a virtual authenticators tab to devtools
Stars: ✭ 95 (-10.38%)
Mutual labels:  chrome
Anno
📗 豆瓣读书笔记第三方客户端
Stars: ✭ 105 (-0.94%)
Mutual labels:  chrome
Sillynium
Automate the creation of Python Selenium Scripts by drawing coloured boxes on webpage elements
Stars: ✭ 100 (-5.66%)
Mutual labels:  chrome
Customrightclickmenu
A browser extension to add links and run scripts/stylesheets all from your right-click menu
Stars: ✭ 102 (-3.77%)
Mutual labels:  chrome
Stack Source Map
Add source map support for error stack (Chrome only)
Stars: ✭ 98 (-7.55%)
Mutual labels:  chrome
Chrome
Docker Automated Build Repository for siomiz/chrome -- Google Chrome via VNC (or via Chrome Remote Desktop)
Stars: ✭ 97 (-8.49%)
Mutual labels:  chrome
Zhishiwenda Helper
百万英雄/冲顶大会/知识超人 答题助手 瞬间使用Chrome打开百度
Stars: ✭ 102 (-3.77%)
Mutual labels:  chrome
Vbot
JSON based visual regression testing library. Liberate creativity, minimize repeated works ✌️
Stars: ✭ 96 (-9.43%)
Mutual labels:  chrome
Puppeteer Webperf
Automating Web Performance testing with Puppeteer 🎪
Stars: ✭ 1,392 (+1213.21%)
Mutual labels:  chrome
Lightcrawler
Crawl a website and run it through Google lighthouse
Stars: ✭ 1,339 (+1163.21%)
Mutual labels:  chrome
Redux Webext
Redux for WebExtensions
Stars: ✭ 101 (-4.72%)
Mutual labels:  chrome
Webviewhook
Exposed Unity Editor WebView API
Stars: ✭ 107 (+0.94%)
Mutual labels:  chrome
Wikipediap2p
WikipediaP2P.org Chrome Extension
Stars: ✭ 105 (-0.94%)
Mutual labels:  chrome
Tabfern
Google Chrome extension for saving and restoring sets of tabs, and for switching between windows and tabs from a vertical, grouped list.
Stars: ✭ 102 (-3.77%)
Mutual labels:  chrome

Chrome-har

Unit tests

Create HAR files based on Chrome DevTools Protocol data.

Code originally extracted from Browsertime, initial implementation inspired by Chromedriver_har.

Create a new bug report

Make sure to generate a event trace log file that we can use to recreate your issue. If you use Browsertime you can enable the trace with --chrome.collectPerfLog:

$ browsertime --chrome.collectPerfLog -n 1 https://www.sitespeed.io

Then take the file named chromePerflog-1.json.gz and put it in a gist or make it availible to us in any way you want.

If you use sitespeed.io:

$ sitespeed.io --browsertime.chrome.collectPerfLog -n 1 https://www.sitespeed.io

Support for Response Bodies

If you use Chrome-har standalone (without Browsertime/sitespeed.io) you can use get the 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});
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].