Mark59 is an open-source Java-based set of tools, with the aim of providing the capability of performance testing applications in a regular, repeatable manner, by having a focus on the automated detection of SLA breaches in a test, and highlighting trends and issues with the application under test over time. It is designed so that this is achievable without necessarily needing to have purely specialist performance test skills.We’ve avoided calling Mark59 a ‘framework’, as that word is often used in test automation to describe ‘clever’ software hiding or overlying core technologies, so people using them don't have a fair chance to feel motivated and to learn the proper skills they need in the industry. Rather, for example, our integration of two popular products in test automation, JMeter and Selenium (or Playwright), along with the work we have put into our examples and documentation, hopefully gives Performance Testers and Automation Testers an insight into scripting skills that can be easily learnt and benefit each other’s skill sets.Mark59 was designed to run on Windows or Linux-based operating systems, and is compatible with Macs.
Sample Screens:
Current Release: Version 6.5 (March 2026)
Download: mark59-6.5.zip
(649.3 MB download via Google Drive link)Release Summary:
Select the appropriate zip version to download the executable jar files and samples. Linux and Windows compatible.If you are looking for the source code, see: https://github.com/mark-5-9/mark59Details of release changes can be found at: https://github.com/mark-5-9/mark59?tab=readme-ov-file#releases
Extensive review of source code using AI (via Copilot), focusing on future-proofing source code scans by fixing issues AI rated as critical or serious, includes security problems (weak encryption, sql injection), improving documentation, improving error messaging, adding more JUnit tests, and implementing multiple coding solutions AI considered preferable.
Trends UI : (Bug) Fix Event and Graph Mapping Admin pages, had incorrect HTTP Mappings in the previous release
Trends UI : (Bug) Transaction names with commas did not work properly. Commas are now replaced with a dash.
Playwright Scripting : Several new options have been made available : PLAYWRIGHTIGNOREHTTPSERRORS, PLAYWRIGHTGEOLOCATION, PLAYWRIGHTEXTRAHTTPHEADERS, PLAYWRIGHTHTTPCREDENTIALS, PLAYWRIGHTBYPASSCSP, PLAYWRIGHTLOCALE, PLAYWRIGHTOFFLINE, PLAYWRIGHTSTORAGE_STATE (these are generally the Playwright BrowserContextOptions that can be entered as strings (such as on the JMeter Java Request parameters panel). See JavaDocs for details.
Dependencies Updated: poi to 5.5.1, spring-boot to 4.0.3, selenium to 4.40.0 (chrome v144), playwright to 1.57.0
Summary of Changes with Potential Incompatibilities
Trends UI : SQL inputs into 'Advanced Filters' are now sanitized, so input using various string and keyword combinations will fail. For example, the strings "..test UPDATE set.."'and "..test EXEC sp.." will have the keywords removed and likely fail)
UI Scripting: The parameter ADDITIONALOPTIONS has been renamed to BROWSERLAUNCHARGS for improved clarity. Please update your JMeter Playwright and Selenium test scripts to use BROWSERLAUNCH_ARGS instead.
Database Change
Metrics Database: For existing implementations a script (see DatabaseScripts folder in the Mark59 download file) should be executed to increase the length of the PASSWORD_CIPHER field of the SERVERPROFILES table, for MySQL and Postgres DBs.
Updating Encryption Ciphers
Migration from SimpleAES to SecureAES
Versions of Mark59 prior to this release use a weak encryption class SimpleAES. Encryptions created by this class will NOT work with the new SecureAES. You can use the SimpleAES class in mark59-core or SimpleAESUtility that ships in the mark59-scripting-samples project if you need to recover the original string for re-encryption. Documentation on usage of the new encryption algorithm is available in the SecureAES class in mark59-core or SimpleAESUtility that ships in the mark59-scripting-samples project.
Encrypted String Usage within Mark59
The follow list are places where options to encrypt/decrypt are implemented
TrendsLoad: encrypted MySql or Postgres database password, cmd line 'y' option
Metrics: 'Create Cipher' option when creating/editing a NIX or WMIC remote server connection
Metrics API: url mark59-metrics/api/cipher?pwd=stringtoencrypt can be used to obtain an encrypted string
Previous Release: Version 6.4 (August 2025)
Download: mark59-6.4.zip
(632.9 MB download via Google Drive link)Release Summary:
UI Scripting: By default, Exception stack traces have always been written to the console and the log4j log (as well as to a log file if parameter ONEXCEPTIONWRITESTACKTRACE is true). This can now be suppressed by setting the new additionalTestParameters ONEXCEPTIONWRITESTACKTRACETOCONSOLE and ONEXCEPTIONWRITESTACKTRACETOLOG4J_LOGGER to false.
Trends Load : New parameter 'maxNumberofruns' (n) : Maximum number of runs to be stored for this application id excluding baselines. The oldest non-baseline run(s) will be removed from the database when this count is exceeded. Set to '-1' or '0' to deactive. Defaults to 500
DataHunter : (Bug) Remove an unnecessary SQL when processing Reusable Indexed' data
All Web Apps : Explicitly use GetMapping or PostMapping anotation instead of RequestMapping, plus many smaller code and JavaDocs tidy ups
Dependencies Updated: spring-boot to 3.5.4, selenium to 4.34.0 (to chrome v138), playwright to 1.53.0
Summary of Changes with Potential Incompatibilities For this Release
For UI scripting BROWSEREXECUTABLE argument is no longer in use. Please use OVERRIDEPROPERTYMARK59BROWSER_EXECUTABLE
View https://github.com/mark-5-9/mark59 for additional details and older releases.
Our Mark59 User Guide documentation can be found below:
Mark59 User Guide for Version 6 PDF (6.5 MB download via Google Drive link)
Mark59 User Guide for Version 6 GDOC (6.4 MB Google Doc)
Get a feeling of how it works in a few minutes by going through the 'Quick Start' chapters.
Mark59 started from some ideas conceived around 2014 and has since developed to our latest release. It was developed by a team of working Performance and Volume testers at the Australian Insurance Company IAG in Melbourne. Our team, more out of necessity to maintain multiple and varied applications, over time changed practices from a traditional way of testing to something very similar to what is now called Dev Ops, and created a set of tools on the way that has become Mark59.A core team has worked on the project for most of its life, but many, many ideas came from the excellent Performance Testers that have been part of the team over the years. Not to mention (the sometimes rather blunt but valuable) feedback we have received from our client projects and others. We hope we haven't missed too many from the acknowledgements, but great ideas and suggestions have come to us from many, so we fear we have.
The Core Team:
Philip Webb
Dhivya Raghavan
Greg Johnstone
Major Contributors:
Michael Cohen
John Gallagher
Sanman Basavegowda
David Nguyen
Edmond Lew
Grateful Acknowledgements:
Khushal Rawal
Stephen Townshend
Srivalli Krishnardhula
Pankaj Harde
Mallamma Ganigi
Gaurav Shukla
Nikolai Chetverikov
The biblical story of the 'Exorcism of the Gerasene demonic' appears in the New Testament in all of the synoptic gospels (Mathew, Mark and Luke), but the most well known account is from Mark's gospel. At a critical point in the story Jesus challenges the demon in a possessed man to name itself, and discovers he is not facing one demon but many when the famous reply comes "My name is Legion, for we are many" (Mark 5:9).We couldn't help relating our (admittedly trivial) struggles with turning a single Selenium script into many with this wonderful story, and so 'mark59.com'.
You can contact us to give suggestions or feedback via the form below.
Note that we are a small working team, but we will do our best to respond.