Skip to content

CLI utility to convert .har file to expectation .json file.

License

Notifications You must be signed in to change notification settings

radekBednarik/har-to-expectations

Repository files navigation

har-to-expectations

CLI tool to convert HAR file to expectations .json file which is ready for the Mock-Server

Exported .json file is then ready to be either further manually modified or sent to the Mock-Server as is.

You could use this tool to handle this easily from CLI.

Installation

npm install -g @bednarik_radek/har-to-expectations

Usage

To display CLI help run:

npx har -h

You should see something like this:

Usage: har [options] [command]

Options:
  -h, --help                            display help for command

Commands:
  convert <harPath> <jsonPath> <regex>  converts .har file to .json file with expectations.
  merge [options] <harPath> <jsonPath> <regex> merges new .har file into existing .json expectations file.
  help [command]                        display help for command

conversion

Example

  • we have exported a HAR file from the browser to the ./har folder
  • we want to convert it to the ./expectations folder
npx har convert ./har/requests.har ./expectations/expectations.json "https://www.example.com"

This command will do the following:

  • read the ./har/requests.har file and parse it to the JSON object with Har typings

  • filter out all requests which are not matching the https://www.example.com regex

  • convert the remaining requests to the JSON object as valid expectations

  • save the result to the ./expectations/expectations.json file

Important notes

This utility is not doing full .har-to-.json conversion. It is only converting the requests and responses from the .har. Also, it is only adding certain parts of to expectations from requests/responses, which are needed to use them as mocks.

What is converted

  • request

    • method
    • pathname
    • body, if it is present
    • query parameters, if they are present
  • response

    • status code
    • response body, if it is present

Merging

Example

  • we want to add new expectations to the existing .json file

  • if expectation alredy exists, we want to update the httpResponse part - thus updating the mocked values

npx har merge ./network-log.har ./existing-expectations.json --update

Logging

  • provide:
    • LOG_LEVEL ENV variable to set the log level. Default is info
    • LOG_ENABLED=true ENV variable to enable logging. Default is false. Logging is done only to console. It is pretty-printed.