All Projects → locustio → Locust

locustio / Locust

Licence: mit
Scalable user load testing tool written in Python

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Sass
350 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Locust

awesome-locust
A collection of resources covering different aspects of Locust load testing tool usage.
Stars: ✭ 40 (-99.77%)
Mutual labels:  benchmarking, load-testing, locust, performance-testing
Gatling Dubbo
A gatling plugin for running load tests on Apache Dubbo(https://github.com/apache/incubator-dubbo) and other java ecosystem.
Stars: ✭ 131 (-99.26%)
Mutual labels:  benchmarking, performance-testing, load-testing
load-testing-toolkit
Collection of open-source tools for debugging, benchmarking, load and stress testing your code or services.
Stars: ✭ 65 (-99.63%)
Mutual labels:  benchmarking, load-testing, performance-testing
f1
A tool for writing load test scenarios in Golang with a powerful command line runner
Stars: ✭ 81 (-99.54%)
Mutual labels:  load-testing, load-generator, performance-testing
ddosify
High-performance load testing tool, written in Golang.
Stars: ✭ 3,788 (-78.67%)
Mutual labels:  load-testing, load-generator, performance-testing
Shadowreader
Serverless load testing for replaying website traffic. Powered by AWS Lambda.
Stars: ✭ 138 (-99.22%)
Mutual labels:  benchmarking, performance-testing, load-testing
mzbench
Distributed Benchmarking
Stars: ✭ 39 (-99.78%)
Mutual labels:  benchmarking, load-testing, performance-testing
blockchain-load-testing
Code for load testing the Stellar network.
Stars: ✭ 36 (-99.8%)
Mutual labels:  benchmarking, load-testing
k6-operator
An operator for running distributed k6 tests.
Stars: ✭ 170 (-99.04%)
Mutual labels:  load-testing, performance-testing
awesome-gatling
A collection of resources covering different aspects of Gatling load-testing tool usage.
Stars: ✭ 36 (-99.8%)
Mutual labels:  load-testing, performance-testing
k6-example-github-actions
No description or website provided.
Stars: ✭ 18 (-99.9%)
Mutual labels:  load-testing, performance-testing
XLT
XLT is an comprehensive load and performance test tool developed and maintained by Xceptance.
Stars: ✭ 39 (-99.78%)
Mutual labels:  load-testing, performance-testing
k6-template-typescript
Template to use TypeScript with k6
Stars: ✭ 90 (-99.49%)
Mutual labels:  load-testing, performance-testing
grandma
👵 fully programmable stress testing framework
Stars: ✭ 20 (-99.89%)
Mutual labels:  benchmarking, load-testing
gatf
Generic Automated Test Framework For API/UI/RPA/Load Testing
Stars: ✭ 15 (-99.92%)
Mutual labels:  load-testing, performance-testing
reframe
A powerful Python framework for writing and running portable regression tests and benchmarks for HPC systems.
Stars: ✭ 154 (-99.13%)
Mutual labels:  benchmarking, performance-testing
k6-template-es6
Template repository for bundling test projects into single test scripts runnable by k6
Stars: ✭ 39 (-99.78%)
Mutual labels:  load-testing, performance-testing
Performance-Testing-Tools
🛠 Curated list of Performance Testing Tools ⚡ All contributions are welcome 💜
Stars: ✭ 17 (-99.9%)
Mutual labels:  load-testing, performance-testing
locust-docker
Docker image for the Locust load testing tool and sample Kubernetes configuration files for distributed deployment.
Stars: ✭ 17 (-99.9%)
Mutual labels:  load-testing, locust
Performance Testing Framework
Framework allows to perform load testing with Apache Jmeter, view application/server metrics in real-time with Grafana, analyze errors cause with detailed traces for failed requests, compare different test runs in scripted dashboard and perform frontend performance testing with sitespeed.io+webpagetest
Stars: ✭ 275 (-98.45%)
Mutual labels:  performance-testing, load-testing

Locust

Build Status codecov license PyPI PyPI GitHub contributors

Locust is an easy to use, scriptable and scalable performance testing tool. You define the behaviour of your users in regular Python code, instead of being constrained by a UI or domain specific language that only pretends to be real code. This makes Locust infinitely expandable and very developer friendly.

Features

Write user test scenarios in plain old Python

If you want your users to loop, perform some conditional behaviour or do some calculations, you just use the regular programming constructs provided by Python. Locust runs every user inside its own greenlet (a lightweight process/coroutine). This enables you to write your tests like normal (blocking) Python code instead of having to use callbacks or some other mechanism. Because your scenarios are “just python” you can use your regular IDE, and version control your tests as regular code (as opposed to some other tools that use XML or binary formats)

from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_item(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")

Distributed & Scalable - supports hundreds of thousands of users

Locust makes it easy to run load tests distributed over multiple machines. It is event-based (using gevent), which makes it possible for a single process to handle many thousands concurrent users. While there may be other tools that are capable of doing more requests per second on a given hardware, the low overhead of each Locust user makes it very suitable for testing highly concurrent workloads.

Web-based UI

Locust has a user friendly web interface that shows the progress of your test in real-time. You can even change the load while the test is running. It can also be run without the UI, making it easy to use for CI/CD testing.

Locust UI charts Locust UI stats Locust UI workers Locust UI start test

Can test any system

Even though Locust primarily works with web sites/services, it can be used to test almost any system or protocol. Just write a client for what you want to test, or explore some created by the community.

Hackable

Locust's code base is intentionally kept small and doesnt solve everything out of the box. Instead, we try to make it easy to adapt to any situation you may come across, using regular Python code. If you want to send reporting data to that database & graphing system you like, wrap calls to a REST API to handle the particulars of your system or run a totally custom load pattern, there is nothing stopping you!

Links

Authors

License

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

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].