TOM: Test Results Analyzer and Benchmarker

TOM is a performance test dataset processing tool. It uses Machine Learning to analyse tests results and provides comparative visualization. TOM is an R package designed as an API running on top of the R software.

Installation

1
2
3
4
5
apt-get -y install r-base
apt-get -y install libcurl4-openssl-dev
R -e 'install.packages("plumber")'
wget https://gitlab.forge.orange-labs.fr/lucy/ihl/TOM/raw/master/src/TOM_release/TOM_0.1.tar.gz
R -e 'install.packages("TOM_0.1.tar.gz", repos=NULL)'

Deploy the TOM API after installation

1
R -e 'TOM::run(8000)'

Deploy the TOM API without installation using Docker (recommanded)

1
2
3
4
mkdir TOM_docker
wget https://gitlab.forge.orange-labs.fr/lucy/ihl/TOM/raw/master/src/TOM_docker/Dockerfile -P TOM_docker/
docker build -t tom_img TOM_docker/    
docker run --name tom_ctn -d -p 8000:8000 tom_img

Use the TOM API

Get the test result file to analyse

1
wget https://gitlab.forge.orange-labs.fr/lucy/ihl/TOM/blob/master/src/TOM_example/test_opnfv_yardstick_tc012.csv

Load file

1
curl <your_local_ip>:8000/read?file=test_opnfv_yardstick_tc012.csv

Analyze 'bandwidth.MBps.' values according to 'deploy_scenario', 'version', 'pod_name' and 'runner_id' (variables in the loaded file)

1
curl <your_local_ip>:8000/analyze?input=deploy_scenario:version:pod_name:runner_id&output=bandwidth.MBps.

View bivariate correlation between the inputs and the output variable

1
curl <your_local_ip>:8000/correlation

View the analysis results in terms of output variable explaination rate obtained by combining inputs

1
curl <your_local_ip>:8000/explain

View the corresponding graphic

1
curl <your_local_ip>:8000/explainGraph > explainGraph.png

Compare different PODs (boxplots)

1
curl <your_local_ip>:8000/comparGraph?input=pod_name&output=bandwidth.MBps.&limit=10 > comparGraph.png

Compare different configurations described by pod_name and deploy_scenario (boxplots)

1
curl <your_local_ip>:8000/comparGraph?input=pod_name:deploy_scenario&output=bandwidth.MBps.&limit=20 > comparGraph2.png

See the API doc for more details.