Releases: tag1consulting/goose
Releases · tag1consulting/goose
v0.11.2
- introduce telnet Controller allowing real-time control of load test, optionally disable with
--no-telnet
, supports the following commands:
ohelp
(and?
) display help
oexit
(andquit
) exit the telnet Controller
oshutdown
shuts down the running load test (and exits the controller)
ohost
(andhosts
) HOST sets host to load test against, ie http://localhost/
ousers
(anduser
) INT sets number of simulated users
ohatchrate
(andhatch_rate
) FLOAT sets per-second rate users hatch
oruntime
(andrun_time
) TIME sets how long the load test should run
oconfig
displays the current load test configuration
oconfig-json
displays the current load test configuration in json format
ometrics
(andstats
) displays metrics for the current load test
ometrics-json
(andstats-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:
oconfig
andconfig-json
both return the load test configuration in json format
ometrics
andmetrics-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 withGooseDefault::NoAutoStart
)
o renamedstop
Controller command toshutdown
o added newstart
Controller command, telling idle Goose load test to start
o added newstop
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
0.11.1 May 16, 2021
- update
rand
dependency to0.8
branch, updategen_range
method call - update dependencies:
itertools
to0.10
,simplelog
to0.10
,url
to2
- update
nng
dependency for optionalgaggle
feature - simplify
examples/umami
regex when parsing form - allow configuration of algorithm for allocating
GooseTask
s the same asGooseTaskSet
s;GooseTaskSetScheduler
becomes more genericallyGooseScheduler
- specify (and detect) minimum
rustc
requirement of1.49.0
, due toflume
dependency which in turn depends onspinning_top
which useshint::spin_loop
which stabilized inrustc
version1.49.0
- standardize links in documentation; general documentation cleanups
v0.11.0
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
GooseMethod
s renamed to enforce Rust naming conventions in regards to case, for exampleGooseMethod::GET
becomesGooseMethod::Get
- use
vec![]
macro to avoid unnecessarily pushing data into mutable vectors - call
format!
macro directly for improved readability - remove unnecessary
panic!
- API change: all
v0.10.9
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
- upgrade to
tokio
1.x, and switch toflume
for all multi-producer, multi-consumer channels - introduce
--report-file
(andGooseDefault::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
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
oGooseDebug::MetricsFile
becomesGooseDebug::RequestsFile
oGooseDebug::MetricsFormat
becomesGooseDebug::RequestsFormat
- reset drift timer any time the attack_phase changes
- document all public high level files and functions
v0.10.6
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
GooseTaskSet
s to startingGooseUser
s:
oGooseTaskSetScheduler::RoundRobin
allocates 1 of each availableGooseTaskSet
at a time (new default)
oGooseTaskSetScheduler::Serial
allocates all of each availableGooseTaskSet
in the order they are defined
oGooseTaskSetScheduler::Random
allocates 1 randomGooseTaskSet
from all available - when enabled, display running metrics for the entire duration of test, including ramp-up and shutdown
v0.10.5
0.10.5 Nov 5, 2020
- support floating point hatch rate (ie, hatch 1 user every 2 seconds with
-r .5
)
v0.10.4
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
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