Skip to main content

Async load testing framework

Project description

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 in lemmings are 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

  1. Install library (Python >=3.7 required)
    pip install lemmings

  2. 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)
  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

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

lemmings-0.10.0.tar.gz (19.4 kB view hashes)

Uploaded Source

Built Distribution

lemmings-0.10.0-py3-none-any.whl (24.8 kB view hashes)

Uploaded Python 3

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