Tag1consulting Goose Versions Save

Load testing framework, inspired by Locust

0.17.2

8 months ago

0.17.2 August 28, 2023

New Contributors

Full Changelog: https://github.com/tag1consulting/goose/compare/0.17.1...0.17.2

0.17.1

8 months ago

0.17.1 August 17, 2023

  • #543 remove external dependency on num_cpus(), use instead built-in available_parallelism() added in rust 1.59.0
  • #552 add scenario_index, scenario_name, transaction_index and transaction_name to the request log
  • #553 remove serde_cbor dependency no longer required due to [#529]
  • #554 update flume, itertools, strum, strum_macros, tokio-tungstenite, and tungestenite dependencies to latest versions
  • #555 don't panic when report has no data

0.17.0

1 year ago

Gaggle support has been temporarily removed in this release. Regression testing summary and details.

0.17.0 December 9, 2022

  • #529 API change temporaryily removed Gaggle support gaggle feature) to allow upgrading Tokio and other dependencies.
    • if you require Gaggle support, use Goose 0.16.4 with Tokio 0.15 for now; Gaggle support is being added back in https://github.com/tag1consulting/goose/pull/509
    • updated Tokio to 1.23, updated tungestenite and tokio-tungstenite to 0.18; updated ctrlc to 3.2; updated num_cpus to 1.14, updated simplelog to 0.12, updated nix to 0.26, updated rustls to 0.20, updates serial_test to 0.9
    • removed nng dependency and gaggle feature
    • removed --manager, --expect-workers, --no-hash-check, --manager-bind-host, --manager-bind-port, --worker, --manager-host, --manager-port and related configuration defaults
    • removed AttackMode::Manager and AttackMode::Worker
    • ignore all Gaggle tests, will re-enable these tests when Gaggle support is re-implemented
    • Box TransactionError to avoid over-allocating memory on the stack (see examples/session.rs for an example of working with this)

0.16.4

1 year ago

0.16.4 September 20, 2022

  • #512 include proper HTTP method and path in logs and html report when using GooseRequest::builder()
  • #514 fix panic when an empty wait time interval is set
  • #516 fix unescaped inner quotes in csv logs
  • #519 implement Default for GooseConfiguration
  • #522 display times on the report in local time (instead of UTC)

0.16.3

1 year ago
  • #498 ignore GooseDefault::Host if set to an empty string
  • #487 add dev-dependency on (nix)[https://docs.rs/nix] to provide test coverage confirming proper shutdown from SIGINT (ctrl-c); capture ctrl-c in a lazy_static wrapped in a RwLock so it can be reset
  • #489 don't panic when writing report file and shutting down with controller
  • #505 introduce --scenarios (and GooseDefault::Scenarios) so a subset of scenarios can be launched, and --scenarios-list to display internal machine names for matching

0.16.2

1 year ago

0.16.2 May 20, 2022

0.16.1

1 year ago

0.16.1 May 12, 2022

  • #464 add startuptime (and startup_time) TIME to controllers, setting how long the load test should spend starting configured number of users
  • #469 support users INT command on controllers during a running load test
  • #473 introduce test-plan PLAN command allowing configuration of test plan with the controller during running and idle load tests

0.16.0

2 years ago

This release includes some significant changes. See https://github.com/tag1consulting/goose-eggs/pull/45 for an example of how to update from 0.15.2 to 0.16.0.

0.16.0 May 1, 2022

  • #431 rename --no-granular-data to --no-granular-report
  • #415 display granular data in HTML graphs, introduce --no-granular-data to disable it and display graphs as they were until this change
  • #406 make sure that the graphs are built correctly if the load test is interrupted during the starting phase
  • #408 update 'Running the load test' page in the Goose book to show HTML report
  • #411 API change: some public APIs have been made private or removed o util::MovingAverage structure and all related functions have been moved to a different namespace and made private o GooseRequestMetricAggregate::requests_per_second, GooseRequestMetricAggregate::errors_per_second and GooseRequestMetricAggregate::average_response_time_per_second have been removed o GooseTaskMetricAggregate::tasks_per_second has been removed o GooseMetrics::users_per_second has been removed o formerly public methods report::task_metrics_template() and report::errors_template() have been made private o report::graph_rps_template(), report::graph_eps_template(), report::graph_average_response_time_template(), report::graph_users_per_second_template() and report::graph_tasks_per_second_template() have been removed
  • #379 API change: default to INFO level verbosity, introduce -q to reduce Goose verbosity o note: -v now sets Goose to DEBUG level verbosity which when enabled will negatively impact load test performance; set -q to restore previous level of verbosity
  • #379 API change: remove .print() which is no longer required to display metrics after a load test, disable with --no-print-metrics or GooseDefault::NoPrintMetrics
  • #422 API change: introduce --test-plan and GooseDefault::TestPlan o internally represent all load tests as Vec<(usize, usize)>l test plan o use [FromStr] to auto convert --test-plan "{users},{timespan};{users},{timespan}", where {users} must be an integer, ie "100", and {timespan} can be integer seconds or "30s", "20m", "3h", "1h30m", etc, to internal Vec<(usize, usize)> representation o don't allow --test-plan together with --users, --startup-time, --hatch-rate, --run-time, --no-reset-metrics, --manager and --worker o internal AttackPhases renamed: Starting -> Increase, Running -> Maintain, Stopping -> Decrease
  • #449 API change: rename GooseTaskSet -> Scenario, GooseTask -> Transaction, GooseTaskResult -> TransationResult, GooseTaskEror -> TransactionError, WeightedGooseTasks -> WeightedTransactions, GooseTaskFunction -> TransactionFunction, test_start_task -> test_start_transaction, test_stop_task -> test_stop_transaction, register_task -> register_transaction, task! -> transaction!, --no-task-metrics -> --no-transaction-metrics, GooseTaskError -> TransactionError
  • #450 add support for variable speed and multiple decrease AttackPhases
  • #452 API change: rename --status-codes to --no-status-codes and enable collecation and summary of status codes by default

0.15.2

2 years ago

0.15.2 December 13, 2021

  • #391 properly sleep for configured set_wait_time() walking regularly to exit quickly if the load test ends
  • #394 add additional graphs to the HTML report: errors per second, average response time, active users, active tasks
  • #403 wake up a couple times a second to handle message and allow for a quick shutdown if the load test is canceled during startup

0.15.1

2 years ago

0.15.1 November 19, 2021

  • #374 renamed simple-with-session.rs to session.rs and simple-closure.rs to closure.rs to avoid confusion with the simple.rs example as they all do different things
  • #385 properly configure --running-metrics VALUE when set manually
  • #382 set client timeout to 60 seconds by default, used for all requests made; introduce --timeout VALUE where VALUE is seconds as integer or a float; timeout can be configured programatically using GooseDefault::Timeout
  • #381 display requests per second graph on the HTML report