All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
The API consists of all public Java types from com.atlassian.performance.tools.virtualusers.api
and its subpackages:
- source compatibility
- binary compatibility
- behavioral compatibility with behavioral contracts expressed via Javadoc
Changing the license is breaking a contract. Adding a requirement of a major version of a dependency is breaking a contract. Dropping a requirement of a major version of a dependency is a new contract.
3.13.0 - 2020-11-17
- Time VU tasks like throttling and diagnosis. Expose
VirtualUserResult.streamTasks
. Resolve JPERF-483.
- Deprecate
VirtualUserResult.streamMetrics
in favor ofstreamActions
to avoid confusion withstreamTasks
.
3.12.0 - 2020-11-12
- Add
VirtualUserNodeResult
andVirtualUserResult
to formalize the filesystem result format. - Write results to the
VirtualUserBehavior.results
path.
3.11.1 - 2020-04-22
- Respect max load for failing actions.
3.11.0 - 2020-03-04
- Generate realistic user names in
RestUserGenerator
.
- Harden HTML page source dump generation.
3.10.0 - 2019-08-02
- Add
TimeControllingUserGenerator
for synchronizing user generators across threads and nodes.
- Generate users before applying load instead of during the ramp. Fix JPERF-535.
3.9.1 - 2019-07-30
- Don't create users by default. Fix JPERF-545.
3.9.0 - 2019-07-24
-
Declare
VirtualUserBehavior.maxOverhead
. Unblock JPERF-530.Virtual Users have one main goal: apply realistic load. But they also have to do auxiliary tasks, like spin up browsers, set up Jira, generate users, flush results to disk. All of these tasks take time and can add up to a significant time overhead. Until now, it was assumed it should fit under 5 minutes. But custom setup actions and user generation can easily break that limit. Therefore it's now set explicitly. It might be used internally to warn, fail fast or otherwise control the VUs. It should be used externally to better inform expected runtime duration, to set up timeouts, progress bars, etc.
3.8.0 - 2019-07-23
- Add SPI for users generation. Resolve JPERF-532.
3.7.0 - 2019-05-27
- Add custom logging configuration. Resolve JPERF-487.
- Add log4j-core to the API.
3.6.6 - 2019-04-29
- Daemonize WebDriver closing threads. Fix JPERF-470.
- Stop checking VU activity after applying load. Resolve JPERF-472.
3.6.5 - 2019-04-25
- Terminate the main thread regardless of interruptibility of VU actions. Fix JPERF-459.
- Close WebDriver if it takes less than 30 seconds.
- Close each VU in parallel to control the total overhead. Avoid JPERF-459.
3.6.4 - 2019-04-08
- Continue applying load despite failed node identification. Resolve JPERF-440.
3.6.3 - 2019-03-27
- Remove login retry mechanism. Resolve JPERF-432.
3.6.2 - 2019-03-19
- Have more patience for user generation. Fix JPERF-411.
- Waste less VU time during user generation.
3.6.1 - 2019-03-11
- Close HTTP connections when creating Jira users. Fix JPERF-411.
3.6.0 - 2019-03-06
- Support creating test users so each virtual user is logged in with a unique user. Reusing the same admin user resulted in a high number of http threads being blocked on user-data-specific locks, causing unrealistically high response times.
3.5.0 - 2019-02-29
- Slow down each VU to a given
VirtualUserLoad.maxOverallLoad
. Fix JPERF-403. - Let
VirtualUserLoad
slice itself into multiple smaller loads. - Let
VirtualUserLoad
check its equivalency with another load. - Let
TemporalRate
multiply and divide itself.
- Deprecate
VirtualUserLoad
constructor in favor ofVirtualUserLoad.Builder
.
3.4.1 - 2019-01-22
- Isolate
ChromeOptions
state betweenGoogleChrome
starts. Fix JPERF-353.
3.4.0 - 2019-01-11
- Let virtual users skip the setup. Unblock JPERF-346.
- Add a builder for
VirtualUserBehavior
.
- Deprecate all
VirtualUserBehavior
methods in favor of the builder.
- Install ChromeDriver only once instead of for every virtual user. Fix JPERF-351.
3.3.6 - 2019-01-04
- Disable /dev/shm usage. Resolves JPERF-333.
3.3.5 - 2019-01-03
- Stop overriding chromedriver if already installed. Resolves JPERF-330.
3.3.4 - 2018-12-03
- Shutting down virtual users which resolves JPERF-281.
3.3.3 - 2018-11-30
- Shutting down virtual users which resolves JPERF-281.
3.3.2 - 2018-11-30
- Race condition while stopping virtual user.
3.3.1 - 2018-11-30
- Add missing browser parameter when serialising VirtualUserOptions to command line parameters.
3.3.0 - 2018-11-27
- Compose
VirtualUserOptions
fromVirtualUserTarget
andVirtualUserBehavior
. - Add a
VirtualUserBehavior.withLoad
to avoid rewriting the rest of the parameters.
- Deprecate the 9-arg
VirtualUserOptions
constructor in favor of the new 2-arg one. - Deprecate the
VirtualUserOptions
getters. Prepare to expose only those getters, which are proven useful.
3.2.0 - 2018-11-23
- Add custom browser support which resolves JPERF-169 and is required for JPERF-243. It also adds SPI to resolve or workaround JPERF-226,JPERF-238,JPERF-196,JPERF-180.
3.1.1 - 2018-11-20
- Do not shutdown JVM in
EntryPoint
. Resolve JPERF-259.
3.1.0 - 2018-11-14
3.0.0 - 2018-11-06
- Remove Kotlin data-class generated methods from API.
- Remove all deprecated API.
2.2.0 - 2018-10-31
Break binary compatibility for com.atlassian.performance.tools.virtualusers.api.VirtualUserOptions
. See JPERF-253.
Roll back to 2.1.5
to restore this compatibility.
- Allow insecure connections. Resolve JPERF-196.
- Print relative paths for dumps in WebDriverDiagnostics as a workaround for JPERF-158.
- Fix serialization of the
help
CLI argument. - Remove custom page load timeout. Decreases JPERF-249 occurrence.
- Deprecate the Kotlin-defaults-ridden
VirtualUserOptions
constructor.
2.1.5 - 2018-10-25
- Hold virtual users before running the setup. Fix JPERF-230
2.1.4 - 2018-10-23
- Validate Jira URI. Fix JPERF-206.
2.1.3 - 2018-10-22
- Support for Chrome v69-71. Fix JPERF-224.
2.1.2 - 2018-10-18
- Terminate the virtual user when it fails to log in or set up in the
setUp
phase. Fix JPERF-217.
2.1.1 - 2018-10-16
- Take screenshots after failed login or setup. Fix JPERF-179.
2.1.0 - 2018-09-12
- Expose virtual user error diagnostics.
2.0.0 - 2018-09-06
- Change the type of
VirtualUserOptions.scenario
.
1.0.2 - 2018-09-06
- Restore
VirtualUserOptions
source and binary compatibility with1.0.0
.
1.0.1 - 2018-09-05
Break source and binary compatibility for com.atlassian.performance.tools.virtualusers.api.VirtualUserOptions
.
Switch to 1.0.2
or newer to restore this compatibility or roll forward with 2.0.0
.
1.0.0 - 2018-09-04
- Define public API for the module
- API for virtual users JAR command line arguments.
- Strict dependency resolution.
0.0.4 - 2018-08-28
- Remove plain text report.
- Add diagnosticsLimit parameter.
0.0.3 - 2018-08-07
- Restore main log. See #2.
0.0.2 - 2018-08-03
- Gradle plugin to compile Kotlin source.
0.0.1 - 2018-08-03
- Generic Virtual Users mechanisms migrated from JPT submodule.
- README.md.
- Bitbucket Pipelines.