Skip to content

Releases: tag1consulting/goose

v0.11.2

10 Jun 05:28
f1e900a
Compare
Choose a tag to compare
  • introduce telnet Controller allowing real-time control of load test, optionally disable with --no-telnet, supports the following commands:
    o help (and ?) display help
    o exit (and quit) exit the telnet Controller
    o shutdown shuts down the running load test (and exits the controller)
    o host (and hosts) HOST sets host to load test against, ie http://localhost/
    o users (and user) INT sets number of simulated users
    o hatchrate (and hatch_rate) FLOAT sets per-second rate users hatch
    o runtime (and run_time) TIME sets how long the load test should run
    o config displays the current load test configuration
    o config-json displays the current load test configuration in json format
    o metrics (and stats) displays metrics for the current load test
    o metrics-json (and stats-json) displays metrics for the current load test in json format
  • telnet Controller bind host defaults to 0.0.0.0, can be configured with --telnet-host
  • telnet Controller bind port defaults to 5116, can be configured with --telnet-port
  • telnet Controller defaults can be changed:
    o default to not enabling telnet Controller: GooseDefault::NoTelnet (bool)
    o default host to bind telnet Controller to: GooseDefault::TelnetHost (&str)
    o default port to bind telnet Controller to: GooseDefault::TelnetPort (usize)
  • introduce WebSocket Controller allowing real-time control of load test, optionally disable with --no-websocket, supports the same commands as the telnet Controller, except:
    o config and config-json both return the load test configuration in json format
    o metrics and metrics-json both return metrics for the current load test in json format
  • WebSocket Controller bind host defaults to 0.0.0.0, can be configured with --websocket-host
  • WebSocket Controller bind port defaults to 5117, can be configured with --websocket-port
  • WebSocket Controller defaults can be changed:
    o default to not enabling WebSocket Controller: GooseDefault::NoWebSocket (bool)
    o default host to bind WebSocket Controller to: GooseDefault::WebSocketHost (&str)
    o default port to bind WebSocket Controller to: GooseDefault::WebSocketPort (usize)
  • make it possible to start and stop a load test without completely restarting Goose
  • introduce --no-autostart to disable automatically starting the load test, leaves Goose in an idle state waiting for Controller commands (optionally change the default with GooseDefault::NoAutoStart)
    o renamed stop Controller command to shutdown
    o added new start Controller command, telling idle Goose load test to start
    o added new stop Controller command, telling running Goose load test to stop and return to idle state
  • code cleanup and logic consollidation to support Controller fixed a bug where metrics wouldn't display and the debug file, request file, and html report weren't written when load test was stopped while still launching users
  • regularly sync metrics, using a timeout to avoid hanging the main loop
  • properly reset metrics when load test is stopped and restarted
  • properly flush debug file, request file, and html report when stopping load test with Controller
  • properly (re)create debug file, request file, and html report when starting load test with Controller
  • if metrics are enabled, display when controller stops load test
  • de-duplicate code with traits, gaining compile-time validation that both Controllers are properly handling all defined commands
  • add async_trait dependency as stable Rust doesn't otherwise support async traits
  • allow starting Goose without specifying a host if --no-autostart is enabled, requiring instead that the host be configured via a Controller before starting a load test
  • add test for telnet and WebSocket Controllers

v0.11.1

16 May 05:40
6ee16c8
Compare
Choose a tag to compare

0.11.1 May 16, 2021

  • update rand dependency to 0.8 branch, update gen_range method call
  • update dependencies: itertools to 0.10, simplelog to 0.10, url to 2
  • update nng dependency for optional gaggle feature
  • simplify examples/umami regex when parsing form
  • allow configuration of algorithm for allocating GooseTasks the same as GooseTaskSets; GooseTaskSetScheduler becomes more generically GooseScheduler
  • specify (and detect) minimum rustc requirement of 1.49.0, due to flume dependency which in turn depends on spinning_top which uses hint::spin_loop which stabilized in rustc version 1.49.0
  • standardize links in documentation; general documentation cleanups

v0.11.0

09 Apr 10:48
Compare
Choose a tag to compare

0.11.0 April 9, 2021

  • capture errors and count frequency for each, including summary in metrics report; optionally disable with --no-error-summary
  • clippy cleanups (prepare for Rust 2021 https://blog.rust-lang.org/inside-rust/2021/03/04/planning-rust-2021.html):
    • API change: all GooseMethods renamed to enforce Rust naming conventions in regards to case, for example GooseMethod::GET becomes GooseMethod::Get
    • use vec![] macro to avoid unnecessarily pushing data into mutable vectors
    • call format! macro directly for improved readability
    • remove unnecessary panic!

v0.10.9

23 Mar 11:18
Compare
Choose a tag to compare

0.10.9 March 23, 2021

  • avoid unnecessary work on Manager when starting a Gaggle
  • respect --hatch-rate when starting a Gaggle
  • update httpmock for running tests
  • remove unnecessary Result() types where no error was possible

v0.10.8

13 Feb 08:12
Compare
Choose a tag to compare
  • upgrade to tokio 1.x, and switch to flume for all multi-producer, multi-consumer channels
  • introduce --report-file (and GooseDefault::ReportFile) to optionally generate an HTML report when the load test completes
  • make examples/umami more generic for easier load testing of any Drupal 9 version of the demo install profile

v0.10.7

16 Nov 10:44
29e731c
Compare
Choose a tag to compare

0.10.7 Nov 16, 2020

  • account for time spent doing things other than sleeping, maintaining more consistency when displaying statistics and shutting down
  • start each debug log file with a line feed in case the page is too big for the buffer; increase the debug logger buffer size from 8K to 8M.
  • introduce --no-debug-body flag to optionally prevent debug log from including the response body
  • rename the metrics file to requests file to better reflect what it is
    o --metrics-file becomes --requests-file
    o --metrics-format becomes --requests-format
    o GooseDebug::MetricsFile becomes GooseDebug::RequestsFile
    o GooseDebug::MetricsFormat becomes GooseDebug::RequestsFormat
  • reset drift timer any time the attack_phase changes
  • document all public high level files and functions

v0.10.6

10 Nov 12:48
5faca77
Compare
Choose a tag to compare

0.10.6 Nov 10, 2020

  • replace --only-summary with --running-metrics <usize>, running metrics are disabled by default
  • allow configuration of the algorithm used when allocating GooseTaskSets to starting GooseUsers:
    o GooseTaskSetScheduler::RoundRobin allocates 1 of each available GooseTaskSet at a time (new default)
    o GooseTaskSetScheduler::Serial allocates all of each available GooseTaskSet in the order they are defined
    o GooseTaskSetScheduler::Random allocates 1 random GooseTaskSet from all available
  • when enabled, display running metrics for the entire duration of test, including ramp-up and shutdown

v0.10.5

05 Nov 07:22
d7e11ad
Compare
Choose a tag to compare

0.10.5 Nov 5, 2020

  • support floating point hatch rate (ie, hatch 1 user every 2 seconds with -r .5)

v0.10.4

01 Nov 06:29
9789e35
Compare
Choose a tag to compare

0.10.4 Nov 1, 2020

  • add new examples/umami for load testing Drupal 9 demo install profile
  • replace TermLogger with SimpleLogger for increased logging flexibility
  • add initial OCI Dockerfile for container-based workflows
  • use checked subtraction when calculating drift duration to prevent panic
  • update nng-rs dependency to fix bug when testing that the manager is ready

v0.10.3

14 Oct 11:41
67e5130
Compare
Choose a tag to compare

0.10.3 Oct 14, 2020

  • fixup sticky redirect tests to properly test functionality
  • add test/sequence.rs to confirm sequencing tests works correctly, even in Gaggle mode
  • deduplicate test logic by moving shared functionality into tests/common.rs; consistently test functionality both in standalone and Gaggle mode
  • properly create debug log when enabled in Gaggle mode