Skip to main content

Developer friendly load testing framework

Project description

PyPI PyPI Build Status

har2locust

Creating a locust file from scratch is sometimes hard. Don't you wish you could just generate it automatically from a browser session?

Well, now you can!

When browsing the web with the Developer Tools open you can record the Network Activities (requests perform by your browser & responses you get from servers). Then you can export all these data into an HAR file (Http ARchive).

Here's an example of har2locust's output

har2locust builds upon har2py, modified to generate a locustfile instead of a basic Python file and extended to support plugins.

Note: It is currently in early beta. It mostly works, but there may be changes to behaviour and interface without notice. If you encounter an issue, PRs are very welcome.

Also, dont expect that the generated file will always work out of the box. You'll need to add response validations to ensure the quality of your test, and perhaps parametrize dynamic data like usernames.

Installation

pip install har2locust

This will also install locust and locust-plugins, because they are needed to run the generated locustfiles.

Usage

  1. Navigate the web with your browser while recording your activity. Then save the data in HAR file. Here is an example with Chrome Devs Tools har.gif

  2. Run har2locust myharfile.har > locustfile.py

> har2locust --help
usage: har2locust [-h] [-t TEMPLATE] [--plugins PLUGINS] [--resource-types RESOURCE_TYPES] [--version]
                  [--loglevel LOGLEVEL]
                  input

positional arguments:
  input                 har input file

options:
  -h, --help            show this help message and exit
  -t TEMPLATE, --template TEMPLATE
                        jinja2 template used to generate locustfile. Defaults to locust.jinja2. Will check current
                        directory/relative paths first and har2locust built-ins second
  --plugins PLUGINS     Comma separated list of extra python files to source, containing decorated methods for
                        processing the har file.
  --resource-types RESOURCE_TYPES
                        Commas separated list of resource types to be included in the locustfile. Supported type are
                        `xhr`, `script`, `stylesheet`, `image`, `font`, `document`, `other`. Defaults to
                        xhr,document,other.
  --version, -V         show program's version number and exit
  --loglevel LOGLEVEL, -L LOGLEVEL

Example usage: har2locust myrecording.har --plugins myplugin1.py > locustfile

Parameters can also be set using environment variables or config files (har2locust.conf or ~/.har2locust.conf)
for details, see syntax at https://goo.gl/R74nmi
  1. You can define "plugins" to process your input using the ProcessEntries decorator. The built in plugins (e.g. rest.py are used by default, and serve as examples for how to make your own.

  2. har2locust also reads two files, .urlignore and .headerignore (from your current directory). Populate them with regexes to filter any unwanted requests or headers from your recordings. Some headers are always ignored (cookie, content-length and chrome's "fake" headers) Here are some examples: .urlignore, .headerignore

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

har2locust-0.2.2.tar.gz (25.6 MB view details)

Uploaded Source

Built Distribution

har2locust-0.2.2-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file har2locust-0.2.2.tar.gz.

File metadata

  • Download URL: har2locust-0.2.2.tar.gz
  • Upload date:
  • Size: 25.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for har2locust-0.2.2.tar.gz
Algorithm Hash digest
SHA256 979e551da576591b2651d886ad17b147ca478e03ceb36f7f3de5e76498cc76f3
MD5 11323d93f6a9d2e533269ae619f9d883
BLAKE2b-256 e7b1a28c309560e44cb20e6b0141830488e2529550061b4d8fc1912d603a9b26

See more details on using hashes here.

Provenance

File details

Details for the file har2locust-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: har2locust-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for har2locust-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9272fb5c99645cd1bac0b45964321338d9015389f742285b7a040ef018f4bed8
MD5 58327f93eb702b1a0d27a629e60384e3
BLAKE2b-256 762fb79bcb1ba1d96424eee2197f540d8cbe8a1b48dd3885425948e48c808d88

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page