Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grafana/har-to-k6
JSON config representation of K6 script
https://github.com/grafana/har-to-k6
har k6-converter
Last synced: 2 months ago
JSON representation
JSON config representation of K6 script
- Host: GitHub
- URL: https://github.com/grafana/har-to-k6
- Owner: grafana
- License: apache-2.0
- Created: 2019-02-20T16:53:32.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-25T15:45:27.000Z (9 months ago)
- Last Synced: 2024-09-21T09:16:55.608Z (3 months ago)
- Topics: har, k6-converter
- Language: JavaScript
- Size: 4.79 MB
- Stars: 126
- Watchers: 140
- Forks: 31
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-k6 - har-to-k6 - Tool for converting HAR recordings to k6 test scripts. (Tools)
- awesome-k6 - har-to-k6 - Tool for converting HAR recordings to k6 test scripts. (Tools)
README
![har-to-k6 cover image](./assets/har-to-k6-cover.png)
# har-to-k6
Converts [LI-HAR](li-har.spec.md) and [HAR](https://w3c.github.io/web-performance/specs/HAR/Overview.html) to [K6 script](https://docs.k6.io/docs).![GitHub Actions Status](https://github.com/grafana/har-to-k6/workflows/Release/badge.svg)
![NPM Version](https://img.shields.io/npm/v/har-to-k6.svg)
![NPM Weekly Downloads](https://img.shields.io/npm/dw/har-to-k6.svg)
![DockerHub](https://img.shields.io/docker/pulls/grafana/har-to-k6.svg)
## Content
- [Installation](#installation)
- [Local Installation (recommended)](#local-installation-recommended)
- [Global Installation](#global-installation)
- [Docker](#docker)
- [Usage](#usage)
- [CLI Usage](#cli-usage)
- [Programmatic Usage](#programmatic-usage)
- [Browser Usage](#browser-usage)
- [Specifications](#specifications)
- [Credits](#credits)## Installation
### Local Installation (recommended)
While possible to install globally, we recommend that you, if possible, add the converter to the
`node_modules` of your test project using:```shell
$ npm install --save har-to-k6
```Note that this will require you to run the converter with `npx har-to-k6 your-har-file` or,
if you are using an older version of npm, `./node_modules/.bin/har-to-k6 your-har-file`.### Global Installation
```shell
$ npm install --global har-to-k6
```### Docker
```shell
$ docker pull grafana/har-to-k6:latest
```## Usage
### CLI Usage
#### Npx
```shell
$ npx har-to-k6 archive.har -o my-k6-script.js
```#### From `node_modules`
```shell
$ ./node_modules/.bin/har-to-k6 archive.har -o my-k6-script.js
```#### Global
```shell
$ har-to-k6 archive.har -o my-k6-script.js
```#### Docker
```shell
$ docker run grafana/har-to-k6:latest archive.har > my-k6-script.js
```### Programmatic Usage
#### Converting
```js
const fs = require("fs");
const { liHARToK6Script } = require("har-to-k6");async function run () {
const archive = readArchive();
const { main } = await liHARToK6Script(archive);
fs.writeFileSync("./load-test.js", main);
}
```#### Validating
Use `validate()` to run validation alone. Returns without error for a valid
archive. Throws `InvalidArchiveError` for validation failure.```js
const { InvalidArchiveError, validate } = require("har-to-k6");const archive = readArchive();
try {
validate(archive);
} catch (error) {
if (error instanceof InvalidArchiveError) {
// Handle invalid archive
} else {
throw error;
}
}
```### Browser Usage
`har-to-k6` can be ran in the browser. This exposes the standard
API under `harToK6`.#### Importing as ES module
```javascript
import { liHARToK6Script } from "har-to-k6";
```#### CommonJS style
```javascript
const { liHARToK6Script } = require("har-to-k6");
```#### Using a `` tag
Load `standalone.js` into your HTML page:
```html
<html>
<head>
<title>HAR Converter</title>
<script src="standalone.js">