A load-testing framework for running massively parallel tests
amoc_coordinator
by @NelsonVides in https://github.com/esl/amoc/pull/174
Full Changelog: https://github.com/esl/amoc/compare/3.1.0...3.2.0
Supervision trees have been introduced for users, coordinators, and throttles, that give better load-balancing, as well as introspection using observability tools.
Since #171 the controller get_status/0
callback returns a map with named values, for more explicit information. If the previous return value was being pattern-matched in your code, this needs to be updated.
Full Changelog: https://github.com/esl/amoc/compare/3.0.0...3.1.0
The load-testing framework for massively parallel testing, more generic than ever!
What started as a load-testing tool for our internal use-cases, has grown over years of experience and uncountable use-cases to be a generic tool for load testing, completely flexible to fit any use-case.
This version leaves the specific decisions of your environment to you, exposing comprehensive instrumentation for you to plug your own metrics and logging backends of choice; a clearly documented interface to plug your preferred APIs; and language agnostic, supporting now scenario distribution in a cluster by distributing BEAM bytecode directly and allowing you to provide your own parser for environment variables, so that you can run your scenarios in any language that runs on top of the BEAM.
Where all these choices were enforced, now amoc lets you choose as it fits. For a drop-in replacement of the old amoc, where Graphite, REST, and Erlang have already been chosen, see amoc-arsenal.
Full Changelog: https://github.com/esl/amoc/compare/2.2.1...3.0.0
Full Changelog: https://github.com/esl/amoc/compare/3.0.0-rc2...3.0.0-rc3
Full Changelog: https://github.com/esl/amoc/compare/3.0.0-rc1...3.0.0-rc2
Full Changelog: https://github.com/esl/amoc/compare/2.2.1...3.0.0-rc1
This release focuses on the REST API, which is now powered by OpenAPI Specifications generated by openapi-generator.
curl -s -H "Content-Type: text/plain" -T scenario.erl 'http://localhost:4000/upload'
-required_variable(...)
module attribute format:-type module_attribute() :: #{name := name(),
description := string(),
default_value => value(),
verification => verification_method(),
update => update_method()}.
/scenarios/info/{scenario_name}
REST API, it returns edoc description of the scenario module and all the relevant settings declared using -required_variable(...)
attribute./execution/*
REST APIs:
/execution/start
- starts scenario on all the nodes in the cluster/execution/stop
- stops scenario execution on all the nodes in the cluster/execution/add_users
- adds new users on all or specific nodes in the cluster/execution/remove_users
- removes users on all or specific nodes in the cluster/execution/update_settings
- updates scenario settings on all or specific nodes in the cluster/status
REST API, introduction of the /status/{node_name}
REST API (which can be used to check the status of other nodes in the cluster). The following thing are reported:
Changed: