Results summary

There shell script creates a summary JSON which can be used to compare different runs.

JSON created for each run

For every run, kcb.sh creates a file results.json which contains the input parameters to Gatling and also an output of the results.

Each result summarizes a run, and can be processed further in a pipeline. Each run has a descriptive name and a UUID which identifies the run. The file name contains a timestamp and the UUID, so it is simple to put multiple result files in a single folder for further processing.

A user of the kcb.sh script might want to capture information about the system under test (SUT) as part of the result file to record the information for later use. To do this, the user has to provide a script which collects the information and prints them on the console. For a ROSA environment, there is rosa_describe.sh which would collect the information about the cluster. When the environment variable SUT_DESCRIBE is set, kcb.sh calls the executable and CLI arguments given in the environment variable SUT_DESCRIBE to retrieve the JSON description for the system under test. It then adds it to the file with the key system_under_test. See oc-keycloak-login/action.yml how the environment variable is set for a GitHub workflow.

When running this from a GitHub Workflow, the file name is recorded in the GitHub Action output kcb_result so it can be picked up in later steps in the GitHub Workflow.

Example excerpt from a results JSON file.
{
  "uuid": ...,
  "name": ...,
  "grafana_input": {
    "start": ...,
    "end": ...,
    "input": ...
  },
  "grafana_output": ...,
  "system_under_test": ...
}