## Setting up the services:

### Services requirements:
#### Java 8
#### Python
##### Flask
#### Gradle
#### Maven

##### 1. Generate services or use the ones in server_artifacts and put them your server of choice
##### 2. Create systemd .service files for them (Java 8) and start them


##### NB - getbinary runs on port 8080, sendbinary on port 8081, getbinaryattachment on port 8082 and REST API on port 5001.

## Load tester setup:

### Load tester requirements:
#### Java
#### Python
##### --- Pandas
##### --- Plotly
#### Gradle
#### Jmeter
##### Custom SOAP Sampler plugin

##### 1. Copy the securityserver.tester into a new git repository
##### 2. Change the config.properties and tests.json accordingly and commit the changes to repository (if you changed the names of the services then you also have to change the JMX files)
##### 3. Make a new freestyle project named "Security server load tester" (you can later change this manually)
##### 4. Build once to generate workspace/jobs folder
##### 5. Delete content in Jenkins/jobs/Security server load tester and copy content from jenkinsJob into Jenkins/jobs/Security server load tester
##### 6. Change config.xml and builds/1/build.xml workspace and repository paths to the corresponding ones
##### 7. Jenkins -> Manage Jenkins -> Reload configuration from Disk
##### 8. Jenkins -> Manage Jenkins -> Script console -> System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") (this is for showing the html report on Jenkins)
##### 9. Run the build twice to confirm everything works, you can view the configurations manually and ensure all the paths are correct. 
##### 10. Graphs are published into a HTML report

####  NB:
##### Ensure that the Python PATH is to a Python that has Plotly and Pandas installed
##### Ensure that your Java version is 8 or above

#### Default tests have every request with threads: 1, duration: 60s and size: 10MB



