4. Building Mark59 From GitHub Source

The nature of Mark59 and it's design makes it is quite a simple process for anyone with a Java background to build all it's components from the GitHub repository source code.

To Start

We are assuming you will be using the Eclipse IDE (or similar such as STS), and have downloaded the Mark59 GitHub repo at https://github.com/mark-5-9/mark59 to your machine.

For the latest development build, you can pull from our 'work-in-progress' repository at https://github.com/mark-5-9/mark59-wip. We don't guarantee the state of this is repository, but generally speaking should be fine. Anyone considering contributing to Mark59 (see below) should also use this repository.

Eclipse Imports and Builds

Import all Maven projects into Eclipse. Maven builds required to create artefacts are listed (in build order) below.

Project

Maven Goals

Target Artefact

Component

Notes

dataHunter

clean package

dataHunter.war

DataHunter

mark59-core

clean package install

mark59-core.jar

Selenium Scripting, Server Metrics

Deployed version available from Central Repository

mark59-selenium-implementation

clean package install

mark59-selenium-implementation.jar

Selenium Scripting

Deployed version available from Central Repository

mark59-selenium-sample-dsl

clean package install

mark59-selenium-sample-dsl-{version}.jar

Selenium Scripting (samples)

dataHunterPVTest

clean package

dataHunterPVTest.jar

Selenium Scripting (samples)

jar is required for JMeter test execution only

mark59-server-metrics

clean package

mark59-server-metrics.jar

jar (optionally) required for JMeter test execution

metrics

clean package install

metrics.war

Trend Analysis

metricsRuncheck

clean package

metricsRuncheck.jar

Trend Analysis

resultFilesConverter

clean package

resultFilesConverter.jar

JMeter Reporting

Database Requirements

As covered in the Installing DataHunter and Installing the Trend Analysis Web Application. The SQL build files are available in the repository at these locations:

  • {repo}/dataHunter/databaseScripts/MYSQLdatahunterDataBaseCreation.sql

  • {repo}/metrics/databaseScripts/MYSQLpvmetricsDataBaseCreation.sql

  • (repo}/metrics/databaseScripts/MYSQLcreateAdminUser.sql (a copy also in DataHunter)

Test Execution

Test execution of the Maven built artefacts is covered in Installing the components of Mark59. The bat files listed there (and a few extra ones) can be found in the root of the projects. The bat files contain basic documentation on how to execute them.

To run DataHunter, metrics (Trend Analysis) web application and the Selenium script samples from Eclipse, we suggest installing the Boot Dashboard as discussed in the Installing and Executing the Selenium-JMeter Sample Scripts section.

Some of the other projects have classes you can run directly from Eclipse as 'Java Applications', listed in the table below. These classes contain at least basic information about how to execute them.

Project

Main Class(es)

mark59-server-metrics

ServerMetricsCapture, NewRelicServerMetricsCapture

metricsRuncheck

Runcheck

resultFilesConverter

ResultFilesConverter (also see ResultFilesConverterTest)

Unfortunately at the time of writing, we have only a handful of unit or functional tests written, we hope to improve this in the future.

Contributing to Mark59

If you would like to contribute, we'd love to hear from you. We suggest you please contact us at admin@mark59.com. We are just a small team of working Performance Testers, so our resources are somewhat limited for change, but we'll try our best to accommodate good ideas.

Just a few suggestions and notes on the code base.. The first thing you'll notice is Mark59 doesn't actually contain a lot of code! The main components are more to do with integrating existing open source solutions than writing from scratch (Trend Analysis is the exception). We, like many Performance and Automation Testers around the world, are not full-time advanced Java specialists, so it has been written in a way that we think makes it as simple as possible to understand for someone with mid-level Java skills. We have built to Java 1.8 compliance, tried to keep the code well documented, and minimised Maven Dependencies. We've have issues on a few releases combining the huge dependency trees of JMeter and Selenium, so you should find most of the Java APIs you would ever want to use are already available anyway.

The latest public development build is available on GibHub at https://github.com/mark-5-9/mark59-wip. We'd suggest forking that repository as your starting point.