/csi-marconi

Load & Security tests for Marconi

Load Tests

Marconi uses Tsung (Tsung 1.5 or higher) to run load tests.

Table of Contents

Setting up the Load Generators

  1. Install tsung in all the machines. (See Section: Installing Tsung from Source). One of the machines will be the controller, & the rest will be clients.

  2. Enable ssh connection with no passphrase, between the tsung controller and each of the clients.

  3. Update the /etc/hosts in all the machines. The controller:/etc/hosts should have entries pointing to all the clients, as well as itself. All the clients, should have an entry for the controller in /etc/hosts. (We want to avoid the overhead of a dns lookup.)

  4. Increase file descriptors available, in all the tsung machines. Add the following to /etc/security/limits.conf:

    root soft  nofile 9000
    root hard  nofile 65000
    
  • reboot.
  • Verify the change has taken place by 'umlimit –n'.

Installing Tsung from Source

  1. Create ubuntu 13.04 server
  2. apt-get update
  3. apt-get install gnuplot-nox libtemplate-perl libhtml-template-perl libhtml-template-expr-perl
  4. apt-get install gnuplot erlang make git autoconf
  5. wget http://tsung.erlang-projects.org/dist/tsung-1.5.0.tar.gz
  6. tar –xzvf tsung-1.5.0.tar.gz
  7. cd tsung-1.5.0
  8. chmod 755 configure
  9. ./configure
  10. make
  11. make install

Steps to run the load tests

  1. Clone this git repo to your tsung controller.
  2. Copy the .tsung directory from load/*/.tsung to the home directory (~), on your tsung controller.
    • happy_path directory has load tests with only positive scenarios.
    • all_scenarios directory has tests with positive and negative scenarios
  3. Update the tsung.xml
    • Update the <clients> section of ~/.tsung/tsung.xml, to point to your tsung machines. (Do not use IP addresses here.)
    • Update the <servers> section, to point to your marconi server.
    • Replace all auth tokens, with a valid auth token. (This is intentionally manual, to avoid accidentally stressing the production auth.)
  4. Update ~/.tsung/projectid.csv, to include the tenant ID of your account.
  5. Create queues with the names in ~/.tsung/existingqueue.csv, if your account doesn't have them already.
  6. Start tsung in the controller with 'tsung start'

Generating Test Reports

  1. After the test is complete, cd to the log directory generated by the tests in the controller machine. (eg. cd ~/.tsung/logs/20130701-1635)
  2. Generate html reports with '/usr/lib/tsung/bin/tsung_stats.pl'
  3. You can run a simple web server to view reports, with 'python -m SimpleHTTPServer'
  4. Enjoy your performance reports!!

Security Tests

To Be Updated