Skip to content

Releases: probably-not/live-load

v0.1.1

23 Apr 18:46
Immutable release. Only release title and notes can be modified.
cf42ea1

Choose a tag to compare

A minor release, because of course, on my first release, I was going to mess up something super small... 😅

Enhancements

Docs

  • [LiveLoad.Reporter.Markdown] Make sure that the LiveLoad.Reporter.Markdown module is scoped properly in the docs.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

23 Apr 18:27
Immutable release. Only release title and notes can be modified.
f8d2ca5

Choose a tag to compare

This is the first public release of LiveLoad.

For the full development journey (and basically my personal development diary) from an empty repo to this release, see the Devlog.

If you are just getting started with LiveLoad, the Writing Your First Scenario guide is the best place to start. It covers everything from basic navigation to throttles, assigns, and the full scenario lifecycle.

Enhancements

Core

  • [LiveLoad] Add LiveLoad.run/1 as the main entrypoint for running load tests
  • [LiveLoad.Scenario] Add behaviour for defining load test scenarios with config/1, throttles/1, and run/3 callbacks
  • [LiveLoad.Scenario] Add use LiveLoad.Scenario macro that sets up the behaviour, imports context functions, and provides default callback implementations
  • [LiveLoad.Scenario.Runner] Add gen_statem based scenario runner that loops run/3 until duration expires, halt, or failure
  • [LiveLoad.Scenario.Discovery] Add various levels of automatic scenario discovery to allow running scenarios in different ways

Scenario Context

  • [LiveLoad.Scenario.Context] Add Plug.Conn inspired pipeline struct with automatic error short-circuiting
  • [LiveLoad.Scenario.Context] Add navigation functions: navigate/2, reload/1
  • [LiveLoad.Scenario.Context] Add element interaction functions: click/2, fill/3, clear/2, press/3, check/2, uncheck/2, select_option/3, select_multiple_options/3, focus/2, blur/2, hover/2, drag_and_drop/3, wait_for_selector/2
  • [LiveLoad.Scenario.Context] Add LiveView specific functions: ensure_liveview/1, wait_for_liveview/1, wait_for_phx_loading_completion/3, submit_form/2
  • [LiveLoad.Scenario.Context] Add value extraction functions with :as option: page_content/2, inner_html/3, inner_text/3, text_content/3, input_value/3, get_attribute/4, visible?/3, checked?/3
  • [LiveLoad.Scenario.Context] Add assigns management: assign/3, reset_assigns/1, clear_assign/2, update_assign!/3
  • [LiveLoad.Scenario.Context] Add flow control: halt/1, fail/2, halted?/1, failed?/1
  • [LiveLoad.Scenario.Context] Add browser storage functions: context_storage_snapshot/2, restore_context_storage/2, reset_context_storage/1
  • [LiveLoad.Scenario.Context] Support resolvable values (1-arity functions receiving the context) for selectors, URLs, and values

Throttles

  • [LiveLoad.Scenario.Throttle.Rate] Add rate limiter with configurable interval and gradual ramp-up support
  • [LiveLoad.Scenario.Throttle.Interarrival] Add interarrival-based throttle with gradual ramp-up support
  • [LiveLoad.Scenario.Throttle.Parallelism] Add concurrency limiter

Browser

  • [LiveLoad.Browser] Add browser abstraction with pluggable LiveLoad.Browser.Connection behaviour
  • [LiveLoad.Browser.Connection.Playwright] Add Playwright based browser connection using PlaywrightEx
  • [Mix.Tasks.LiveLoad.Install] Add mix live_load.install task to download the Playwright standalone driver and Chromium binaries

Distribution

  • [LiveLoad.Cluster] Add FLAME based elastic cluster formation with automatic node count calculation based on resource availability
  • [LiveLoad.Cluster.Node] Add FLAME.Trackable node struct for eager cluster priming
  • [LiveLoad.Cluster.AmocSeed] Add parallel cluster seeding with direct pinging to work around gossip deadlocks on larger clusters

Telemetry and Results

  • [LiveLoad.Telemetry.Listener] Add per node telemetry listener collecting metrics into DDSketch structures via ddskerl
  • [LiveLoad.Telemetry.Collector] Add primary node collector that merges sketches from all nodes into a single result
  • [LiveLoad.Result] Add compact, JSON-serializable result struct with 101-point precomputed quantile curves, dimensioned histograms and counters, time-series buckets, and per-node breakdowns

Reporters

  • [LiveLoad.Reporter.Markdown] Add simple tabular markdown reporter
  • [LiveLoad.Reporter.HTML] Add self-contained single-file HTML reporter with embedded React/TypeScript SPA

v0.0.1-rc.59

19 Apr 12:09
Immutable release. Only release title and notes can be modified.
49ee024

Choose a tag to compare

v0.0.1-rc.59 Pre-release
Pre-release

v0.0.1-rc.58

19 Apr 10:45
Immutable release. Only release title and notes can be modified.
5ac0a3b

Choose a tag to compare

v0.0.1-rc.58 Pre-release
Pre-release

v0.0.1-rc.57

17 Apr 10:20
Immutable release. Only release title and notes can be modified.
c7a0c7e

Choose a tag to compare

v0.0.1-rc.57 Pre-release
Pre-release

v0.0.1-rc.56

15 Apr 17:40
Immutable release. Only release title and notes can be modified.
489cc56

Choose a tag to compare

v0.0.1-rc.56 Pre-release
Pre-release

v0.0.1-rc.55

15 Apr 16:39
Immutable release. Only release title and notes can be modified.
47666e8

Choose a tag to compare

v0.0.1-rc.55 Pre-release
Pre-release

v0.0.1-rc.54

15 Apr 16:10
Immutable release. Only release title and notes can be modified.
7674ce1

Choose a tag to compare

v0.0.1-rc.54 Pre-release
Pre-release

v0.0.1-rc.53

15 Apr 11:20
Immutable release. Only release title and notes can be modified.
e7a7575

Choose a tag to compare

v0.0.1-rc.53 Pre-release
Pre-release

v0.0.1-rc.52

15 Apr 09:05
Immutable release. Only release title and notes can be modified.
405c164

Choose a tag to compare

v0.0.1-rc.52 Pre-release
Pre-release