Skip to main content

Developer friendly load testing framework

Project description

Locust

Build Status codecov license PyPI PyPI GitHub contributors

Links

Description

Locust is an easy-to-use, distributed, user load testing tool. It is intended for load-testing web sites (or other systems) and figuring out how many concurrent users a system can handle.

The idea is that during a test, a swarm of simulated users will attack your website. The behavior of each user is defined by you using Python code, and the swarming process is monitored from a web UI in real-time. This will help you battle test and identify bottlenecks in your code before letting real users in.

Locust is completely event-based, and therefore it's possible to support thousands of concurrent users on a single machine. In contrast to many other event-based apps it doesn't use callbacks. Instead it uses light-weight processes, through gevent. Each locust swarming your site is actually running inside its own process (or greenlet, to be correct). This allows you to write very expressive scenarios in Python without complicating your code with callbacks.

Features

  • Write user test scenarios in plain-old Python
    No need for clunky UIs or bloated XML—just code as you normally would. Based on coroutines instead of callbacks, your code looks and behaves like normal, blocking Python code.

  • Distributed & Scalable - supports hundreds of thousands of users
    Locust supports running load tests distributed over multiple machines. Being event-based, even one Locust node can handle thousands of users in a single process. Part of the reason behind this is that even if you simulate that many users, not all are actively hitting your system. Often, users are idle figuring out what to do next. Requests per second != number of users online.

  • Web-based UI
    Locust has a neat HTML+JS that shows all relevant test details in real-time. And since the UI is web-based, it's cross-platform and easily extendable.

  • Can test any system
    Even though Locust is web-oriented, it can be used to test almost any system. Just write a client for what ever you wish to test and swarm it with users! It's super easy!

  • Hackable
    Locust is very small and very hackable and we intend to keep it that way. All heavy-lifting of evented I/O and coroutines are delegated to gevent. The brittleness of alternative testing tools was the reason we created Locust.

Documentation

More info and documentation can be found at: https://docs.locust.io/

Questions/help?

For questions about how to use Locust, feel free to stop by the Slack or ask questions on Stack Overflow tagged Locust.

Bug reporting

Open a Github issue and follow the template listed there.

Authors

License

Open source licensed under the MIT license (see LICENSE file for details).

Supported Python Versions

Locust is supported on Python 3.6, 3.7, 3.8.

Project details


Release history Release notifications | RSS feed

This version

1.1.1

Download files

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

Source Distribution

locust-1.1.1.tar.gz (270.0 kB view details)

Uploaded Source

Built Distribution

locust-1.1.1-py3-none-any.whl (289.1 kB view details)

Uploaded Python 3

File details

Details for the file locust-1.1.1.tar.gz.

File metadata

  • Download URL: locust-1.1.1.tar.gz
  • Upload date:
  • Size: 270.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.1

File hashes

Hashes for locust-1.1.1.tar.gz
Algorithm Hash digest
SHA256 4b9846f8bd03dc2c41a07e3ba86323f0ef5560c9a38cde13f6bd3b680d534f5f
MD5 cf4931a4bf9fd688ab8b7085e5f4060d
BLAKE2b-256 56a719800c9d0cbc4f4825f4e3cdd037b7c886c320f8c816a5a939a877a2fa70

See more details on using hashes here.

Provenance

File details

Details for the file locust-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: locust-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 289.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.1

File hashes

Hashes for locust-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 205f7a0bcb6c4e76f608e157a52883f6232516b61e5e4df8f72e8c18a8f639bc
MD5 d959d515399a834750437cab08a583a2
BLAKE2b-256 f6e9370d44afa9a021c6d7dd3204d022d03a695e549ff53873552af30a120dc0

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