All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning
2.2.1 - 2021-07-19
- PR#138 - Fixing docsh dependency
2.2.0 - 2021-07-15
This release enables OTP24, and migrates CI to Github Actions.
- PR#135 - Switching from TravisCI to GH Actions
- PR#136 - Enabling OTP24 compatibility. Only OTP releases since 23.0 are supported now.
2.1.0 - 2020-08-19
This release focuses on the REST API, which is now powered by OpenAPI Specifications generated by openapi-generator.
- PR#123 - simplification of scenario uploading, now it can be done using the following command:
curl -s -H "Content-Type: text/plain" -T scenario.erl 'http://localhost:4000/upload'
- PR#124 - switch from cowboy-swagger to amoc_rest (framework generated using openapi-generator). Online Swagger UI documentation for the current release can be found here.
- PR#125 - possibility to update scenario settings at runtime. Support of the settings for helper modules. Update of the
-required_variable(...)
module attribute format:
-type module_attribute() :: #{name := name(),
description := string(),
default_value => value(),
verification => verification_method(),
update => update_method()}.
- PR#130 - added new
/scenarios/info/{scenario_name}
REST API, it returns edoc description of the scenario module and all the relevant settings declared using-required_variable(...)
attribute. - PR#131 - implementation of the
/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
- PR#132 - remove the legacy way of providing configuration through erlang app environment variables
- PR#133 - significant improvement of the
/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:- Amoc application status (up/down)
- Amoc specific env. variables
- Amoc controller status + runtime scenario settings for running/terminating/finished states
2.0.1 - 2019-12-05
- add some fixes in the documentation
- set the release version automatically
2.0.0 - 2019-12-03
- extended amoc documentation
- automatic distribution of the uploaded scenarios to all the nodes in the amoc cluster
- amoc configuration:
- mandatory declaration of the required parameters for the scenario
- ets based
amoc_config:get/2
interface
amoc_controller
- module doesn't hold any information about the cluster any more, it's now a responsibility of theamoc_dist
module
- integration tests for docker based amoc cluster
- possibility to dynamically add the new amoc node to the cluster
- unused rebar dependencies
2.0.0-beta - 2019-10-29
- exometer - now Amoc uses only exometer_core and 2 reporters graphite and statsd
- scenario for GDPR removal
- scenarios and helpers related to XMPP - they were moved to https://github.com/esl/amoc-arsenal-xmpp
- dependency on escalus, amqp_client and other libraries not directly used by Amoc
1.3.0 - 2019-10-28
- escalus to esl/escalus@58c2bf8
amoc_xmpp
new helper functionsend_request_and_get_response
amoc_xmpp_handlers
new function for constructing handlersamoc_scenario
behavior was extended with optional callbackscontinue
,terminate
,next_user_batch
more details in #90- Amoc's docker container allows to pass
AMOC_EXTRA_CODE_PATHS
env var with path to additional beam files - Amoc's REST API allows to start a scenario which is outside of Amoc's
scenario
directory amoc_config
- allows to pass env vars containing value
false
- allows to parse and validate scenario variables passed as env vars
- allows to pass env vars containing value
amoc_dist
andamoc_slave
now master node is the one a scenario is started onamoc_throttle
works in distributed mode now- documentation - the structure of the documentation was reworked and the content was updated and extended
amoc_xmpp_muc
new module with helper function for building MUC scenarios- scripts and documentation showing how to setup and run load tests with multiple Amoc nodes in docker containers
iq_metrics
helper for generic metrics related to IQ stanzasMUC
andMUC_light
load test scenariosamoc_coordinator
to coordinate sessions
- ansible scripts for deploying amoc
amoc_annotations
moduleconfig
helper module - functionality moved toamoc_config
1.2.1 - 2019-10-18
amoc_controller
to allow passing stated from scenario'sinit
callback tostart
callbackamoc_metrics
support gauge metric typeamoc_scenario
behavior to allow passing state frominit
tostart
callbacksamoc_xmpp
connect_or_exit
function was extended to allow passing extra user/connection options- new function
pick_server/1
which picks random server from config varxmpp_servers
- supported Erlang/OTP versions - now the oldest supported is Erlang/OTP 21.2
- escalus updated to esl/escalus@f20bee4
- scenarios where adjusted to be compatible with the updated escalus
- helper module for scenario configuration
amoc_throtlle
moduleamoc_xmpp_user
module for unified user and password generation
1.2.0 - 2019-01-16
amoc_metrics
- now only 2 type of metrics are available via theamoc_metrics
APIcounters
- counting occurrences of an event in total and in last minute. This is exometer's spiral metric. Its name is prefixed with[amoc, counters]
.times
- provides statistic of given action execution time. This is exometer's histogram metric. Its name is prefixed with[amoc, times]
.
amoc_xmpp
- a new module, currently with only one function simplifying connection to the XMPP serveramoc_xmpp_handlers
- a new module with 2 handlers which can be used with escalus's stnaza handler feature. See sample scenarios (mongoose_simple_with_metrics) for examples.
1.1.0 - 2019-01-04
- updated deps #67:
- escalus
- lager to
3.6.8
- jiffy to
0.15.2
- trails to
2.1.0
- cowboy_trails to
2.1.0
- recon to
2.4.0
- cowboy to
2.3.0
- amqp_client
3.7.9
- mochijson2
- lhttpc
1.0.0 - 2019-01-04
- use rebar3 to build the project #62
Dockerfile
to build local version of Amoc - enables automated builds #66
0.9.1 - 2018-04-09
- esl/escalus updated to esl/escalus@47848b5
iproute2
pkg to amoc's docker- ability to pass graphite's port number to amoc's docker container
- Core functionality of parallel scenario execution (in either local or distributed environment)
- Possibility of controlling the scenario during execution (via the Erlang API)
- Basic instrumentation with Graphite metrics and annotations (via exometer reporter)
- An HTTP API for controlling scenario execution remotely
- Ansible automation for deploying and configuring the release on many nodes
- Set of Docker files in order to facilitate automation, but without Ansible
- Example XMPP and HTTP scenarios
- Very basic documentation