+Rally is used for benchmarking and running Tempest. Robot is used for running OpenDaylight test suites.
+
+A script (config_test.py) has been created to simplify as much as possible the installation of the different suites of tests.
+
+This script config_test.py_ is hosted in OPNFV repository and uses the configuration file config_functest.yaml_::
+
+ usage: config_functest.py [-h] [-d] [-f] path action
+
+ positional arguments:
+ repo_path path to the repository
+ action Possible actions are: 'start|check|clean'
+
+ optional arguments:
+ -h, --help show this help message and exit
+ -d, --debug Debug mode
+ -f, --force used to avoid prompting the user for confirmation when cleaning functest environment.
+
+Actions
+ * start: will prepare the functional testing environment
+ * check: will check the configuration (scenarios available, environment variables properly set, networks,..)
+ * clean: will clean the functional test environement if existing
+
+This script will:
+ * Install Rally environment
+ * Install Robot environment
+ * Install Tempest
+ * Retrieve test scenarios
+ * Create temporary neutron private network (if needed)
+ * Create Glance images
+
+
+When integrated in CI, there are no additional prerequisites.
+When running functest manually, the only prerequisite consists in retrieving the OpenStack credentials (rc file).
+This file shall be saved on the jumphost. It must be sourced by the user (who shall have sudo rights) executing the tests.
+
+For the Continuous Integration we store this file under $HOME/functest/opnfv-openrc.sh on the jumphost server so CI can automatically execute the suite of tests
+
+The procedure to set up functional testing environment can be described as follow:
+
+Log on the Jumphost server. Be sure you are no root then execute::
+
+ [user@jumphost]$ mkdir <Your_functest_directory>
+ [user@jumphost]$ cd <Your_functest_directory>
+ [user@jumphost]$ git clone https://git.opnfv.org/functest
+ [user@jumphost]$ cd testcases/
+
+Modify and adapt needed parameters in the config_functest.yaml. Follow the instructions below.
+
+Retrieve OpenStack source file (configure your `OpenRC`_ file to let Rally access to your OpenStack, you can either export it from Horizon or build it manually (OpenStack credentials are required)::
+
+ [user@jumphost]$ source Your_OpenRC_file
+ [user@jumphost]$ python <functest_repo_directory>/config_functest.py -d <Your_functest_directory> start
+
+In SR1, a script has been created: fetch_os_creds.sh_. This script retrieves automatically the credentials of your OpenStack solution. You may run it manually::
+
+ [user@jumphost]$ /home/jenkins-ci/functest/fetch_os_creds.sh -d <destination> -i <installer_type> -a <installer_ip>
+
+with
+ * installer_type = fuel or foreman
+ * installer_ip the IP of your installer
+ * the destination shall be the full path including the file name.
+
+Examples::
+
+ [user@jumphost]$./fetch_os_creds.sh -d ./credentials -i foreman -a 172.30.10.73
+ [user@jumphost]$./fetch_os_creds.sh -d ./credentials -i fuel -a 10.20.0.2
+
+
+At the end of the git clone, the tree of <functest_repo_directory> will have the following structure::
+
+ |-- docs/
+ | |-- functest.rst
+ | |-- images
+ | |-- Ims_overview.png
+ |-- INFO
+ |-- LICENSE
+ |-- testcases/
+ |-- config_functest.py
+ |-- config_functest.yaml
+ |-- functest_utils.py
+ |-- Controllers/
+ | |-- ODL/
+ | |-- CI/
+ | | |-- create_venv.sh
+ | | |-- custom_tests/
+ | | | |-- neutron
+ | | |-- integration/
+ | | | |-- distributions
+ | | | |-- features
+ | | | |-- feature-selector
+ | | | |-- packaging
+ | | | |-- pom.xml
+ | | | |-- test
+ | | | |-- vm
+ | | |-- logs
+ | | |-- requirements.pip
+ | | |-- start_tests.sh
+ | | |-- test_list.txt
+ | |-- ODL.md
+ |-- functest_utils.py
+ |-- VIM/
+ | |-- OpenStack/
+ | |-- CI/
+ | | |-- libraries/
+ | | | |-- run_rally.py
+ | | |-- suites/
+ | | |-- opnfv-authenticate.json
+ | | |-- opnfv-cinder.json
+ | | |-- opnfv-glance.json
+ | | |-- opnfv-heat.json
+ | | |-- opnfv-keystone.json
+ | | |-- opnfv-neutron.json
+ | | |-- opnfv-nova.json
+ | | |-- opnfv-quotas.json
+ | | |-- opnfv-requests.json
+ | | |-- opnfv-smoke-green.json
+ | | |-- opnfv-smoke.json
+ | | |-- opnfv-tempest.json
+ | | |-- opnfv-vm.json
+ | |-- OpenStack.md
+ |-- vPing/
+ |-- CI/
+ |-- libraries/
+ |-- vPing.py
+
+
+NOTE: the Rally environment will be installed under ~/.rally/ the default Tempest configuration (automatically generated by Rally based on OpenStack credentials) can be found under .rally/tempest/for-deployment-<deployment_id>/tempest.conf
+
+
+Configuration of config_functest.yaml
+=====================================
+
+Do not change the directories structure:
+
+ * image_name: name of the image that will be created in Glance
+ * image_url: URL of the image to be downloaded
+ * image_disk_format: glance image disk format (raw, qcow2, ...)
+
+ * neutron_private_net_name: name of an OpenStack private network. If not existing, it will be created
+ * neutron_private_subnet_name: private subnet network to be created if not existing
+ * neutron_private_subnet_cidr: range of the private subnet.
+ * neutron_private_subnet_start: start IP
+ * neutron_private_subnet_end: end IP
+ * neutron_router_name: name of the router between the private and the public networks
+
+ * ping_timeout: time out of the vPing test case
+ * vm_flavor: name of the flavor used to create the VMs
+ * vm_name_1: name of the first VM
+ * vm_name_2: name of the second VM
+ * ip_1: IP of the first VM (matching the private subnet cidr)
+ * ip_2: IP of the second VM
+
+
+Please note that you need to install this environment only once.
+As long as the credentials of the System Under Test do not change, there is no reason to modify the testing environment.
+
+If you need more details on Rally installation, see `Rally installation procedure`_.