Robot Load Test Utility

A rudimentary utility for defining and running concurrent testsuite tests is available for execution in the Robot container.

The following is an example of the JSON definition of a loadtest that may be input into the utility.

loadtest.json



{
"duration" : 300,
"cyclelength" : 150,
"profile" : [
[0, ["health"]],
[5, ["health"]],
[10, ["distribution", "health"]]
]
}

{
"duration" : 300,
"cyclelength" : 150,
"profile" : [
[0, ["health"]],
[5, ["health"]],
[10, ["distribution", "health"]]
]
}



The meaning of this is 

  1. Run the profile for "duration" (300 seconds or 5 minutes)

  2. A single iteration over profile is "cyclelength" (150 seconds). cyclelength >= the accumulated profile time.

  3. Wait 0 seconds and initiate "health" test

  4. Wait 5 seconds and initate "health" test

  5. Wait 10 seconds and initiate a "distribution" and a "health" test

  6. Wait until end of cyclelength and start again until duration expires.


Invoking Load Test via runSoak.sh



  • Upload profile file to robot VM /opt/eteshare to make it available to the Robot docker container in /share

  • Connect to docker container 

docker exec -it openecompete_container bash

docker exec -it openecompete_container bash

  • cd to Robot home folder

cd /var/opt/OpenECOMP_ETE

cd /var/opt/OpenECOMP_ETE

  • Run the runSoak.sh against the uploaded file (Note that duration and cyclelength may be overridden on the command line.)

 ./runSoak.sh -p /share/loadtest.json

 ./runSoak.sh -p /share/loadtest.json

  • Output is redirected to /share/logs/soak_<pid>.log or /opt/etehsare/logs/soak_<pid>.log so these can be tailed for progress.




Robot logs are written to subfolder  /share/logs/soak_<pid> or /opt/etehsare/logs/soak_<pid>