Lemmings
lemmings is an small yet powerful load testing tool.
It is intended for load testing of (web-)systems by test scenarios written in asynchronous way.
Features
- test steps written as async method
- system-independent
In most cases tests written inlemmingsare web-oriented, but it is possible to test almost any system if there is async way to communicate with it. - metrics for generator performance
Each running worker produce Prometheus-ready metrics.
It is possible either to pull current metrics from worker or push metrics to Influx.
Quick start
-
Install library (Python >=3.7 required)
pip install lemmings -
Create test suite
from lemmings import *
class ExampleTestPlan(TaskSet):
@Task(weight=5)
async def test_create_target(self, run):
await self.service.create_entity(1, "test")
@Task(weight=3)
async def test_wait(self, run):
await run.sleep(self.timings.wait_time, "do nothing during wait time")
await self.service.remove_entity(1)
- Create test suite
import multiprocessing
from lemmings import *
if __name__ == '__main__':
prometheus = Prometheus()
shared = multiprocessing.Value("i", 0)
g = TestExecutor()
g.add_test_plan(ExampleTestPlan())
g.start_all(shared)
prometheus.dump_to_influx()
prometheus.clean() # workaround against prometheus work with multiprocessing
How it works
TODO
Shared data
Each test suite is executing by pool of workers in parallel. Each worker run in diffent process with multiprocessing
It is possible to use shared variable using standard multiprocessing features (Lock, Array, Value, manager, etc.)
TODO
License
Open source licensed under the MIT license (see LICENSE file for details).
Supported Python Versions
Locust is supported on Python >=3.7
Release files for lemmings 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lemmings-0.10.0.tar.gz | 19.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lemmings-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.2 kB
Release files / lemmings-0.10.0.tar.gz
| Download URL | lemmings-0.10.0.tar.gz |
|---|---|
| Size | 19.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5380583c4e5bd2f5884cd5c738d716bcf52c76f481b593a440f7585ada98a164
|
|
BLAKE2b-256 checksum How to use checksums |
1a8f6c8adb14eb5c0119b086798258439817f3b73e9b6347cfc69393ab159b3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4
|
Release files / lemmings-0.10.0-py3-none-any.whl
| Download URL | lemmings-0.10.0-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f497135034aaa909e9ab4f636868f519970a086b1b24bc55e6f8b99084d728c
|
|
BLAKE2b-256 checksum How to use checksums |
9692b8927789219fa727ce8382a09e7422c687290fd0614ffc6a3c5c30c24e9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4
|